Foros del Web » Programando para Internet » PHP »

Analizar form en una misma pagina

Estas en el tema de Analizar form en una misma pagina en el foro de PHP en Foros del Web. Antes que nada, les agradezco muchisimo por tomarse la molestia y tratar de ayudarme... Les cuento el problema que tengo, yo tengo un formulario de ...
  #1 (permalink)  
Antiguo 16/08/2008, 12:29
 
Fecha de Ingreso: agosto-2006
Ubicación: en mi casa
Mensajes: 192
Antigüedad: 17 años, 8 meses
Puntos: 0
Busqueda Analizar form en una misma pagina

Antes que nada, les agradezco muchisimo por tomarse la molestia y tratar de ayudarme... Les cuento el problema que tengo, yo tengo un formulario de registro de usuario muy sencillo en una pagina llamada "authmain", este es el form:

Código PHP:
    // provee el formulario para hacer  log in
    
echo "<form method=post action=\"authmain.php\">";
    echo 
"<table>";
    echo 
"<tr><td>Userid:</td>";
    echo 
"<td><input type=text name=userid></td></tr>";
    echo 
"<tr><td>Contraseña:</td>";
    echo 
"<td><input type=password name=password></td></tr>";
    echo 
"<tr><td colspan=2 align=center>";
    echo 
"<input type=submit value=\"Log in\"></td></tr>";
    echo 
"</table></form>"
Como se ve, quiero que al apretar submit el formulario se analize en la misma pagina, y esta es la programacion:

Código PHP:
session_start();

if (
$userid && $password)
{
  
// Si el usuario ha intentado hacer log in
  
$db_conn mysql_connect("localhost""nombre""password");
  
mysql_select_db("nombreDB"$db_conn);
  
$query "select * from auth "
           
."where name='$userid' "
           
." and pass=password('$password')";  
  
$result mysql_query($query$db_conn);
     
  
$num_rows mysql_num_rows($result);
  echo 
$num_rows."<br/>";
  
  if (
mysql_num_rows($result) >)
  {
    
// si están en la base de datos registra la id de usuario
    
$valid_user $userid;
    
session_register("valid_user");
  }

Como veran es super sencillo, sin embargo, en mi localhost "funciona bien", pero al subirlo a mi servidor, no me toma cuando apreto el formulario, es decir, no se podruce el analizis del formulario en la misma pagina... tienen idea a que se debe?

Nuevamente, les agradezco mucho....
  #2 (permalink)  
Antiguo 16/08/2008, 13:21
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Analizar form en una misma pagina

Aqui se pregunta practicamente lo mismo que quieres hacer tu :)
  #3 (permalink)  
Antiguo 16/08/2008, 13:40
 
Fecha de Ingreso: agosto-2006
Ubicación: en mi casa
Mensajes: 192
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Analizar form en una misma pagina

Muchas Gracias DooBie, y si es cierto... es mas, ya lo habia leido... pero no me sirvio nada de ai, lo probe todo... :S

No se les ocurre nada?
  #4 (permalink)  
Antiguo 16/08/2008, 14:45
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Analizar form en una misma pagina

Lo tienes todo puesto en un mismo fichero? es decir, el formulario y el codigo php lo tienes en el fichero "authmain.php"? si es asi, entonces, el problema es que en tu servidor web tienes desactivado el register_globals, que por otro lado, es la mejor opcion en cuanto a seguridad :)

Prueba esto, en lugar de comparar en el if, las variables $userid y $password de este modo:
Código PHP:
if ($userid && $password) .... 
Hazlo asi:
Código PHP:
if ($_POST['userid'] && $_POST['password']) .... 
Es decir, que siempre que quieras usar una variable que va a ser recogida de un formulario, usalo con el array $_POST['NombreDeLaVariableDelFormulario'] :)

de ese modo, dara igual que register_globals este on u off


saludos!
  #5 (permalink)  
Antiguo 16/08/2008, 15:25
 
Fecha de Ingreso: agosto-2006
Ubicación: en mi casa
Mensajes: 192
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Analizar form en una misma pagina

Muchas gracias DooBie por ayudarme...
Te comento que eso ya lo habia probado, y tampoco funciono...

Estoy tratando de descubrir de donde viene el problema... y al parecer no se traspasa ningun valor (ni userid, ni password), lo cual es muy extraño, porque todo el codigo esta perfecto... y mi localhost funciona perfectamente tambien.
Como otra alternativa, probe en analizar el formulario en un fichero externo, pero tambien dio el mismo problema... uhf, no se que hacer.

saludos,
Lucas.
  #6 (permalink)  
Antiguo 16/08/2008, 15:28
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Analizar form en una misma pagina

Cita:
Iniciado por webpro_lukas Ver Mensaje
Como veran es super sencillo, sin embargo, en mi localhost "funciona bien", pero al subirlo a mi servidor, no me toma cuando apreto el formulario, es decir, no se podruce el analizis del formulario en la misma pagina... tienen idea a que se debe?
Verifica las versiones de PHP, pero como estás accediendo a las variables es incorrecto (ya no se debe usar).

Usa $_GET, $_POST o $_REQUEST.

Si el formulario envía por POST, usa $_POST['usuario'].

PD: sugerencia, no imprimas todo tu html con echo's si no tienen nada dinámico, simplemente codifica directamente HTML y cuando necesites algo dinámico usa <?php echo $algo; ?>
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #7 (permalink)  
Antiguo 16/08/2008, 15:32
 
Fecha de Ingreso: agosto-2006
Ubicación: en mi casa
Mensajes: 192
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Analizar form en una misma pagina

Listo, ya lo solucione...

Pude arreglar este problema poniendo extract($_POST); al inicio... al parecer, no se porque motivo, mi servidor, no lograba extraerlos por si solo, entonces por medio de esta funcion le indico que lo haga y el problema se soluciona.

Muchas gracias por su ayuda (DooBie y enriqueplace)...
Un saludo,
Lucas.
  #8 (permalink)  
Antiguo 16/08/2008, 15:35
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Analizar form en una misma pagina

No necesitas extract, simplemente usar los array del sistema para obtener lo que requieres de acuerdo al tipo de comunicación que estás realizando.

Así lo especifica el manual. Lo que te debe estar sucediendo es que la configuración de los php.ini son distintas, pero de todas formas, lo correcto y especificado por las últimas versiones de PHP es que la única forma oficial de hacerlo es a través de estos array's.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #9 (permalink)  
Antiguo 16/08/2008, 16:23
 
Fecha de Ingreso: agosto-2006
Ubicación: en mi casa
Mensajes: 192
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Analizar form en una misma pagina

Si... es muy posible que tenga distinta configuracion de los php.ini, y por ese motivo no me funcionen igual...
El tema es que no puedo modificar el php.ini del servidor ya que no se como acceder a el. Por eso use la funcion extract para solucionar el error.

Si tenes alguna idea de como poder modificar el .ini te lo agradeceria mucho.
Un saludo,
Lucas.
  #10 (permalink)  
Antiguo 16/08/2008, 16:27
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Analizar form en una misma pagina

Me parece que no me estás leyendo con atención:

  1. Que esté deshabilitado el uso de variables globales es correcto, por consiguiente no debes cambiar nada en el php.ini
  2. Las variables globales no se deben usar más, PHP5 viene con su configuración por defecto así, y PHP6 ya no podrás siquiera volverlo atrás.
  3. Debes usar SIEMPRE los arrays GET, POST o REQUEST, no es opcional.

¿Se entendió?
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #11 (permalink)  
Antiguo 16/08/2008, 16:49
 
Fecha de Ingreso: agosto-2006
Ubicación: en mi casa
Mensajes: 192
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Analizar form en una misma pagina

jaja... sisi, se entendio... ya lo habia entendido desde antes, sin embargo tambien ya probe el array POST y "nada", tampoco funciono. Por eso te digo... hay alguna configuracion que me esta faltando.
  #12 (permalink)  
Antiguo 16/08/2008, 16:52
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Analizar form en una misma pagina

Cualquiera de los tres te tiene que funcionar en las situaciones acordes.

Como forma de debug, prueba hacer:

Código PHP:
var_dump($_REQUEST); 
Aquí te dirá si recibes los valores correspondientes, no importa si es GET o POST.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #13 (permalink)  
Antiguo 16/08/2008, 17:54
 
Fecha de Ingreso: agosto-2006
Ubicación: en mi casa
Mensajes: 192
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Analizar form en una misma pagina

Si Enrique, tambien conozco eso, y deberia funcionar... De hecho en mi localhost funciona...

Pero tanto GEO o POST, si atendes no uso la funcion extract en mi servidor no funciona...
  #14 (permalink)  
Antiguo 17/08/2008, 04:35
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Analizar form en una misma pagina

Parecerá una tonteria, y mas si ya has solucionado el problema, pero, por que no pruebas este trozo de codigo:
Código PHP:
?>
<form id="frm_authmain" name="frm_authmain" method="post" action="authmain.php">
  <table>
    <tr>
      <td>Userid:</td>
      <td><input name="userid" type="text" id="userid" value="" /></td>
    </tr>
    <tr>
      <td>Contrase&ntilde;a:</td>
      <td><input type="password" name="password" id="password" value="" /></td>
    </tr>
    <tr>
      <td colspan=2 align=center><input type="submit" value="Log in" id="log_in" /></td>
    </tr>
  </table>
</form>
<?php
Todo eso, lo sustituyes por este codigo tuyo:

Código PHP:
    // provee el formulario para hacer  log in
    
echo "<form method=post action=\"authmain.php\">";
    echo 
"<table>";
    echo 
"<tr><td>Userid:</td>";
    echo 
"<td><input type=text name=userid></td></tr>";
    echo 
"<tr><td>Contraseña:</td>";
    echo 
"<td><input type=password name=password></td></tr>";
    echo 
"<tr><td colspan=2 align=center>";
    echo 
"<input type=submit value=\"Log in\"></td></tr>";
    echo 
"</table></form>"
A ver si puedes hacer esa prueba, evidentemente, elimina la linea del extract($_POST);

Ya me contaras
  #15 (permalink)  
Antiguo 17/08/2008, 10:31
 
Fecha de Ingreso: agosto-2006
Ubicación: en mi casa
Mensajes: 192
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Analizar form en una misma pagina

DooBie... gracias por la molestia :)

Intente hacer lo que me pasaste, y si quito el extract($_POST); no funciona :S aunque haya reemplazado eso.

Saludos,
Lucas.
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 08:53.