Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: guillegf84 en 26 Septiembre 2010, 23:51 PM

Título: XAMPP no recibe los datos de un form
Publicado por: guillegf84 en 26 Septiembre 2010, 23:51 PM
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(); 
Título: Re: XAMPP no recibe los datos de un form
Publicado por: Shell Root en 26 Septiembre 2010, 23:57 PM
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
Título: Re: XAMPP no recibe los datos de un form
Publicado por: guillegf84 en 28 Septiembre 2010, 00:16 AM
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??
Título: Re: XAMPP no recibe los datos de un form
Publicado por: Shell Root en 28 Septiembre 2010, 01:38 AM
Eso quiere decir que el PoC que te puse te funciona correctamente?
Intenta cambiar $HTTP_POST_VARS['variable']; por $_POST['Variable'];
Título: Re: XAMPP no recibe los datos de un form
Publicado por: guillegf84 en 28 Septiembre 2010, 10:58 AM
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...
Título: Re: XAMPP no recibe los datos de un form
Publicado por: guillegf84 en 29 Septiembre 2010, 22:06 PM
Ninguna idea???
Título: Re: XAMPP no recibe los datos de un form
Publicado por: ~ Yoya ~ en 29 Septiembre 2010, 22:44 PM
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!
Título: Re: XAMPP no recibe los datos de un form
Publicado por: guillegf84 en 30 Septiembre 2010, 16:21 PM
Genial, muchísimas gracias!!!

Ahora funciona correcto!!