Comunidad de diseño web y desarrollo en internet online

ayuda con post y get

Citar            
MensajeEscrito el 18 Sep 2007 06:44 pm
Hola perdon por no conectarme antes pero fue por razones de viaje de trabajo, y bueno necesito ayudaaaaaa he decidido usar la opcion del post en ves de get, solo que al cambiarle el get por el post no me funciona bien y no se que estoy haciendo mal , mi formulario esta asi

<form action ="prueba.php" method "POST" >
<strong>Numero de Cliente: </strong>
<input name="cliente" value="" size="20"><br><br>
<input type="submit" value="buscar"><br><br>
</div>
</form>
</font>
</body>
</html>


y el menu prueba esta asi


<?php $num_cliente = $_POST'cliente']; (mi duda es aqui)

$link = mysql_connect ("192.0.0.0", "usuario", "pasword");

$db = mysql_select_db ("basededatos", $link);

$strqry = "SELECT * FROM tabla where numero =\"".$num_cliente."\"";

$qry = mysql_query($strqry);
$row = mysql_fetch_assoc($qry);


if ($row ["numero"]=="") {
print '<p align="center"><font color="#006699" size="2" face="Arial"> "NUMERO DE CLIENTE O PASWORD INCORRECTOS"</font></p>';

} else {

?>
<font color="#FF0000" size="3" face="Arial">BIENVENIDO</font></p>
<font color="#006699" size="2" face="Arial"><?php print $row ["nombre"]; ?></font></p>

Por micky_r2003

93 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 18 Sep 2007 06:52 pm
Lo que veo es un pequeño error de sintaxis:

Código :

$num_cliente = $_POST'cliente']; 


por

Código :

$num_cliente = $_POST['cliente']; 


Chaop!

Por luchope

38 de clabLevel



Genero:Masculino  

Bogota Colombia

firefox
Citar            
MensajeEscrito el 18 Sep 2007 07:56 pm
peedon pero eso ya lo corregi fue un dedaso " lo siento" pero sabes que me hace, le pongo en el formulario el numero de cliente y me manda el mesaje que "NUMERO DE CLIENTE O PASWORD INCORRECTOS" aunque este bien el numero, eso si le pongo POST pero si le pngo GET me lo manda bien.

Por micky_r2003

93 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 18 Sep 2007 08:06 pm
Checkea que efectivamente $_POST["cliente"] este vacío.

Código :

echo $_POST["cliente"];

o

Código :

var_dump($_POST["cliente"]);


El campo numero es un int?

Proba poniendo el query asi

Código :

$strqry = "SELECT * FROM tabla where numero = {$num_cliente}";

o asi.

Código :

$strqry = "SELECT * FROM tabla where numero = '{$num_cliente}'";

Antes de hacer la validación deberias fijarte cual es el valor de $row ["numero"]

Código :

echo $row ["numero"];

o

Código :

var_dump($row ["numero"]);


Saludos

Por PabloHdS

251 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Sep 2007 05:00 pm
puse el script como me dices pero le doy el numero correcto de cliente y me manda "NUMERO DE CLIENTE O PASWORD INCORRECTOS"

form action ="menu2.php" method "POST">
<strong>Numero de Cliente:</strong>
<input name="cliente" value="" size="20"><br><br>
<input type="submit" value="buscar"><br><br>
</div>
</form>
</font>
</body>
</html>

y mi archivo prueba queda asi

<?php
$num_cliente = $_GET['cliente'];
$link = mysql_connect ("192.0.0.0", "usuario", "pasword");

$db = mysql_select_db ("basededatosl", $link);

$strqry = "SELECT * FROM tabla where numero = '{$num_cliente}'";

$qry = mysql_query($strqry);
$row = mysql_fetch_assoc($qry);

if ($row ["numero"]=="") {
<font color="#006699" size="2" face=" Arial"> "NUMERO DE CLIENTE O PASWORD INCORRECTOS"</font></p>';
} else {

?>
<font color="#FF0000" size="3" face="Arial">BIENVENIDO</font></p>
<font color="#006699" size="2" face="Arial"><?php print $row ["nombre"]; ?></font></p>

Por micky_r2003

93 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 21 Sep 2007 04:55 pm
OK creo que ya quedo parte del problema resuelto pero hay un detalle, al darle en mi formulario el numero de cliente y enviarme al menu de clientes ya no me muestra el numero de cliente en URL,( que es lo que buscaba y gracias ) y creo que esa parte ya quedo , pero un detalle es que en ese menu tengo links a otras paginas donde donde se muestran reportes y un link me lleva a un formulario donde introdusco unas fechas para una busqueda, al momento de llegar a ese formulario me muestra el numero de cliente en el URL (otra ves) aun que ya despues de introducir las fechas y enviarme al reporte ya no me muestra el numero de cliente en el URL por que ya uso post en ves de get, pero como resulevo lo del formualrio de fechas, para que no me muestre el numero de cliente ?? tendre que usar sessiones ????

el link esta así en el menu clientes

print '<a href=fecha.php?cliente='.$num_cliente.'>REPORTE</font></td>';

me llava al furmulario fecha.php y ahi si me muestra el numero y el formulario esta asi

<form method = "post" action ="opera.php">
FECHA INICIAL :<input type="text" name="fecha_inicial" size="8"><br>
FECHA FINAL :<input type="text" name="fecha_final" size="8"><br>
<input type="hidden" name="num_cliente" value="<?php print $num_cliente; ?>" />
<input type="Submit" name="enviar" value="Aceptar Informacion">

es lo unico que me falta ( bueno eso creo, a menos que me pidan algo mas complicado mas adelante )

Por micky_r2003

93 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 21 Sep 2007 06:20 pm
efectivamente, lo mejor es que uses sesiones.

Por PabloHdS

251 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Sep 2007 06:42 pm
al la consulta SQL quitale esos corchetes { } :
$strqry = "SELECT * FROM tabla where numero = '$num_cliente' ";

Para "ver" las variables en el URL simplemente cambias el método del formulario de POST a GET:
<form method = "get" action ="opera.php">

En los segundo en el input la sintaxis deberia ser:
<input type="hidden" name="num_cliente" value="<?php echo $_POST['liente']; ?>" />

Espero haberte entendido.

Chaop!

Por luchope

38 de clabLevel



Genero:Masculino  

Bogota Colombia

firefox
Citar            
MensajeEscrito el 21 Sep 2007 07:28 pm
no entiendo la sintaxis del input que mencionas

<input type="hidden" name="num_cliente" value="<?php echo $_POST['liente']; ?>" />

lo puse asi y me manda el reporte vacio y los corchetes en $strqry = "SELECT * FROM tabla where numero = '$num_cliente' "; ya se los habia quitado pero de todos modos gracias por decirme por que se ma habia olvidado quitarlos en otros archivos

te explico mejor, en mi sitio hay un apartado para clientes, en el cual le doy numero y pasword para ingresar, al darselo me lleva al menu pricipal de clientes, hasta ahi todo bien por que no me mustra en el URL el numero ni el paword del cliente, pero en el menu principal de clientes tengo links a reportes, para llegar a algunos reporte tienes que pasar por un formulario donde tienes que poner fecha inicial y final, ahi , en ese formulario si me muestra el numero de cliente en el URL ya cuando llego al reporte ya no muestra el numero de cliente en el URL, y hay otros reportes a los que no tengo que pasar por formulario de fecha los links en el manu son directos a esos reportes, pero ahi tambien me muestra el numero de cliente en el URL lo cual quiero ocultar, siento que ya me complique mucho con esto, deberia ser mas cencillo pero bueno mi falta de expericiany la prisa, tal ves la estoy regando en algo y no se en que, espero que me hayas entendido mejor.

Por micky_r2003

93 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 21 Sep 2007 07:51 pm
En realidad esa linea deberia ser asi:

Código :

<input type="hidden" name="num_cliente" value="<?php echo $_POST['cliente']; ?>" />


Sin embargo, opino que ese método de traspaso de valores entre URLs es muy inseguro a la hora de usarlo para id's y claves de usuario..
Como ya dije, te recomiendo que uses sesiones, que son mas seguras que el metodo ya nombrado.

Por PabloHdS

251 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Sep 2007 08:09 pm
De acuerdo con Pablo, debes usasr sessiones para mantener los valores de las variables a lo largo de scripts. Una vez haces la autenticacion abres una sesion (session_start();), creas una(s) variable(s) de sesion y la usas alo largo de tus scripts. estas son del tipo $_SESSION['nombre_de_la_variable'], y cuando ya tus scripts no estén en el ámbito de sesion, pues la cierras (session_destroy()).

En el trozo de código que te puse me equivoqué, gracias Pablo por la corrección:cool:

Código :

<input type="hidden" name="num_cliente" value="<?php echo $_POST['cliente']; ?>" />


Espero sea de ayuda.

Chaop!

Por luchope

38 de clabLevel



Genero:Masculino  

Bogota Colombia

firefox
Citar            
MensajeEscrito el 24 Sep 2007 09:00 pm
Hola otra ves yo y ya estube leeyendo sessiones y mas o menos ya les entendi en lo que no logro pasar es en como lo aplico en mi codigo y donde lo aplico, en el formulario o en el menu de clientes y en cada uno de los reportes por que aparte no quiero que se vea el numero de cliente en el URL , algo asi hice

<?php
session_start();
session_register('cliente');
$_SESSION['cliente']="$num_cliente";

<form method = "POST" action = "http://localhost/menu.php">
<strong>Numero de Cliente: </strong>
<input name="cliente" value="" size="20"><br><br>
<input type="submit" value="buscar"><br><br>
</div>
</form>
</font>
</body>

archivo menu ( aqui me falta)

<?php
$num_cliente = $_POST['cliente'];
$link = mysql_connect ("0.0.0.0", "usuario", "pasword");
$db = mysql_select_db ("basededatosl", $link);
$strqry = "SELECT * FROM tabla where numero =\"".$num_cliente."\"";
$qry = mysql_query($strqry);
$row = mysql_fetch_assoc($qry);
if ($row ["numero"]=="") {
print "NUMERO DE CLIENTE O PASWORD INCORRECTOS"</font></p>';
} else {
?>
<font color="#FF0000" size="3" face="Arial">BIENVENIDO</font></p>
<font color="#006699" size="2" face="Arial"><?php print $row ["nombre"]; ?></font></p>
?>
</html>

Por micky_r2003

93 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 24 Sep 2007 09:10 pm
En la tercera linea de codigo no pongas:
$_SESSION['cliente']="$num_cliente";
en vez de eso:
$_SESSION['cliente']=$num_cliente; .. ya que las variables no se encierran en comillas dobles.


Chaop!

Por luchope

38 de clabLevel



Genero:Masculino  

Bogota Colombia

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.