Foro de elhacker.net

Programación => 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

Código:
<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

Código:
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
  1. <form action='index.php' method='post'>
  2.  <input type='text' name='txtPoC' />
  3.  <input type='submit' name='btnPoC' />
  4. </form>

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

Código
  1. </body>
  2. </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...
Citar
El enctype especifica el formato de los datos que se envian.

Cambia esta linea:
Código
  1. <form action="validar.php" method="post" enctype="text/plain">

Por esta:
Código
  1. <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!!