Foros del Web » Programando para Internet » PHP »

¿Por que me ocurre este error en mi script?

Estas en el tema de ¿Por que me ocurre este error en mi script? en el foro de PHP en Foros del Web. Estoy haciendo un pequeño programilla en PHP para practicar, la idea es que te permita dar de alta a unos alumnos en un curso y ...
  #1 (permalink)  
Antiguo 26/07/2015, 15:53
Avatar de m40s  
Fecha de Ingreso: agosto-2014
Ubicación: Madrid
Mensajes: 35
Antigüedad: 9 años, 7 meses
Puntos: 1
¿Por que me ocurre este error en mi script?

Estoy haciendo un pequeño programilla en PHP para practicar, la idea es que te permita dar de alta a unos alumnos en un curso y estos se almacenen en una base de datos, y que en la misma página en la que se dan de alta aparezcan los alumnos ya registrados.

El código es este:
Página en la que se da de alta y aparecen los alumnos ya registrados (dba.php):
Código PHP:
<!DOCTYPE html>
<html>
  <head>
    <link rel="shortcut icon" href="favicon.png" type="image/png">
    <title>Alta alumnos</title>
  </head>
  <body>
    <h3>Alta alumnos cursos programaci&oacute;n 2015</h3>
    Ingresa los datos del alta<br><br>
    <form action="dbb.php" method="post">
      Nombre: <input type="text" name="name"><br>
      E-Mail: <input type="text" name="mail"><br>
      Curso: <input type="radio" name="curso" value="1">Perl
      <input type="radio" name="curso" value="2">Python
      <input type="radio" name="curso" value="3">Ruby
      <input type="radio" name="curso" value="4">PHP<br><br>
      <input type="submit" value="Registrar">

    </form><br>
    <h4>Alumnos ya registrados</h4>
    <?php
      $conn 
mysqli_connect("localhost""root""r00t""tests") or die("Ocurrió un error al conectar con el servidor.");

      
$regi mysqli_query($conn"select codigo, nombre, mail, ccurso from alumnos") or die("Ocurrió un problema al recuperar los datos. ".mysqli_error($conn));

      while (
$arr mysqli_fetch_array($regi)) //Esto almacena los datos que va sacando de $regi en el vector asociativo $arr con cada bucle del while. Cuando se acaben los alumnos no se almacenará nada más en el vector y la condición del while se incumplirá.
      
{
        echo(
"Codigo: ".$arr["codigo"]."&nbsp;&nbsp;&nbsp;&nbsp;");
        echo(
"Nombre: ".$arr["nombre"]."&nbsp;&nbsp;&nbsp;&nbsp;");
        echo(
"E-Mail: ".$arr["mail"]."&nbsp;&nbsp;&nbsp;&nbsp;");
        echo(
"Curso: ");

        switch (
$arr["ccurso"])
        {
          case 
1: echo("PHP");
            break;
          case 
2: echo("Phyton");
            break;
          case 
3: echo("Perl");
            break;
        }
        echo(
"<br>");
      }
      
mysqli_close($conn);
    
?>

  </body>
</html>
Y esta es la página 2 (dbb.php) que debería insertar los datos en la base de datos:
Código PHP:
<!DOCTYPE html>
<html><head>
  <meta http-equiv="refresh" content="5; url=dba.php">
  <link rel="shortcut icon" href="favicon.png" type="image/png">
  <title>Alta alumnos</title>
</head><body>
<?php
  $conn 
mysqli_connect("localhost""root""r00t""tests") or die("Ocurrió un problema al conectar con la base de datos.");

  
mysqli_query($conn"insert into alumnos(nombre, mail, ccurso) values ('$_REQUEST[name]', '$_REQUEST[mail]', $_REQUEST[curso])") or die("Ocurrió un problema al cargar la info. ".msqli_error($conn));
  
mysqli_close($conn);

  echo(
"El alumno fu&eacute; fado de alta correctamente");
?>
<label>En breves ser&aacute; redirigido.</label>
</body></html>
La página 1 funciona perfectamente, es decir, lee los alumnos ya guardados, todo con normalidad, el problema viene cuando intento registrar un nuevo alumno, que al llegar a la página 2, esta me sale completamente en blanco, es decir, ni siquiera me ejecuta el html que va fuera del código php. No entiendo por que me ocurre esto, de hecho, ejecuté un script muy parecido en PHP-CLI y me funcionó con normalidad y ahora no hace nada, además ni siquiera crea el alumno en la tabla. Espero que me puedan ayudar, un saludo, y gracias de antemano.
__________________
La cultura es aquello que queda cuando todo lo demás se olvida.
- Un tio raro...
  #2 (permalink)  
Antiguo 26/07/2015, 16:23
 
Fecha de Ingreso: junio-2014
Mensajes: 3
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: ¿Por que me ocurre este error en mi script?

A ver si entendí, intentas registrar un nuevo alumno y simplemente no se ejecuta el sitio en el navegador...

Si es así, te recomiendo revisar el código, puesto que puede haberse pasado un comentario "/**/" abierto, esto te puede ocasionar estos errores; también te recomiendo mires si te aparece algo de código en un navegador, ya que si te aparece y no muestra nada en el sitio, esto se puede deber a un "bug" de parte dl servidor

[URL="http://www.sapublicidad.cl"]http://www.sapublicidad.cl[/URL]
  #3 (permalink)  
Antiguo 26/07/2015, 16:36
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: ¿Por que me ocurre este error en mi script?

Hola amiguito, vas bien pero deberias activar todos los errores de php para que puedas ver que sucede en todo momento
en tucaso es facil por que estan mal escapadas las querys:

mysqli_query($conn, "insert into alumnos(nombre, mail, ccurso) values ('$_REQUEST[name]', '$_REQUEST[mail]', $_REQUEST[curso])") or die("Ocurrió un problema al cargar la info. ".msqli_error($conn));
mysqli_close($conn);

deberia poner en una variable la query y lo que llega por REQUEST Y lo que esta en request validar con isset, pero eso te lo dejo a vos

Código PHP:
Ver original
  1. <?
  2. $name = $_REQUEST["name"];
  3. $mail = $_REQUEST["mail"];
  4. $curso =  $_REQUEST["curso"];//si curso es vacio te da error la query
  5. $sql = "insert into alumnos(nombre, mail, ccurso) values ('{$name}', '{$mail}',$curso)";
  6. ?>

Etiquetas: html, mysql, select
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 19:18.