XAMPP no recibe los datos de un form

Iniciado por guillegf84, 26 Septiembre 2010, 23:51 PM

0 Miembros y 1 Visitante están viendo este tema.

guillegf84

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(); 

Shell Root

Intentad con este ejemplo,
Código (html4strict) [Seleccionar]
<html>
<body>
<form action='index.php' method='post'>
 <input type='text' name='txtPoC' />
 <input type='submit' name='btnPoC' />
</form>


Código (php) [Seleccionar]
<?php
  
echo strtolower(htmlentities($_POST['txtPoC'], ENT_QUOTES));
?>


Código (html4strict) [Seleccionar]
</body>
</html>


PD: Todo eso equivale al código de index.php
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

guillegf84

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??

Shell Root

Eso quiere decir que el PoC que te puse te funciona correctamente?
Intenta cambiar $HTTP_POST_VARS['variable']; por $_POST['Variable'];
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

guillegf84

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...


~ Yoya ~

Tu problema no es con PHP, es con el enctype...
CitarEl enctype especifica el formato de los datos que se envian.

Cambia esta linea:
Código (html4strict) [Seleccionar]

<form action="validar.php" method="post" enctype="text/plain">


Por esta:
Código (html4strict) [Seleccionar]

<form action="validar.php" method="post" enctype="application/x-www-form-urlencoded">


$HTTP_POST_VARS esta obsoleto....

Saludos!
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

guillegf84

Genial, muchísimas gracias!!!

Ahora funciona correcto!!