Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/07/2011, 15:10
servcom
 
Fecha de Ingreso: julio-2011
Mensajes: 9
Antigüedad: 12 años, 9 meses
Puntos: 1
problema login php para web

Hola primero que todo.
Decirles que soy un poco nuevo en esto de php, tengo el siguiente problema o mas bien duda tengo un formulario de registro con una base de datos la cual me funciona correctamente. También tengo un formulario de login dentro de mi web el cual me funciona pero me envia a otra pagina prueba.php, la cual me dice que el usuario se logeo bien y despues otra pagina mas donde me dice bienvenido usuario.
Mi consulta es si se pueden hacer esos pasos dentro del mismo index.html, me explico dentro de mi web crear un formulario login que diga:

Usuario: |_____|
Contraseña:|_____|
entrar Registrarse

que al darle en entrar me diga en la misma pagina index.html (no me envie a login.php)

Bienvenido usuario
Logout

Dejo codigos que utilize para crear los formularios

login.php
Código PHP:
<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" />
</
form

validar_usuario.php
Código PHP:
<?php
session_start
();
//datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','root','root')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('usuarios')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($_POST["usuario"]) != "" && trim($_POST["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($_POST["usuario"], ENT_QUOTES));
    
$password $_POST["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['k_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();
?>

registrar.php
Código PHP:
<?php
session_start
();
//datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','root','root')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('usuarios')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 (\''
.$username.'\',\''.$password.'\',\''.$email.'\',\''.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">
                </FORM>
                <?php
            
}
        }
    }
}else{
    
formRegistro();
}
?>

logout.php
Código PHP:
<?php
session_start
();
// Borramos toda la sesion
session_destroy();
echo 
'Ha terminado la session <p><a href="index.php">index</a></p>';
?>
<SCRIPT LANGUAGE="javascript">
location.href = "index.php";
</SCRIPT>

Si me pudiecen ayudar a solucionar el problema estaria demasiado agradecido

Saludos