Hola,
Estoy utilizando XAMPP para diseñar una página web. Tengo un problema:
Desde "index.php" envío mediante un "form" el nombre de usuario y la contraseña a "validar.php". El problema es que el contenido del nombre y la contraseña es como si se borrara al llegar a "validad.php".
He probado a poner al comienzo de validad.php echo $_POST["usuario"]; pero no se imprime nada.
Tb he probado a cambiar $HTTP_POST_VARS["usuario"] por $_POST["usuario"] y tampoco...
Por que puede ser ese problema?? alguien me puede echar una mano??
Muchas gracias.
Saludos!!
index.php
<form action="validar.php" method="post" enctype="text/plain">
<table width="240" border="0">
<tr>
<td width="100" align="right" valign="middle">Usuario:</td>
<td width="120"><input type="text" name="usuario" size="20" maxlength="20" /></td>
</tr>
<tr>
<td align="right" valign="middle">Contraseña:</td>
<td><input type="password" name="password" size="20" maxlength="10" /></td>
</tr>
</table>
<table width="240" border="0">
<tr>
<td align="right" valign="middle"><input type="submit" value="Entrar" /></td>
</tr>
<tr>
<td align="center">Olvidé mi Contraseña - <a href="registrar.php">Regístrate</a></td>
</tr>
</table>
</form>
validar.php
session_start();
mysql_connect('localhost','root','')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('jomxim5n_BDLyT')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function quitar($mensaje)
{
$nopermitidos = array("'",'\\','<','>',"\"");
$mensaje = str_replace($nopermitidos, "", $mensaje);
return $mensaje;
}
if(trim($HTTP_POST_VARS["usuario"]) != "" or (trim($HTTP_POST_VARS["password"]) != ""))
{
$usuario = strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES));
$password = $HTTP_POST_VARS["password"];
$result = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\'');
if($row = mysql_fetch_array($result)){
if($row["password"] == $password){
$_SESSION["k_username"] = $row['usuario'];
header ("Location: index.php");
echo 'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
}else{
echo 'Usuario o Contraseña erróneos <br><br>';
echo '<a href="">Volver</a></p>';
}
}else{
echo 'Usuario no existente en la base de datos <br><br>';
echo '<a href="">Volver</a></p>';
}
mysql_free_result($result);
}
else{
echo 'Debe especificar un usuario y password <br><br>';
echo '<a href="">Volver</a></p>';
}
mysql_close();
Intentad con este ejemplo,
<html>
<body>
<form action='index.php' method='post'>
<input type='text' name='txtPoC' />
<input type='submit' name='btnPoC' />
</form>
<?php
echo strtolower(htmlentities($_POST['txtPoC'], ENT_QUOTES));
?>
</body>
</html>
PD: Todo eso equivale al código de index.php
Muchas gracias por responder!
Al copiarlo, se muestra en la pantalla lo que escribo en el form...
Tengo otra página (registrar.php) que los datos que se envían vuelven directamente a la misma página (registrar.php) y funciona bien!!
Pq se pueden borrar las variables??
Eso quiere decir que el PoC que te puse te funciona correctamente?
Intenta cambiar $HTTP_POST_VARS['variable']; por $_POST['Variable'];
Si si, funciona perfectamente.
Lo de cambiar $HTTP_POST_VARS["usuario"] por $_POST["usuario"] ya lo probñe también, lo hice antes incluso de publicar este nuevo tema.
Q jaleo, estoy atascado y no puedo seguir...
Ninguna idea???
Tu problema no es con PHP, es con el enctype...
CitarEl enctype especifica el formato de los datos que se envian.
Cambia esta linea:
<form action="validar.php" method="post" enctype="text/plain">
Por esta:
<form action="validar.php" method="post" enctype="application/x-www-form-urlencoded">
$HTTP_POST_VARS esta obsoleto....
Saludos!
Genial, muchísimas gracias!!!
Ahora funciona correcto!!