Evidentemente las variables vienen de los nombres de los input de un formulario asi de registro.html
<h2>Registrate</h2>
<center><form action="registrando.php" method="post" enctype="multipart/form-data" name="entrando">
<h3 style="color:black">Introduce tus datos</h3>
<h4>nick</h4>
<input type="text" name="autor" size="20" />
<h4>password</h4>
<input type="password" name="clave" size="20" /><br/>
<br/><input type="submit" value="entrar" class="enviar" /><br/>
<input type="checkbox" name="acepto" value="aceptar" checked />
<small>He leido y acepto las <a href="condiciones.html">condiciones</a></small></center>
llega a registrando.php:
<?
echo "<center><div id='registrando'>";
include("conexcion.php");
$fecha=date("d/m/Y");
$autor=strip_tags($_POST["autor"]);
$autor=htmlentities($autor);
$autor=mysql_real_escape_string($autor);
$clave=strip_tags($_POST["clave"]);
$clave=htmlentities($clave);
$clave=stripslashes($clave);
$clave=htmlspecialchars($clave);
$clave=md5($clave);
$acepto=strip_tags($_POST["acepto"]);
$acepto=htmlentities($acepto);
if (empty ($autor) || (empty($clave))){
echo "<h3>Debes rellenar todos los datos</h3>";
echo "<center><img alt='policia' src='img/Policia.gif' height='130' width='165' /><br/>";
echo "<br/><input type='button' value='volver' name='volver' onclick='history.back()' /></center>";
} else {
$registrando=mysql_query("SELECT autor FROM usuarios WHERE autor='$autor'");
if ($nuevousuario=mysql_fetch_array($registrando)){
echo "<h3>*".$autor."*, ya existe</h3>";
echo "<center><img alt='policia' src='img/Policia.gif' height='130' width='165' /><br/>";
echo "<h3>elige otro</h3>";
echo "<br/><input type='button' value='volver' name='volver' onclick='history.back()' /></center>";
} else {
if ($_POST["acepto"] == 'aceptar'){
mysql_query("INSERT INTO usuarios(autor,clave,fechaInscripcion)
values('$autor','$clave','$fecha')") or die ('Solo caracteres latinos ó numeros');
echo "<h4>Te has registrado con exito</h4><h3> ".$autor."</h3>";
echo "<img alt='sexy' src='img/Policia-sexy.gif' height='200' width='204' />";
echo "<h4>Ya formas parte como miembro de este portal</h4>";
echo "<h3>Para entrar clikea <a href='portal.html'>aqui</a></h3>";
setcookie("usuario",$autor,time()+7776000);
setcookie("contrasena",$clave,time()+7776000);
} else {
echo "<h3>Debe aceptar las condiciones</h3>";
echo "<center><img alt='policia' src='img/Policia.gif' height='130' width='165' /><br/>";
echo "<br/><input type='button' value='volver' name='volver' onclick='history.back()' /></center>";
}
}
}
echo "</div></center>";
exit;
?>
Hasta aqui todo bien (o eso creo), pues se guarda todo en la bd y la clave
codificada.
Despues si ese usuario registrado quiere comenzar session en otrto momento, si el navegador le borra las cookies al cerrar, tiene el form solo para miembros,que es:entrando.php
?
if (isset($_COOKIE["usuario"]) && isset($_COOKIE["contrasena"])){
Header("Location: portal.html");
exit;
} else {
echo "<center><div id='entrando'>";
echo "<center><form action='entrar.php' method='post' enctype='multipart/form-data' name='entrando'>";
echo "<h2>Introduce tus datos</h2>";
echo "<h4>nick</h4>";
echo "<input type='text' name='autor' size='20' />";
echo "<h4>password</h4>";
echo "<input type='password' name='clave' size='20' /><br/>";
echo "<br/><input type='submit' value='entrar' class='enviar' />";
echo "</form>";
echo "</div></center>";
}
exit;
?>
que manda los datos a entrar.php
<?
if (isset($_COOKIE["usuario"]) && isset($_COOKIE["contrasena"])){
Header("Location: foro/foro.php");
}
include("conexcion.php");
$fecha=date("d/m/Y");
$autor=strip_tags($_POST["autor"]);
$autor=htmlentities($autor);
$autor=mysql_real_escape_string($autor);
$clave=strip_tags($_POST["clave"]);
$clave=htmlentities($clave);
$clave=stripslashes($clave);
$clave=htmlspecialchars($clave);
$clave=md5($clave);
$clave=mysql_real_escape_string($clave);
$acepto=strip_tags($_POST["acepto"]);
$acepto=htmlentities($acepto);
//Buscamos en la tabla si existe un usuario con ese nombre y esa contraseña
$registrado=mysql_query("SELECT autor, clave FROM usuarios WHERE autor='$autor' AND clave='$clave'");
//Si existe un usuario con ese alias y esa clave, entra.
if ($usuario=mysql_fetch_array($registrado)){
Header("Location: portal.html");
setcookie("usuario",$autor,time()+7776000);
setcookie("contrasena",$clave,time()+7776000);
exit;
} else {
echo "<center><img alt='policia' src='img/Policia.gif' height='130' width='165' /><br/>";
echo "<h2>Area exclusiva de los miembros</h2>";
echo "<input type='button' value='volver' name='volver' onclick='history.back()' /></center>";
}
exit;
?>
Y es aqui donde me parece que esta el problema, pues no reconoce la clave.
Si elimino la linea
$clave=md5($clave); tanto de registrando.php como de entrar.php, todo va bien, pero con ella no. ¿que falla?
¿Que os parece?