Foros del Web » Programando para Internet » PHP »

Ayuda a encontrar fallo en codigo

Estas en el tema de Ayuda a encontrar fallo en codigo en el foro de PHP en Foros del Web. Hola, tengo este código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php # FileName="Connection_php_mysql(dot)htm" # Type="MYSQL" # HTTP="true" $hostname = "localhost" ; $username = "user" ; ...
  #1 (permalink)  
Antiguo 01/03/2011, 12:01
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Ayuda a encontrar fallo en codigo

Hola, tengo este código:

Código PHP:
Ver original
  1. <?php
  2. # FileName="Connection_php_mysql(dot)htm"
  3. # Type="MYSQL"
  4. # HTTP="true"
  5. $hostname = "localhost";
  6. $username = "user";
  7. $password = "pwd";
  8. $nombre = $_POST['nombre'];  
  9. $telefono = $_POST['telefono'];
  10. $dia_mes = $_POST['dia_mes'];
  11. $hora = $_POST['hora'];
  12. $cita = "('$dia_mes', '$hora')";
  13.  
  14. $conx = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
  15. $bd = "gspyafmr_AGENDA2011";
  16. mysql_select_db("gspyafmr_AGENDA2011", $conx);
  17. $novacita = "INSERT INTO [citas] ([hora], [nombre], [telefono] VALUES ('$cita', '$nombre', '$telefono')";
  18. $peticion = mysql_query ($novacita, $conx);
  19.  
  20. $header = 'From: ' . $nombre . " \r\n";
  21. $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  22. $header .= "Mime-Version: 1.0 \r\n";
  23. $header .= "Content-Type: text/plain";
  24.  
  25. $mensaje .= "Nombre: " . $nombre . " \r\n";
  26. $mensaje .= "Teléfono: " . $telefono . " \r\n";
  27. $mensaje .= "Dia ". $dia_mes . " \r\n";
  28. $mensaje .= "Hora ". $hora . " \r\n";
  29. $mensaje .= "Cita pedida el " . date('d/m/Y', time());
  30.  
  31.  
  32. $para = "[email protected]";
  33. $asunto = 'Cita previa';
  34.  
  35.  
  36. mail($para, $asunto, utf8_decode($mensaje), $header);
  37.  
  38.  
  39. ?>
  40. </h2>
  41. <h2 align="center">Gracias!</h2>
  42.  
  43. <p align="center">Tu cita ha sido registrada correctamente.</p>
  44. <form id="form" name="form" method="post" action="">
  45.   <label>
  46.     <div align="center">
  47.       <input type="button" name="Cerrar" id="Cerrar" value="Cerrar" onclick="window.close();"/>
  48.     </div>
  49.   </label>
  50. </form>
  51. <p align="center"> </p>
  52. <p><span style="color:red;font-size:150%;font-weight:bold;"><?php print $email; ?></span></p>
  53. <noscript>
  54. </noscript>

alguien podría hecharme una mano a ver dode está el fallo, es el archivo enviar.php de un form y la idea es que envie los datos por mail (eso funciona bien) y los introduzca en la bd mysql.

Gracias a todos.
  #2 (permalink)  
Antiguo 01/03/2011, 12:23
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Ayuda a encontrar fallo en codigo

Y cuál es el problema? te da algún error?
  #3 (permalink)  
Antiguo 01/03/2011, 12:59
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Ayuda a encontrar fallo en codigo

No me inserta los datos en la BD
y gracias por la rapida respuesta ;)
  #4 (permalink)  
Antiguo 01/03/2011, 13:38
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: Ayuda a encontrar fallo en codigo

como duda , para que es esto???

([hora], [nombre], [telefono]

no es lo mismo que ???

(hora,nombre,telefono)


y asi de pasada te digo que falta cerrar ese parentesis te lo destaque en Rojo
  #5 (permalink)  
Antiguo 01/03/2011, 13:55
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Ayuda a encontrar fallo en codigo

Es para guardar citas en un bd (estoy abierto a sugerencias y mejoras jeje), los [, los he puesto por que son nombre de columnas ( no se si es correcto, corrígeme si me equivoco please).

No me di cuenta de ese paréntesis, probare y comento, gracias de nuevo.
  #6 (permalink)  
Antiguo 01/03/2011, 14:04
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: Ayuda a encontrar fallo en codigo

Prueba colocando esto:

Código MySQL:
Ver original
  1. INSERT INTO citas (hora,nombre,telefono) VALUES ('$cita', '$nombre', '$telefono')

  #7 (permalink)  
Antiguo 02/03/2011, 10:02
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Ayuda a encontrar fallo en codigo

Lo he intentado y nada, no será alguna coma o doble coma que no debe estar o donde hay simple debe llevar doble?? o me falta alguna orden o algo, no es normal, por favor echen un vistazo a ver si ven algo raro.
Gracias
  #8 (permalink)  
Antiguo 02/03/2011, 10:24
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Ayuda a encontrar fallo en codigo

Esto estaría bien???

Código PHP:
Ver original
  1. $novacita = "INSERT INTO citas (hora,nombre,telefono) VALUES ('$cita', '$nombre', '$telefono')";
  2. mysql_query ($novacita, $conx);

o como tendría que hacer para llamar a

Código PHP:
Ver original
  1. ($novacita(que es in INSERT), $cons)
  #9 (permalink)  
Antiguo 02/03/2011, 10:56
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Ayuda a encontrar fallo en codigo

Bueno a como he visto guardas solo como variable, pero aveces esto podria estar mal o para mi lo esta porque no se ejecuta sino mas bien se guarda en ella

La forma correcta a mi parecer seria asi, o si tambien cambie algo porque declaras variables y ni las usas :/

Código PHP:
Ver original
  1. $bd = "gspyafmr_AGENDA2011";
  2. mysql_select_db($bd, $conx);
  3. $novacita = "INSERT INTO ([citas] ([hora], [nombre], [telefono]) VALUES ('$cita', '$nombre', '$telefono')";
  4.  
  5. mysql_query ($novacita, $conx);

Asi es como deveria estar a mi opinion.
  #10 (permalink)  
Antiguo 02/03/2011, 13:54
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Ayuda a encontrar fallo en codigo

ok lo probaré, hay un ( que sobra. que ya lo he revisado y está la variable $peticion que sobra, porque iba a usarla y al final no la usé, le he eliminado también, citas lo tengo sin[] porque es el nombre de la tabla, he usado $bd en la función y sigue igual que antes, envía el mail con los datos, pero ni añade los datos a la BD ni tampoco me sale ningún mensaje de error, es como si no hubiera ni intentado el conectarse,

ayuda please

Dejo el código del form por si alguno quiere probarlo, a ver si hay suerte y le apetece a alguien

;)

Gracias a todos.

Última edición por ElJudas; 02/03/2011 a las 15:27
  #11 (permalink)  
Antiguo 02/03/2011, 22:12
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Ayuda a encontrar fallo en codigo

Volvi a revisar el codigo y si en el que yo te puse hay 2 errores
1.- No colocamos el nombre de la tabla a la que se ingresaran los datos
2.- No ingresamos la fecha

Otra cosa no entiendo que intentas hacer con esto
Código:
$cita = "('$dia_mes', '$hora')";
  #12 (permalink)  
Antiguo 03/03/2011, 10:14
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Ayuda a encontrar fallo en codigo

Simplemente insertar los datos de un formulario y unos datos de la pagina que ha ejecutado el form, esta información me llega bien por mail, pero no consigo que los datos se ingresen en la bd.

La variable $cita, recoge día mes y la hora seleccionada para abrir el form.

PD. Alguien sabe una buena manera de crear una agenda donde hay que introducir los datos desde el form, por php y como estructurar la BD sql????(es lo que estoy intentado pero no se si lo he estructurado bien).


GRACIAS!
  #13 (permalink)  
Antiguo 03/03/2011, 13:39
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Ayuda a encontrar fallo en codigo

He modificado un poco el código para saber donde fallaba exactamente, he puesto un if en cada conexión y conecta bien con el host pero el mensaje de error que da, es de la conexión a la DB.

Dejo el código por si le pueden echar un vistazo,

Código PHP:
Ver original
  1. $conx2 = mysql_select_db($bd, $conx);
  2. $bd = "AGENDA2011";
  3. mysql_select_db($bd, $conx);
  4. if (!$conx2) {
  5.     die('No conecta a la BD: ' . mysql_error());
  6.     }
  7. echo 'Conectado  satisfactoriamente2';

Gracias
  #14 (permalink)  
Antiguo 03/03/2011, 14:58
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Ayuda a encontrar fallo en codigo

Bueno ahora si ya revise mejor esto y asi deveria ya funcionar:

Código PHP:
Ver original
  1. <?php
  2. # FileName="Connection_php_mysql(dot)htm"
  3. # Type="MYSQL"
  4. # HTTP="true"
  5. $hostname = "localhost";
  6. $username = "user";
  7. $password = "pwd";
  8. $bd = "gspyafmr_AGENDA2011";
  9. $nombre = $_POST['nombre'];  
  10. $telefono = $_POST['telefono'];
  11. $dia_mes = $_POST['dia_mes'];
  12. $hora = $_POST['hora'];
  13. $cita = $dia_mes."-".$hora;
  14.  
  15. $conx = mysql_connect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
  16. mysql_select_db($bd, $conx);
  17. $novacita = "INSERT INTO citas ([hora], [nombre], [telefono]) VALUES ('$cita', '$nombre', '$telefono')";
  18. mysql_query ($novacita, $conx);
  19.  
  20. $header = 'From: ' . $nombre . " \r\n";
  21. $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  22. $header .= "Mime-Version: 1.0 \r\n";
  23. $header .= "Content-Type: text/plain";
  24.  
  25. $mensaje .= "Nombre: " . $nombre . " \r\n";
  26. $mensaje .= "Teléfono: " . $telefono . " \r\n";
  27. $mensaje .= "Dia ". $dia_mes . " \r\n";
  28. $mensaje .= "Hora ". $hora . " \r\n";
  29. $mensaje .= "Cita pedida el " . date('d/m/Y', time());
  30.  
  31.  
  32. $para = "[email protected]";
  33. $asunto = 'Cita previa';
  34.  
  35.  
  36. mail($para, $asunto, utf8_decode($mensaje), $header);
  37.  
  38.  
  39. ?>
  40. </h2>
  41. <h2 align="center">Gracias!</h2>
  42.  
  43. <p align="center">Tu cita ha sido registrada correctamente.</p>
  44. <form id="form" name="form" method="post" action="">
  45.   <label>
  46.     <div align="center">
  47.       <input type="button" name="Cerrar" id="Cerrar" value="Cerrar" onclick="window.close();"/>
  48.     </div>
  49.   </label>
  50. </form>
  51. <p align="center"> </p>
  52. <p><span style="color:red;font-size:150%;font-weight:bold;"><?php print $email; ?></span></p>
  53. <noscript>
  54. </noscript>
  #15 (permalink)  
Antiguo 03/03/2011, 16:17
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Ayuda a encontrar fallo en codigo

Usa esto:

mysql_query() or die (error());
__________________
Mono programando!
twitter.com/eguimariano
  #16 (permalink)  
Antiguo 03/03/2011, 17:02
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Ayuda a encontrar fallo en codigo

Muchas gracias a todos sois unos/as cracks ya introduje los datos, pero no se porqué se insertan doble en dos filas y en dos id.
Pongo como a quedado ;)
Código PHP:
Ver original
  1. <?php
  2. # FileName="Connection_php_mysql(dot)htm"
  3. # Type="MYSQL"
  4. # HTTP="true"
  5. $hostname = "localhost:0000";
  6. $username = "usuario";
  7. $password = "contraseña";
  8. $bd = "base de datos";
  9. $nombre = $_POST['nombre'];  
  10. $telefono = $_POST['telefono'];
  11. $dia_mes = $_POST['dia_mes'];
  12. $hora = $_POST['hora'];
  13. $cita = $dia_mes."-".$hora;
  14.  
  15. $conx = mysql_connect($hostname, $username, $password);
  16. if (!$conx) {
  17.     die('No pudo conectarse: ' . mysql_error());
  18.     }
  19. $conx2 = mysql_select_db($bd, $conx);
  20. mysql_select_db($bd, $conx);
  21. if (!$conx2) {
  22.     die('No conecta a la BD: ' . mysql_error());
  23.     }  
  24. $novacita = "INSERT INTO citas (hora ,nombre, telefono) VALUES ('$cita', '$nombre', '$telefono')";
  25. $conx3 = mysql_query($novacita, $conx);
  26. mysql_query($novacita, $conx);
  27. if (!$conx3) {
  28.     die('Entrada NO realizada: ' . mysql_error());
  29.     }  
  30.  
  31. $header = 'From: ' . $nombre . " \r\n";
  32. $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  33. $header .= "Mime-Version: 1.0 \r\n";
  34. $header .= "Content-Type: text/plain";
  35.  
  36. $mensaje .= "Nombre: " . $nombre . " \r\n";
  37. $mensaje .= "Teléfono: " . $telefono . " \r\n";
  38. $mensaje .= "Dia ". $dia_mes . " \r\n";
  39. $mensaje .= "Hora ". $hora . " \r\n";
  40. $mensaje .= "Cita pedida el " . date('d/m/Y', time());
  41.  
  42.  
  43. $para = "[email protected]";
  44. $asunto = 'Cita previa';
  45.  
  46.  
  47. mail($para, $asunto, utf8_decode($mensaje), $header);
  48.  
  49.  
  50. ?>
  51. </h2>
  52. <h2 align="center">Gracias!</h2>
  53.  
  54. <p align="center">Tu cita ha sido registrada correctamente.</p>
  55. <form id="form" name="form" method="post" action="">
  56.   <label>
  57.     <div align="center">
  58.       <input type="button" name="Cerrar" id="Cerrar" value="Cerrar" onclick="window.close();"/>
  59.     </div>
  60.   </label>
  61. </form>
  62. <p align="center"> </p>
  63. <p><span style="color:red;font-size:150%;font-weight:bold;"><?php print $email; ?></span></p>
  64. <noscript>
  65. </noscript>


gracias
  #17 (permalink)  
Antiguo 04/03/2011, 03:10
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Ayuda a encontrar fallo en codigo

Esque lo que pasa ejecutas dos veces la query

Código PHP:
Ver original
  1. $conx3 = mysql_query($novacita, $conx);
  2. mysql_query($novacita, $conx);
  3. if (!$conx3) {
  4.     die('Entrada NO realizada: ' . mysql_error());
  5.    }

Una primero donde solo dice
mysql_query($novacita, $conx); y luego otra vez la ejecuta donde esta la condicion if(!$conx3)

Simplemente elimina
mysql_query($novacita, $conx);
y deja lo demas y funcionara n_n

En total quedaria asi solo cambiando eso

Código PHP:
Ver original
  1. <?php
  2. # FileName="Connection_php_mysql(dot)htm"
  3. # Type="MYSQL"
  4. # HTTP="true"
  5. $hostname = "localhost:0000";
  6. $username = "usuario";
  7. $password = "contraseña";
  8. $bd = "base de datos";
  9. $nombre = $_POST['nombre'];  
  10. $telefono = $_POST['telefono'];
  11. $dia_mes = $_POST['dia_mes'];
  12. $hora = $_POST['hora'];
  13. $cita = $dia_mes."-".$hora;
  14.  
  15. $conx = mysql_connect($hostname, $username, $password);
  16. if (!$conx) {
  17.     die('No pudo conectarse: ' . mysql_error());
  18.     }
  19. $conx2 = mysql_select_db($bd, $conx);
  20. mysql_select_db($bd, $conx);
  21. if (!$conx2) {
  22.     die('No conecta a la BD: ' . mysql_error());
  23.     }  
  24. $novacita = "INSERT INTO citas (hora ,nombre, telefono) VALUES ('$cita', '$nombre', '$telefono')";
  25. $conx3 = mysql_query($novacita, $conx);
  26. if (!$conx3) {
  27.     die('Entrada NO realizada: ' . mysql_error());
  28.     }  
  29.  
  30. $header = 'From: ' . $nombre . " \r\n";
  31. $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  32. $header .= "Mime-Version: 1.0 \r\n";
  33. $header .= "Content-Type: text/plain";
  34.  
  35. $mensaje .= "Nombre: " . $nombre . " \r\n";
  36. $mensaje .= "Teléfono: " . $telefono . " \r\n";
  37. $mensaje .= "Dia ". $dia_mes . " \r\n";
  38. $mensaje .= "Hora ". $hora . " \r\n";
  39. $mensaje .= "Cita pedida el " . date('d/m/Y', time());
  40.  
  41.  
  42. $para = "[email protected]";
  43. $asunto = 'Cita previa';
  44.  
  45.  
  46. mail($para, $asunto, utf8_decode($mensaje), $header);
  47.  
  48.  
  49. ?>
  50. </h2>
  51. <h2 align="center">Gracias!</h2>
  52.  
  53. <p align="center">Tu cita ha sido registrada correctamente.</p>
  54. <form id="form" name="form" method="post" action="">
  55.   <label>
  56.     <div align="center">
  57.       <input type="button" name="Cerrar" id="Cerrar" value="Cerrar" onclick="window.close();"/>
  58.     </div>
  59.   </label>
  60. </form>
  61. <p align="center"> </p>
  62. <p><span style="color:red;font-size:150%;font-weight:bold;"><?php print $email; ?></span></p>
  63. <noscript>
  64. </noscript>
  #18 (permalink)  
Antiguo 07/03/2011, 09:52
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Ayuda a encontrar fallo en codigo

Muchas gracias, ahora envia un solo registro, pensé que al estar definiendo una variable, no se ejecutaria, gracias a tod@s

Etiquetas: encontrar, fallo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:46.