Foros del Web » Programando para Internet » PHP »

Problemas con Formulario

Estas en el tema de Problemas con Formulario en el foro de PHP en Foros del Web. Cordial Saludo: Tengo Problemas para hacer las consultas a través del lo siguientes formularios, aunque el fin es el mismo. Soy novato aun.... Por que ...
  #1 (permalink)  
Antiguo 13/03/2007, 17:52
 
Fecha de Ingreso: febrero-2007
Ubicación: Barranquilla, Colombia
Mensajes: 181
Antigüedad: 17 años, 2 meses
Puntos: 3
Problemas con Formulario

Cordial Saludo:

Tengo Problemas para hacer las consultas a través del lo siguientes formularios, aunque el fin es el mismo.
Soy novato aun....
Por que me aparecen los campos en blanco al hacer el Submit?
Saludos:

Última edición por joseluisbz; 13/03/2007 a las 18:16
  #2 (permalink)  
Antiguo 13/03/2007, 17:55
 
Fecha de Ingreso: febrero-2007
Ubicación: Barranquilla, Colombia
Mensajes: 181
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: Problemas con Formulario

Adjunto el codigo de uno de los formularios llamado signin.php

Código PHP:
<?php
#    Este programa crea un sistema de autenticacion
#    usando MySQL y Cookies.

include ("/usr/local/httpd-2.2.4/htdocs/ConnectionDB/Login.php");

if(!isset(
$submit))
{
    echo 
"Inicial\n";
    echo 
"<form action=\"signin.php\" method=post>";
    echo 
"Entre el Nombre de Usuario: <input type=text name=user length=20><P>\n";
    echo 
"Entre la Palabra Clave: <input type=password name=pass length=20><P>\n";
    echo 
"<input type=submit name=submit> <P>\n";
    echo 
"</form><P>\n";
    exit;
}
elseif (!isset(
$user))
{
    echo 
"Usuario\n";
    echo 
"Por favor entre el Nombre de Usuario<P>\n";
    echo 
"<form action=\"signin.php\" method=post>";
    echo 
"Entre el Nombre de Usuario: <input type=text name=user length=20><P>\n";
    echo 
"Entre la Palabra Clave: <input type=password name=pass length=20><P>\n";
    echo 
"<input type=submit name=submit> <P>\n";
    echo 
"</form><P>\n";
    exit;
}
elseif (!isset(
$pass))
{
    echo 
"Clave\n";
    echo 
"Por favor entre la Palabra Clave<P>\n";
    echo 
"<form action=\"signin.php\" method=post>";
    echo 
"Entre el Nombre de Usuario: <input type=text name=user length=20><P>\n";
    echo 
"Entre la Palabra Clave: <input type=password name=pass length=20><P>\n";
    echo 
"<input type=submit name=submit> <P>\n";
    echo 
"</form><P>\n";
    exit;
}
else
{
    echo 
"Conectar\n";
    
# Conectar a la base de datos
    
$DBConn mysql_connect($host,$username,$password) or die ("No se puede conectar al servidor de base de datos");
    
#$DBName = mysql_select_db($DataBaseName)or die ("No se puede conectar a la base de datos");
    
$DBName mysql_select_db("auth")or die ("No se puede conectar a la base de datos");
    
$quoteduser mysql_escape_string($user);
    
$quotedpass mysql_escape_string($pass);
    
authenticate($user,$pass);
}

function 
authenticate($user,$pass)
{
    
#Esta subrutina busca los privilegios para el par user/host
    
$query "SELECT session FROM user_table WHERE user = '$user' AND pass = password('$pass')";
    
$result mysql_query($query) or die ("Consulta Fallida");
    
$num mysql_num_rows($result);
    if (
$num == 0)
    {
        print 
"Nombre de Usuario y/o Palabra Clave incorrectos<P>\n";
        exit; 
    }
    else
    {
        
$row mysql_fetch_array($result);
        
# Crear una Sesión Pseudo aleatoria
        
srand((double)microtime()*99999999);
        
$id md5(rand(0,9999999));
        
# Encripte el Nombre de Usuario
        
$encuser md5($user);
        
# Obtener RID del resultado, asÃ* se puede enviar otra consulta
        
mysql_free_result($result) or die ("Fue encontrado un error");
        
$time time();
        
$query "UPDATE user_table SET session = '$id',timestamp = '$time' WHERE user = '$user'";
        
$result mysql_query($query) or die ("Actualización Fallida");
        
setcookie("cookie_session","$id",time()+60,"/","",0);
        
setcookie("cookie_user","$encuser",time()+60,"/","",0);
        Print 
"Ha sido ingresado exitosamente<P>";
    }
?>
  #3 (permalink)  
Antiguo 13/03/2007, 18:11
 
Fecha de Ingreso: febrero-2007
Ubicación: Barranquilla, Colombia
Mensajes: 181
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: Problemas con Formulario

Otra forma BusquedaDocente.php

Código PHP:
<html>
<
head>
<
title>Acceso Usuarios</title>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</
head>

<
body>
<
h1>Busqueda</h1>

<
FORM ACTION="ProcesarDocente.php" METHOD="POST">
    
Entre Identificacion del Docente
    <
input TYPE="text" NAME="docente">
    <
input type="submit" name="BDocente" id="bClean" value="Iniciar">
</
FORM>

</
body>
</
html

El otro Archivo llamado ProcesarDocente.php
Código PHP:
<?php
include ("/usr/local/httpd-2.2.4/htdocs/ConnectionDB/Login_ratzhel.php");
print (
"Buscando al Docente: $docente <BR /n>");

if(!isset(
$docente))
{
    print 
"Inicial\n";
    print 
"<form action=\"BusquedaDocente.php\" method=post>";
//    echo "Entre Identificacion del Docente: <input type=text name=docente  length=20 value = ".$BDocente."><P>\n";
//    print "Entre Identificacion del Docente: <input type=text name=docente length=20><P>\n";
    
print "Entre Identificacion del Docente: <input type=text name=docente length=20 ><P>\n";
    print 
"<input type=submit name=BDocente > <P>\n";
    print 
"</form><P>\n";
    print 
"Final\n";
    print 
$BDocente;
    exit;
}
$DBConn mysql_connect($host,$username,$password) or die ("No se puede conectar al servidor de base de datos");
$DBName mysql_select_db($DataBaseName)or die ("No se puede conectar a la base de datos");
$quoteduser mysql_escape_string($docente);

$result mysql_query("SELECT * FROM docentes WHERE = '$docente' ");
$rows mysql_num_rows($result);
$i 0;

print (
"<table border=1><P>\n");
while (
$row mysql_fetch_row($result))
{
    print 
"<tr><P>\n";
    
    
$j 0;
    while (
$j $fields)
    {
        print 
"<td> $row[$j]  </td><P>\n";
        
$j++;
    }
    print 
"</tr><P>\n";
}
print (
"</table><P>\n");

?>
Como podemos ver en este ultimo archivo hay una linea
Cita:
print ("Buscando al Docente: $docente <BR /n>");
cuando pasamos de BusquedaDocente.php a ProcesarDocente.php la variable docente no me imprime nada ..

Última edición por joseluisbz; 13/03/2007 a las 18:21
  #4 (permalink)  
Antiguo 13/03/2007, 18:14
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Problemas con Formulario

Al margen del error en si...ese HTML que generas es un desastre.... cada atributo necesita de unas comillas que no aparecen en ningun caso. Quiza ahora no te de problemas, pero ve pensando en que no es la manera correcta de hacer las cosas.

Por otro lado, todo el html metidito asi dentro de echos, da hasta pereza revisarlo... no es cómodo ni escribirlo , ni leerlo. Con lo simple que puede ser algo asi:

Código PHP:
<?php
if($talcosa)
{
      
?><input type="text" name="user" value="<?php echo $talcosa;?>"><?php
}
?>
Yendo mas a tu problema, seguramente sea porque no estas recibiendo las variables como se debe:

Código PHP:
<?php

$user 
$_POST["user"];
$pass $_POST["pass"];
authenticate($user,$pass); 
?>
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #5 (permalink)  
Antiguo 13/03/2007, 18:15
 
Fecha de Ingreso: febrero-2007
Ubicación: Barranquilla, Colombia
Mensajes: 181
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: Problemas con Formulario

Este archivo se llama BuscarDocente.php

Código PHP:
<?php
include ("/usr/local/httpd-2.2.4/htdocs/ConnectionDB/Login_ratzhel.php");

if(!isset(
$docente))
{
    echo 
"<form action=\"BuscarDocente.php\" method=post>";
    echo 
"Entre Identificacion del Docente: <input type=text name=docente length=20><P>\n";
    echo 
"<input type=submit name=BDocente> <P>\n";
    echo 
"</form><P>\n";
    exit;
}

$DBConn mysql_connect($host,$username,$password) or die ("No se puede conectar al servidor de base de datos");
$DBName mysql_select_db($DataBaseName)or die ("No se puede conectar a la base de datos");
$quoteduser mysql_escape_string($docente);

print 
"SELECT * FROM docentes WHERE = '$docente' ";
$result mysql_query("SELECT * FROM docentes WHERE = '$docente' ");
$rows mysql_num_rows($result);
$i 0;

print (
"<table border=1><P>\n");
while (
$row mysql_fetch_row($result))
{
    print 
"<tr><P>\n";
    
    
$j 0;
    while (
$j $fields)
    {
        print 
"<td> $row[$j]  </td><P>\n";
        
$j++;
    }
    print 
"</tr><P>\n";
}
print (
"</table><P>\n");

?>
  #6 (permalink)  
Antiguo 13/03/2007, 18:24
 
Fecha de Ingreso: febrero-2007
Ubicación: Barranquilla, Colombia
Mensajes: 181
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: Problemas con Formulario

Bueno todos esos archivos es con el fin de realizar mi primera consulta y no he podido, la cuestiòn del enredo en el primer codigo, es que lo saquer de un libro.... pero este tampoco me funciona...
  #7 (permalink)  
Antiguo 13/03/2007, 18:29
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Problemas con Formulario

Cita:
Iniciado por Fridureiks Ver Mensaje
Al margen del error en si...ese HTML que generas es un desastre.... cada atributo necesita de unas comillas que no aparecen en ningun caso. Quiza ahora no te de problemas, pero ve pensando en que no es la manera correcta de hacer las cosas.

Por otro lado, todo el html metidito asi dentro de echos, da hasta pereza revisarlo... no es cómodo ni escribirlo , ni leerlo. Con lo simple que puede ser algo asi:

Código PHP:
<?php
if($talcosa)
{
      
?><input type="text" name="user" value="<?php echo $talcosa;?>"><?php
}
?>
Yendo mas a tu problema, seguramente sea porque no estas recibiendo las variables como se debe:

Código PHP:
<?php

$user 
$_POST["user"];
$pass $_POST["pass"];
authenticate($user,$pass); 
?>

Y viendo el resto, creo que tenes el mismo error en todos. No usas los superglobales y por eso las variables quedan vacias.


Saludos
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #8 (permalink)  
Antiguo 13/03/2007, 18:37
 
Fecha de Ingreso: octubre-2006
Ubicación: Xoxocotla, Morelos Mexico
Mensajes: 243
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Problemas con Formulario

Hola...

Oye yo no soy un experto en la materia, pero yo hice un sistema de inventrio para la biblioteca de la escuela donde estudio, y lo hice presisamente con PHP.

La verdad no lei tu codigo, pero creo que el error podria estar en esta linea:

$result = mysql_query("SELECT * FROM docentes WHERE = '$docente' ");

No se supone que despues del WHERE y antes del = debe ir el campo de tu tabla con el cual se va a comparar lo que tenga la variable '$docente' ?????

Igual y por eso no te muestra nada, por que no esta haciendo comparacion alguna.

Tal vez con algo mas o menos asi te quede:

$result = mysql_query("SELECT * FROM docentes WHERE nombre_docente = '$docente' ");

esto suponiendo que en tu tabla tengas el campo nombre_docente.

No se si me explique o si de plano nomas no doy una, pero pues igual y puede servrte de algo.
  #9 (permalink)  
Antiguo 16/03/2007, 11:01
 
Fecha de Ingreso: febrero-2007
Ubicación: Barranquilla, Colombia
Mensajes: 181
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: Problemas con Formulario

Hobbit, acertado tu comentario y ya lo corregí, pero aun así este no debería pasarme el error a PHP, sino el mensaje de error de consulta inválida o no arrojar nada a PHP.

Fridureiks, ya corregí el problema con $_POST['user]; no sé porqué en varios de los documentos en los que me basé, tres en total no especifican esta opción
En cuanto a las comillas no es necesario si los valores de las propiedades tienen una variable con algún valor válido, y en caso de que sea necesario la comilla le antecedo el caracter "\"
Gracias.

Bueno me sirve para depurarme en la novatada!!!
  #10 (permalink)  
Antiguo 16/03/2007, 11:13
 
Fecha de Ingreso: febrero-2007
Ubicación: Barranquilla, Colombia
Mensajes: 181
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: Problemas con Formulario

Problemas para pasar valores con cadena de texto con espacios.
A entrada tipo texto de formulario.

Bueno este archivo no está depurado ya que tiene muchas pruebas, en la medida que voy construyendo.
Al final tengo que afinarlo naturalmente.

Sacando un pedazo del codigo tenemos

Código PHP:

        $result 
mysql_query("SELECT  dIdnt, Nmbs, Apl1, Apl2 FROM docentes WHERE dIdnt = '$VALPOST';") or die ("Consulta Fallida");
        
$row mysql_fetch_array($result);
        
$frNmbs mysql_escape_string($row[Nmbs]);
        print 
"$frNmbs";

        print 
"<form action=\"BuscarDocente.php\" method=post>";
        
//Solicitud de Documento
        
print "<p>";
        print 
"<input name=tfdIdnt type= text id=tfdIdnt value=$row[dIdnt] size=15 maxlength=15>";
        print 
"<strong>Documento de identidad</strong>";
        print 
"</p>"
        print 
"Agregue un caracter inicial as&iacute;: ";
        print 
"<font color=BLUE size=-2>";
        print 
"'C': C&eacute;dula, 'R':Registro Civil,'T':Tarjeta de Identidad, 'E': Extranjer&iacute;a";
        print 
"</font>";
        print 
"</p>";

        
//Solcicitud de Nombres
        
print "<p>"
        print 
"<input name=tfNmbs type=text id=tfNmbs value=$frNmbs size=20 maxlength=20>  Nombres";
        print 
"</p>"
$frNmbs = mysql_escape_string($row[Nmbs]);

Supongamos que $row[Nmbs] tenga el valor de "Palabra1 Palabra2 Palabra3"
En el caso de que yo imprima directamente
print "$frNmbs"; en la pantalla me sale "Palabra1 Palabra2 Palabra3" que está correcto.

Pero al tratar de pasarlo al valor de entrada de texto
print "<input name=tfNmbs type=text id=tfNmbs value=$frNmbs size=20 maxlength=20> Nombres";

El cuedro de texto solo me saca "Palabra1"

Como hago para imprimir en elm cudro de texto "Palabra1 Palabra2 Palabra3"

Gracias.
  #11 (permalink)  
Antiguo 16/03/2007, 11:29
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Problemas con Formulario

La solucion es escribir HTML válido, correcto y te lo comentaba en mi primer mensaje:

Cita:
Iniciado por Fridureiks Ver Mensaje
Al margen del error en si...ese HTML que generas es un desastre.... cada atributo necesita de unas comillas que no aparecen en ningun caso.

Código HTML:
<input name="tfNmbs" type="text" id="tfNmbs" value="palabra 1 palabra 2 palabra 3" size="20" maxlength="20"> 
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #12 (permalink)  
Antiguo 21/03/2007, 12:38
 
Fecha de Ingreso: febrero-2007
Ubicación: Barranquilla, Colombia
Mensajes: 181
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: Problemas con Formulario

Como estamos imprimiendo desde PHP se podría hcer así:

Código PHP:
print "<input name=tfdIdnt type= text id=tfdIdnt value=\"$row[dIdnt]\" size=15 maxlength=15>"
Valiosa tu ayuda,

Gracias
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:36.