A ver... estoy intentando crear una web con codigo php.. la cual estara "relacionada" con una base de datos.... en mysql....
La cosa es que tengo pagina de registro y pagina de acceso... al ingresar los datos se me quedan guardados perfectamente en mi base de datos... pero cuando intento acceder con los datos.... el mensaje que me tendria que salir es "Usuario y contraseña correctos" y lo que me sale es " Debe verificar usuario y contraseña..." y le he dado muchisimas vueltas de como hacerlo... Aqui pongo el codigo de todo... para ver si asi se ve el error y m podeis ayudar
Index:
<?php
session_start();
?>
Inicia sesión aquí!!!.<br />
<?php
echo 'Bienvenido, ';
if (isset($_SESSION['k_username'])) {
echo '<b>'.$_SESSION['k_username'].'</b>.';
echo '<p><a href="logout.php">Logout</a></p>';
}else{
echo '<p><a href="login.php">Login</a></p>
<p><a href="registrar.php">Registrar</a></p>';
}
?>
Logout:
<?php
session_start();
// Borramos toda la sesion
session_destroy();
echo 'Has cerrado la session <p><a href="index.php">index</a></p>';
?>
<SCRIPT LANGUAGE="javascript">
location.href = "index.php";
</SCRIPT>
Login:
<form action="validar_usuario.php" method="post">
Usuario:<input type="text" name="usuario" size="20" maxlength="20" />
<br />
Password:<input type="password" name="password" size="10" maxlength="10" />
<br />
<input type="submit" value="Ingresar"/>
<input type="reset" value="Borrar"/>
</form>
Registrar:
<?php
session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','usuario','password')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('users')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function formRegistro(){
?>
<form action="registrar.php" method="post">
Usuario (max 20):
<input type="text" name="username" size="20" maxlength="20" /><br />
Password (max 10):
<input type="password" name="password" size="10" maxlength="10" />
Confirma: <input type="password" name="password2" size="10" maxlength="10" /><br />
Email (max 40):
<input type="text" name="email" size="20" maxlength="40" /><br />
<input type="submit" value="Registrar" />
</form>
<?php
}
// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST["username"])) {
$username = $_POST["username"];
$password = $_POST["password"];
$password2 = $_POST["password2"];
$email = $_POST["email"];
// Hay campos en blanco
if($username==NULL|$password==NULL|$password2==NULL|$email==NULL) {
echo "un campo está vacio.";
formRegistro();
}else{
// ¿Coinciden las contraseñas?
if($password!=$password2) {
echo "Las contraseñas no coinciden";
formRegistro();
}else{
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
$checkuser = mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'");
$username_exist = mysql_num_rows($checkuser);
$checkemail = mysql_query("SELECT email FROM usuarios WHERE email='$email'");
$email_exist = mysql_num_rows($checkemail);
if ($email_exist>0|$username_exist>0) {
echo "El nombre de usuario o la cuenta de correo estan ya en uso";
formRegistro();
}else{
$query = 'INSERT INTO usuarios (usuario, password, email, fecha)
VALUES (\''..'\',\''..'\',\''..'\',\''.date("Y-m-d").'\')';
mysql_query($query) or die(mysql_error());
echo 'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
echo 'Ahora puede entrar ingresando su usuario y su password <br />';
?>
<FORM ACTION="validar_usuario.php" METHOD="post">
Usuario : <INPUT TYPE="text" NAME="usuario" SIZE=20 MAXLENGTH=20><br />
Password: <INPUT TYPE="password" NAME="password" SIZE=10 MAXLENGTH=10><br />
<INPUT TYPE="submit" VALUE="Ingresar">
<INPUT TYPE="reset" VALUE="Borrar">
</FORM>
<?php
}
}
}
}else{
formRegistro();
}
?>
Validar usuario:
<?php session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','usuario','password')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('users')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"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
{
// Puedes utilizar la funcion para eliminar algun caracter en especifico
//$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"]));
//$password = $HTTP_POST_VARS["password"];
// o puedes convertir los a su entidad HTML aplicable con htmlentities
$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'];
echo 'Has sido logueado correctamente '.$_SESSION['username'].' <p>';
echo '<a href="index.php">Index</a></p>';
//Elimina el siguiente comentario si quieres que re-dirigir automáticamente a index.php
/*Ingreso exitoso, ahora sera dirigido a la pagina principal.
<SCRIPT LANGUAGE="javascript">
location.href = "index.php";
</SCRIPT>*/
}else{
echo 'Password incorrecto';
}
}else{
echo 'Usuario no existente en la base de datos';
}
mysql_free_result($result);
}else{
echo 'Debe especificar un usuario y password';
}
mysql_close();
?>
Gracias de antemano... ^^!