Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/11/2011, 19:18
Avatar de hzmen1
hzmen1
 
Fecha de Ingreso: abril-2011
Ubicación: España
Mensajes: 11
Antigüedad: 13 años
Puntos: 1
Consultas mysql siempre erroneas

Lo siento si no me explico muy bien es que soy mas o menos nuevo en esto :(

A ver, hago que los usuarios se registren así:

Código PHP:
<div class="title">Registrarse</div>
    <
form action="/insertar.php" method="post" onsubmit="return onSubmitReg();">
        <
div class="demot form">
            <
label for="usuario">Nombre de usuario</label><input type="text" name="usuario" id="usuario" maxlength="25" value="" /><br />
            <
label for="password">Contraseña</label><input type="password" name="password" id="password" /><br />
            <
label for="pass2">Repita la contraseña</label><input type="password" name="pass2" id="pass2" /><br />
            <
label for="email">Tu correo</label><input type="text" name="email" id="email" maxlength="50" value="" /><br /><br />
            <
label for="accept">Acepto <a href='/reglas'>las condiciones</a></label><input style="width: 2%;" type="checkbox" name="accept" id="accept" /><br /><br />
            <
label></label><input type="submit" value="Registrarse" />
        </
div>
    </
form
Luego inserto los datos en la base de datos con insertar.php

Código PHP:
<? 
// Primero comprobamos que ningún campo esté vacío y que todos los campos existan. 
if(isset($_POST['usuario']) && !empty($_POST['usuario']) && 
isset(
$_POST['password']) && !empty($_POST['password']) && 
isset (
$_POST['email']) && !empty($_POST['email'])) { 

// Si entramos es que todo se ha realizado correctamente 

$link mysql_connect("host","base","contraseña");
mysql_select_db("tabla",$link); 

// Con esta sentencia SQL insertaremos los datos en la base de datos 
mysql_query("INSERT INTO usuarios (usuario,password,email) 
VALUES ('{$_POST['usuario']}','{$_POST['password']}','{$_POST['email']}')"
,$link);

// Ahora comprobaremos que todo ha ido correctamente 
$my_error mysql_error($link); 

if(!empty(
$my_error)) { 

echo 
"Ha habido un error al insertar los valores. $my_error"

} else { 

echo 
'<meta http-equiv="refresh" content="0;URL=/inicio-de-sesion.php">'



} else { 

echo 
"Error, no ha introducido todos los datos"



?>
Después recojo los datos en un formulario de inicio: inicio-de-sesion.php
Código PHP:
<div class="title">Iniciar sesión</div>
        <
form action="/sucess.php" method="post" onsubmit="return onSubmitLog();">
            <
div class="demot form">
                <
label for="username">Nombre de usuario</label><input type="text" name="username" id="username" maxlength="25" value="" /><br />
                <
label for="password">Contraseña</label><input type="password" name="password" id="pass" /><br />
                <
br />
                <
label></label><input type="submit" value="Iniciar sesión" /> 
y con sucess.php los envio a la base de datos.

Código PHP:
<?php
session_start
(); //crea la cookie
//datos para establecer la conexion con la base de mysql.
mysql_connect('host','base','contraseña')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('tabla')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 
'<meta http-equiv="refresh" content="0;URL=/inicio.php">';
            echo 
'<meta http-equiv="refresh" content="0;URL=/inicio.php">';
            
//Elimina el siguiente comentario si quieres que re-dirigir automáticamente a inicio.php
            /*Ingreso exitoso, ahora sera dirigido a la pagina principal.
            <SCRIPT LANGUAGE="javascript">
            location.href = "inicio.php";
            </SCRIPT>*/
        
}else{
            echo 
'<p align="center">contraseña incorrecta</p>';
        }
    }else{
        echo 
'<p align="center">usuario incorrecto</p>';
    }
    
mysql_free_result($result);
}else{
    echo 
'<p align="center">no has introducido nada';
}
mysql_close();
?>
El problema es que siempre me dice que los campos están vacios, alguna idea? :S