Autor
|
Tema: Duda con PHP y base de datos (Leído 10,783 veces)
|
jamatbar
Desconectado
Mensajes: 104
|
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. '<script>alert("El usuario %s se ha desconectado de la base de datos %s");</script>', htmlentities($_POST['usuario'], ENT_QUOTES), // Recuerda escapar para prevenir XSS. );
o 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 <?php if (isset($_POST['desconectar'])) { //echo "<script>alert('El usuario {$_POST["usuario"]} se ha desconectado de la base de datos {$_POST["bd"]}');</script>"; '<script>alert("El usuario %s se ha desconectado de la base de datos %s");</script>', htmlentities($_POST['usuario'], ENT_QUOTES), // Recuerda escapar para prevenir XSS. ); } ?>
|
|
|
En línea
|
|
|
|
#!drvy
|
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
Mensajes: 104
|
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: <!DOCTYPE html> <!-- To change this license header, choose License Headers in Project Properties. To change this template file, choose Tools | Templates and open the template in the editor. --> <html> <head> <title>Colección Videojuegos</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="main.css"> </head> <body> <form action="conectado.php" method="POST"> <label for="equipo">Equipo</label> <input type="text" value="Equipo" name="equipo"> <label for="usuario">Usuario</label> <input type="text" value="Usuario" name="usuario"> <label for="contrasena">Password</label> <input type="password" value="Contraseña" name="password"> <label for="basededatos">Base de datos</label> <input type="text" value="Nombre BD" name="bd"> <input type="submit" value="Conectar" name="conectar"> <?php //Incluímos los métodos include('conectar.php'); //Comprobamos que hayamos pulsado el botón Conectar if (isset($_POST['conectar'])) { Conectar($_POST['equipo'], $_POST['usuario'], $_POST['password'], $_POST['bd']); } ?> </form> </body> </html>
¿Ahí tendría que colocar el isset?
|
|
|
En línea
|
|
|
|
jamatbar
Desconectado
Mensajes: 104
|
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. <?php //Incluímos los métodos include('conectar.php'); //Comprobamos que hayamos pulsado el botón Conectar if (isset($_POST['conectar'])) { Conectar($_POST['equipo'], $_POST['usuario'], $_POST['password'], $_POST['bd']); } if (isset($_POST['desconectar'])) { //echo "<script>alert('El usuario {$_POST["usuario"]} se ha desconectado de la base de datos {$_POST["bd"]}');</script>"; echo( '<script>alert("El usuario se ha desconectado de la base de datos");</script>'); } ?>
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
Mensajes: 104
|
Ya lo conseguí, al final lo arreglé con un onclick en el botón de desconectar.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
duda sobre base de datos y php
PHP
|
TheKiLLeR
|
2
|
2,037
|
7 Abril 2008, 20:13 pm
por TheKiLLeR
|
|
|
Duda de Base de Datos
Programación Visual Basic
|
pisacaballo
|
4
|
2,138
|
5 Octubre 2008, 15:58 pm
por Fr4NN^
|
|
|
Duda SQL - base de datos
Programación Visual Basic
|
karmany
|
2
|
3,500
|
3 Octubre 2009, 20:25 pm
por karmany
|
|
|
[Duda] Base Datos Access
Java
|
Kerber0
|
2
|
2,387
|
27 Marzo 2010, 18:32 pm
por 1mpuls0
|
|
|
Duda sobre php y base de datos
PHP
|
Mr.Blue
|
3
|
3,150
|
27 Septiembre 2010, 05:09 am
por Shell Root
|
|