elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Duda con PHP y base de datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con PHP y base de datos  (Leído 10,693 veces)
jamatbar

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: Duda con PHP y base de datos
« Respuesta #10 en: 30 Octubre 2020, 14:04 pm »

Las comillas en tu mensaje están rotas y por tanto se rompe el javascript entero. O las escapas o usas combinación de comillas simples y dobles.

Lo ideal también es que se usen funciones como printf/sprintf que están hechas para estas cosas.


Código
  1.    '<script>alert("El usuario %s se ha desconectado de la base de datos %s");</script>',
  2.    htmlentities($_POST['usuario'], ENT_QUOTES), // Recuerda escapar para prevenir XSS.
  3.    htmlentities($_POST['bd'], ENT_QUOTES)
  4. );

o

Código
  1. $usuario = htmlentities($_POST['usuario'], ENT_QUOTES);
  2. $bd      = htmlentities($_POST['bd'], ENT_QUOTES);
  3. echo "<script>alert('El usuario {$usuario} se ha desconectado de la base de datos {$bd}');</script>";


Saludos

Antes que nada gracias de nuevo.

¿Dónde se rompen las comillas de mi echo?, y he probado ambas soluciones que me has dado y sigue sin salir ningún mensaje, sólo salta a index.php

Código
  1.                <?php
  2.                if (isset($_POST['desconectar'])) {
  3.                    //echo "<script>alert('El usuario {$_POST["usuario"]} se ha desconectado de la base de datos {$_POST["bd"]}');</script>";
  4.                printf(
  5.                    '<script>alert("El usuario %s se ha desconectado de la base de datos %s");</script>',
  6.                    htmlentities($_POST['usuario'], ENT_QUOTES), // Recuerda escapar para prevenir XSS.
  7.                    htmlentities($_POST['bd'], ENT_QUOTES)
  8.                );
  9.                    mysqli_close($pruebaconexion);
  10.                }
  11.                ?>


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Duda con PHP y base de datos
« Respuesta #11 en: 30 Octubre 2020, 14:14 pm »

Mmmm perdona no se porque me hice la idea que se romperían las comillas dobles entre los corchetes. Supongo que por el syntax highlight que se ve xD De todos modos, está bien que se escapen.

¿Cuándo dices que "te lleva" o "salta a" index.php, te refieres a que ese formulario de desconectar NO está en index.php? ¿Es decir, no es que se esté recargado la página sino que te lleva a otra diferente?

Si es el caso, es normal porque el formulario con los datos se envía directamente a index.php el PHP nunca tiene oportunidad de ejecutarse. En todo caso, la comprobación de si existe POST "desconectar" tendrias que hacerla en el index.

Saludos


En línea

jamatbar

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: Duda con PHP y base de datos
« Respuesta #12 en: 30 Octubre 2020, 14:20 pm »

Mmmm perdona no se porque me hice la idea que se romperían las comillas dobles entre los corchetes. Supongo que por el syntax highlight que se ve xD De todos modos, está bien que se escapen.

¿Cuándo dices que "te lleva" o "salta a" index.php, te refieres a que ese formulario de desconectar NO está en index.php? ¿Es decir, no es que se esté recargado la página sino que te lleva a otra diferente?

Si es el caso, es normal porque el formulario con los datos se envía directamente a index.php el PHP nunca tiene oportunidad de ejecutarse. En todo caso, la comprobación de si existe POST "desconectar" tendrias que hacerla en el index.

Saludos

Así es, el formulario desconectar te redirige a index.php para que puedas volver a conectarte. El código de index.php es el siguiente:

Código
  1. <!DOCTYPE html>
  2. <!--
  3. To change this license header, choose License Headers in Project Properties.
  4. To change this template file, choose Tools | Templates
  5. and open the template in the editor.
  6. -->
  7. <html>
  8.    <head>
  9.        <title>Colección Videojuegos</title>
  10.        <meta charset="UTF-8">
  11.        <meta name="viewport" content="width=device-width, initial-scale=1.0">
  12.        <link rel="stylesheet" href="main.css">
  13.    </head>
  14.    <body>
  15.  
  16.        <form action="conectado.php" method="POST">
  17.            <label for="equipo">Equipo</label>
  18.            <input type="text" value="Equipo" name="equipo">
  19.            <label for="usuario">Usuario</label>
  20.            <input type="text" value="Usuario" name="usuario">
  21.            <label for="contrasena">Password</label>
  22.            <input type="password" value="Contraseña" name="password">
  23.            <label for="basededatos">Base de datos</label>
  24.            <input type="text" value="Nombre BD" name="bd">
  25.            <input type="submit" value="Conectar" name="conectar">
  26.            <?php
  27.            //Incluímos los métodos
  28.            include('conectar.php');
  29.            //Comprobamos que hayamos pulsado el botón Conectar
  30.            if (isset($_POST['conectar'])) {
  31.                Conectar($_POST['equipo'], $_POST['usuario'], $_POST['password'], $_POST['bd']);
  32.            }
  33.            ?>
  34.        </form>
  35.    </body>
  36. </html>

¿Ahí tendría que colocar el isset?
En línea

jamatbar

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: Duda con PHP y base de datos
« Respuesta #13 en: 30 Octubre 2020, 15:23 pm »

He colocado el isset en index.php (usando echo que por ahora estoy más familiarizado), pero sin argumentos, ya que si le pongo $usuario y $bd no me los encuentra.

Código
  1.            <?php
  2.            //Incluímos los métodos
  3.            include('conectar.php');
  4.            //Comprobamos que hayamos pulsado el botón Conectar
  5.            if (isset($_POST['conectar'])) {
  6.                Conectar($_POST['equipo'], $_POST['usuario'], $_POST['password'], $_POST['bd']);
  7.            }
  8.  
  9.            if (isset($_POST['desconectar'])) {
  10.                    //echo "<script>alert('El usuario {$_POST["usuario"]} se ha desconectado de la base de datos {$_POST["bd"]}');</script>";
  11.                echo(
  12.                    '<script>alert("El usuario se ha desconectado de la base de datos");</script>');
  13.                    mysqli_close($pruebaconexion);
  14.                }
  15.            ?>

El problema es que ahora no encuentra $pruebaconexion, me salen los siguientes fallos:

Notice: Undefined variable: pruebaconexion in C:\xampp\htdocs\ProyBD\index.php on line 38

Warning: mysqli_close() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\ProyBD\index.php on line 38
En línea

jamatbar

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: Duda con PHP y base de datos
« Respuesta #14 en: 30 Octubre 2020, 15:53 pm »

Ya lo conseguí, al final lo arreglé con un onclick en el botón de desconectar.
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda sobre base de datos y php
PHP
TheKiLLeR 2 2,023 Último mensaje 7 Abril 2008, 20:13 pm
por TheKiLLeR
Duda de Base de Datos
Programación Visual Basic
pisacaballo 4 2,132 Último mensaje 5 Octubre 2008, 15:58 pm
por Fr4NN^
Duda SQL - base de datos
Programación Visual Basic
karmany 2 3,487 Último mensaje 3 Octubre 2009, 20:25 pm
por karmany
[Duda] Base Datos Access
Java
Kerber0 2 2,374 Último mensaje 27 Marzo 2010, 18:32 pm
por 1mpuls0
Duda sobre php y base de datos
PHP
Mr.Blue 3 3,127 Último mensaje 27 Septiembre 2010, 05:09 am
por Shell Root
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines