Comunidad de diseño web y desarrollo en internet online

Sintaxis de Método POST en php y html según versión

Citar            
MensajeEscrito el 02 Feb 2012 07:12 pm
Saludos a To@s. :D

Tengo una duda espero me puedan orientar. E instalado en mi maquina Wampserver 2.0 todo funciona bien entre php y mysql hasta que intento generar una consulta mediante un form con html, de alguna forma no me reconoce el metodo POST me marca el sig error:

Notice: Undefined index: nom in C:\wamp\www\Prueba\form2.php on line 55 :shock:

es raro por que esto lo e hecho anteriormente solo que en Cpanel. no se si es la version de php 5.3.0 o es el wampserver... :?

esta es la sintaxis

Código HTML :

<!-->este es mi form en html<!-->
<form action="index.php" method="post" onblur=>
<p><input name="nom" type="text" size="15" /></p>
<p><input type="submit" name="Submit" value="Enviar" /></p>
</form>

y este es mi codigo en php.

Código PHP :

$ver=mysql_query("SELECT  * FROM  usuario where id_us='$_POST[nom]'");


Código PHP :

// e intentado colocarlo de esta forma... incluso fuera del query para imprimir la variable 
$_POST[nom];
$_POST['nom']
$val1=$_POST[nom];
$val1="'$_POST[nom]'"
$val1=$_POST["nom"];
//pero no resulta 


De antemano Gracias.. espero me puedan orientar por q no encuentro como.????????

Saludos.

Por langel_rr

20 de clabLevel



Genero:Masculino  

Desarollador Web

chrome
Citar            
MensajeEscrito el 02 Feb 2012 07:31 pm
Haz lo siguiente para ver qué viene en la variable $_POST;

Código PHP :

echo "<pre>";
print_r($_POST);
echo "</pre>";

No lo puedo asegurar pero me parece que tienes un error de sintaxis en el código HTML.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 02 Feb 2012 09:10 pm

Código :

<form action="index.php" method="post" onblur=>

que hace el onblur????
algunos navegadores actuan distintamente ante una mal syntaxis de html
:)

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 03 Feb 2012 01:05 am
Ok, Antes que nada gracias por orientarme. el elemento onblur según tengo entendido sirve para ejecutar una accion al formulario al momento de dar clic con el raton o con el tabulador. En realidad no lo e probado bien, se me paso cuando copie código html... :P

ya puedo hacer la consulta de html y si me sale... y en efecto si era error de sintaxis de html... Bueno eso creo jeje.

Pero caso curioso... cuando entro a mi sitio http://localhost/prueba. con cualquier explorador me sale el mismo error. cuando lleno el campo de texto y le doy en el botón me muestra la consulta y el error deja de mostrarse.. todo funciona bien... pero como le hago para q este no me lo muestre cuando entro x primera vez...????

así quedo mi código.

Código HTML :

<!-->Realizo la consilta en la misma pagina<!-->
<form action="index.php" method="POST"> 
<input type="text" name="campo1" id="cpo" placeholder="ingresa nombre" required="required" maxlength="50" />
<input type="submit" name="Submit" value="Enviar" />
</form>

Código PHP :

$ver=mysql_query("SELECT * FROM  usuario where nombre='$_POST[campo1]'");


De antemano gracias :wink:

Por langel_rr

20 de clabLevel



Genero:Masculino  

Desarollador Web

chrome
Citar            
MensajeEscrito el 03 Feb 2012 03:52 pm

Código PHP :

$ver=mysql_query("SELECT * FROM  usuario where nombre='$_POST['campo1']'");  


Se considera mala práctica

Código :

 '$_POST[campo1]'" 

y la manera correcta es hacerlo así:

Código :

"$_POST['campo1']"


Y es porque sin comillas se puede considerar como una constante y en actualizaciones de PHP (o tu misma aplicación) pudiera haber una constante con ese nombre. Así que, para evitarlo siempre usa las comillas a menos que sea una constante en realidad lo que necesites.
Al final el codigo terminaria así:

Código PHP :

$ver= mysql_query("SELECT * FROM  usuario where nombre="$_POST['campo1']" ");


Mas informacion: http://php.net/manual/es/language.constants.php

Por dsalcedo

50 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 04 Feb 2012 04:42 pm

dsalcedo escribió:


Código PHP :

$ver= mysql_query("SELECT * FROM  usuario where nombre="$_POST['campo1']" ");


va a dar error falta concatenar :)

Código PHP :

$ver= mysql_query("SELECT * FROM  usuario where nombre=" . $_POST['campo1'] . " ");

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 04 Feb 2012 04:48 pm
algo así:

Código PHP :

if (strtolower($_SERVER['REQUEST_METHOD']) == 'post')
{
// aqui formulario enviado

// Con esto obtendremos los datos del formulario, si el dato no existe se usara valor "false"
// para un futuro if
$campo1 = isset($_POST['campo1']) ? $_POST['campo1'] : false;
$campo2 = isset($_POST['campo2']) ? $_POST['campo2'] : false;

if (!$campo1 || !$campo2)
{
//aqui se haran las consultas a la base de datos y todo
}
else
{
// aqui pondras algo como "echo 'no haz rellenado el formulario';"
}
}
else
{
// aqui formulario no enviado
}

El error que te da de "index" es porque aún no existe la variable de la cual quieres obtener el valor (por eso utilicé isset())

Por Night~

43 de clabLevel



Genero:Masculino  

Geek, Gamer, Otaku

chrome
Citar            
MensajeEscrito el 07 Feb 2012 04:44 pm
Gracias :D el método isset me sirvió de mucho y en efecto ya no se visualiza el error, al igual que los demás consejos sobre el tema.. muchas Gracias ^^

Saludos :wink:

Por langel_rr

20 de clabLevel



Genero:Masculino  

Desarollador Web

chrome

 

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