Foros del Web » Programando para Internet » PHP »

Datos de HTML a PHP

Estas en el tema de Datos de HTML a PHP en el foro de PHP en Foros del Web. Este formulario HTML debería pasar datos a un script PHP, pero no lo hace, por favor ayudenme a encontrar el error: Cita: <HTML> <HEAD> <TITLE>Consulta</TITLE> ...
  #1 (permalink)  
Antiguo 07/08/2007, 20:56
 
Fecha de Ingreso: agosto-2007
Mensajes: 4
Antigüedad: 16 años, 8 meses
Puntos: 0
Datos de HTML a PHP

Este formulario HTML debería pasar datos a un script PHP, pero no lo hace, por favor ayudenme a encontrar el error:
Cita:
<HTML>
<HEAD>
<TITLE>Consulta</TITLE>
</HEAD>

<BODY>
<h1>Búsqueda de alumnos</h1>

<form action="resultados.php" method="post">
Elija su tipo de búsqueda:<br>
<SELECT NAME="tipobusqueda">
<option value="" selected="selected">- seleccione -</option>
<OPTION VALUE="idalum">Documento</OPTION>
<OPTION VALUE="alum_first">Apellido</OPTION>
<OPTION VALUE="alum_name">Nombre</OPTION>
<OPTION VALUE="grade_name">Grado</OPTION>
<OPTION VALUE="idgroup">Grupo</OPTION>
<OPTION VALUE="specia_name">Especialidad</OPTION>
<OPTION VALUE="cicle_name">Ciclo</OPTION>
</SELECT>
<br>
Escriba el término de búsqueda:<br>
<input name="terminobusqueda" type=text>
<br>
<input type=submit value="Buscar">
</form>

</body>
</html>
Fué probado y funcionó enviando la información al correo electrónico, pero al php no. Este es el código php:
Código PHP:
<?php require_once('Connections/db.php'); ?>
<html>
<head>
  <title>Resultado</title>
</head>
<body>
<h2>Resultados de la búsqueda de alumnos</h2>
<?php
  trim 
($terminobusqueda);
  if (!
$tipobusqueda || !$terminobusqueda)
  {
     echo 
"No has introducido los detalles de la busqueda.  Por favor vuelve e inténtalo de nuevo.";
     exit;
  }

  
$tipobusqueda addslashes($tipobusqueda);
  
$terminobusqueda addslashes($terminobusqueda);

  if (!
$db)
  {
     echo 
"Error: No se ha podido conectar a la base de datos.  Por favor, pruebe de nuevo más tarde.";
     exit;
  }
  
  
$consulta "select * from alumnos where ".$tipobusqueda." like '%".$terminobusqueda."%'";
  
$resultado mysql_query($consulta);

  
$num_resultados mysql_num_rows($resultado);
  
  echo 
"<p>Número de alumnos encontrados: ".$num_resultados."</p>";

  for (
$i=0$i <$num_resultados$i++)
  {
     
$row mysql_fetch_array($resultado);
     echo 
"<p><strong>".($i+1).". Nombre: ";
     echo 
stripslashes($row["alum_first"]);
     echo 
stripslashes($row["alum_second"]);
     echo 
stripslashes($row["alum_name"]);
     echo 
stripslashes($row["alum_name2"]);
     echo 
"</strong><br>Ciclo: ";
     echo 
stripslashes($row["cicle_name"]);
     echo 
"</strong><br>Grado: ";
     echo 
stripslashes($row["grade_name"]);
     echo 
"<br>Especialidad: ";
     echo 
stripslashes($row["specia_name"]);
     echo 
"<br>Grupo: ";
     echo 
stripslashes($row["idgroup"]);
     echo 
"</p>";
  }

?>

</body>
</html>
  #2 (permalink)  
Antiguo 07/08/2007, 23:32
 
Fecha de Ingreso: agosto-2007
Ubicación: En el lugar menos pensado
Mensajes: 83
Antigüedad: 16 años, 8 meses
Puntos: 2
Re: Datos de HTML a PHP

Hola
Que versión de php maneja?????
Bueno, pues yo diria que dependiendo de la versión de php seria necesario poner el metodo que se usa para obtener los datos del formulario (en este caso post) entonces en la página de resultados.php se deberian recibir las variables con $POST['tipobusqueda']; y ahi ya deberia dejar visualizar las variables, depende también de la configuración del php.ini (Register globals, etc) , bueno , espero os sirva, un saludo
  #3 (permalink)  
Antiguo 08/08/2007, 14:38
 
Fecha de Ingreso: agosto-2007
Mensajes: 4
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Datos de HTML a PHP

Gracias por intentar ayudarme; tengo intalada la versión php 5.2.3, pero aún en el hosting presenta el mismo problema. No se que hacer
  #4 (permalink)  
Antiguo 08/08/2007, 14:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Datos de HTML a PHP

Prueba cambiar:
Código PHP:
$terminobusqueda 
Por:
Código PHP:
$_POST['terminobusqueda']; 
y asi por todas las variables que envies de tu formulario.

Saludos.
  #5 (permalink)  
Antiguo 08/08/2007, 14:51
 
Fecha de Ingreso: enero-2007
Ubicación: Buenos Aires, ARG
Mensajes: 71
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Datos de HTML a PHP

bueno, tratá de hacer una prueba sencilla, yo siempre recurro a eso, para reducir el código donde puede estar el error

Hacé un form bien sencillo y cuando lo recibis en php imprimis lo q mandaste, probá

Código PHP:
<?php
echo $_POST"nombre" ];
?>
<html>
<body>
<form action="resultados.php" method="post">
<input type="text" name="nombre" />
<input type="submit" name="submit" value="Enviar" />
</form>
</body>
</html>

Creo q no me olvido de nada, despues posteá q pasa
  #6 (permalink)  
Antiguo 08/08/2007, 15:09
 
Fecha de Ingreso: agosto-2007
Mensajes: 4
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Datos de HTML a PHP

Quiero agradecer su buena voluntad en ayudarme; pero deso pedirles un ultimo favor: podrian pegar estos scrips y probarlos en su servidor, esto para descartar que el problema sea del servidor que estoy usando. Se que tienen sus propios asuntos pero les pido esta pequeña ayuda. GRACIAS.

O si poseen un código del cual tienen la certeza de que funciona y lo pueden publicar a través de este medio, me permitirá probar mi servidor
  #7 (permalink)  
Antiguo 08/08/2007, 15:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Datos de HTML a PHP

Prueba lo que te digo usa $_POST['variable']. En las nuevas versiones de PHP no puedes usar variables globales como el script que estas mostrando.

Saludos.
  #8 (permalink)  
Antiguo 08/08/2007, 15:45
 
Fecha de Ingreso: agosto-2007
Mensajes: 4
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Datos de HTML a PHP

Es posible que esté dando la falsa impresión de ser un experto en php (Si fuera así no tendria problemas de este tipo). Soy novato y este scrip es una adaptación con base en mis necesidades, del ejercicio que aparece en el videotutorial 27 de PHP y MySql de Jesús Conde.

En realidad soy un modesto maestro que desea realizar un formulario para interactuar con sus alumnos y he intentado todo lo que ustedes han sugerido, pero estotoy a punto de rendirme y tirar la toalla porque no me ha funcionado aún.

Pero de todos modos quiero agradecer su gentileza y disposición de ayuda. Jamás había participado de estos foros y no sabia que estaban conformados por personas tan prestas a colaborar con la dificultad que se presenta a un simple desconocido como yo. Muchas gracias por su colaboración.
  #9 (permalink)  
Antiguo 09/08/2007, 23:07
 
Fecha de Ingreso: agosto-2007
Ubicación: En el lugar menos pensado
Mensajes: 83
Antigüedad: 16 años, 8 meses
Puntos: 2
Busqueda Re: Datos de HTML a PHP

Hola de nuevo maturana

Bueno, pues que bien que estes pensando en manejar una interfaz web y que estes en esfuerzo de aplicar conocimientos que has adquirido poco a poco.

Respecto a tu código, copie tu código tal cual y luego de crear una base de datos y un archivo de conexión en la misma ruta que la tenes vos me funciono perfectamente, eso si, haciendo los cambios que ya te han comentado en el foro y se deben hacer es por la versión del php, yo trabajo con la 5.2.2 y me pasaba lo que te esta pasando a vos, solución? usar el método que uso para enviar los datos, es decir $_POST o $_GET y ya si quiero manejar todo con variables de nombre $variable, entonces tengo que hacer esa variable igual al $_POST o $_GET, y para que me entiendas mejor, te devuelvo tu código pero con las modificaciones que le hice

**************************
Archivo db.php
Código PHP:
<?php
$servidor
="localhost";
$usuario ="Prueba";
$pass "Prueba";
$basedatos "Prueba";
$db mysql_connect ($servidor$usuario$pass) or die ('No se Encontro la Base de Datos!!!');
mysql_select_db ($basedatos$db);
?>
****************************
El archivo donde seleccionas el tipo de búsqueda y escribes el parametro de búsqueda lo deje tal cual lo tenias
****************************
Archivo resultados.php
Código PHP:
 <?php require_once('Connections/db.php'); ?>
Código HTML:
 <html>
<head>
  <title>Resultado</title>
</head>
<body>
<h2>Resultados de la búsqueda de alumnos</h2> 
Código PHP:
<?php
// Tenias trim ($terminobusqueda) y lo cambie por $terminobusqueda asignandole el trim de la variable post llamada termino busqueda,
//generalmente funciona como lo tenias pero desde php 5.2.2 esto cambio y es NECESARIO decirle si es POST o GET como sigue en la siguiente linea
  
$terminobusqueda trim ($_POST['terminobusqueda']);
  
$tipobusqueda trim($_POST['tipobusqueda']);
  if (!
$tipobusqueda || !$terminobusqueda)
  {
     echo 
"No has introducido los detalles de la busqueda.  Por favor vuelve e inténtalo de nuevo.";
     exit;
  }

  
$tipobusqueda addslashes($tipobusqueda);
  
$terminobusqueda addslashes($terminobusqueda);

  if (!
$db)
  {
     echo 
"Error: No se ha podido conectar a la base de datos.  Por favor, pruebe de nuevo más tarde.";
     exit;
  }
  
  
$consulta "select * from alumnos where ".$tipobusqueda." like '%".$terminobusqueda."%'";
  
$resultado mysql_query($consulta,$db);
  
$num_resultados mysql_num_rows($resultado);
  
  echo 
"<p>Número de alumnos encontrados: ".$num_resultados."</p>";

  for (
$i=0$i <$num_resultados$i++)
  {
     
$row mysql_fetch_array($resultado);
     echo 
"<p><strong>".($i+1).". Nombre: ";
     echo 
stripslashes($row["alum_first"]);
     echo 
stripslashes($row["alum_second"]);
     echo 
stripslashes($row["alum_name"]);
     echo 
stripslashes($row["alum_name2"]);
     echo 
"</strong><br>Ciclo: ";
     echo 
stripslashes($row["cicle_name"]);
     echo 
"</strong><br>Grado: ";
     echo 
stripslashes($row["grade_name"]);
     echo 
"<br>Especialidad: ";
     echo 
stripslashes($row["specia_name"]);
     echo 
"<br>Grupo: ";
     echo 
stripslashes($row["idgroup"]);
     echo 
"</p>";
  }

?>
Código HTML:
</body>
</html> 
Espero te sirva, un saludo.
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 18:06.