无法使这个PHP代码工作

时间:2014-03-06 10:43:29

标签: php

此代码总是转到" index.php?err = 1"而且我不知道为什么。

' acceso_db.php'是数据库连接(没关系)

$email = mysql_real_escape_string($_POST['Nick']);
        $usuario_clave = mysql_real_escape_string($_POST['pas']); 
        $usuario_clave = sha1($usuario_clave); //la clave se comprueba en SHA1

        // comprobamos que los datos ingresados en el formulario coincidan con los de la BD 
        include('acceso_db.php'); 
        $sql = "SELECT * FROM usuarios WHERE email='$email' AND clave='$usuario_clave'";
        $result = mysql_query($sql)or die ("error en el select.");
        if (false === $result) {
            echo mysql_error();
        }
        else if($row = mysql_fetch_array($result)) {
            if($_POST['recordar']){
                mt_srand (time());
                $auth = mt_rand(1000000,999999999);
                $sql="UPDATE usuarios set Auth='$auth' WHERE email='$email' AND clave='$usuario_clave'";
                $result = mysql_query($sql) or die (mysql_error());
                setcookie("id_usuario", $email, time()+(60*60*24*365));
                setcookie("galleta", $auth, time()+(60*60*24*365));
            }
            $_SESSION['email'] = $row["email"];
            mysql_free_result($result);
            header("Location: index.php"); 
        }else {
            mysql_free_result($result); 
            header("Location: index.php?err=1"); 

        } 

3 个答案:

答案 0 :(得分:0)

Ofc确实如此。您始终会重定向到此网址。

header("Location: index.php?err=1"); 

它是固定的,永远不会改变。代码做了应有的事情。您应该将err=1替换为您希望在GET中使用的值。

答案 1 :(得分:0)

你可以这样试试,

    $row = mysql_fetch_array($result);

if (isset($row)) { 
    if ($_POST['recordar']) {
        mt_srand(time());
        $auth = mt_rand(1000000, 999999999);
        $sql = "UPDATE usuarios set Auth='$auth' WHERE email='$email' AND clave='$usuario_clave'";
        $result = mysql_query($sql) or die(mysql_error());
        setcookie("id_usuario", $email, time() + (60 * 60 * 24 * 365));
        setcookie("galleta", $auth, time() + (60 * 60 * 24 * 365));
    }
    $_SESSION['email'] = $row["email"];
    mysql_free_result($result);
    header("Location: index.php");
} else {
    mysql_free_result($result);
    header("Location: index.php?err=1");
} 

答案 2 :(得分:0)

你的代码有问题..试试这个编辑......

$email = mysql_real_escape_string($_POST['Nick']);
$usuario_clave = mysql_real_escape_string($_POST['pas']);
$usuario_clave = sha1($usuario_clave); //la clave se comprueba en SHA1
// comprobamos que los datos ingresados en el formulario coincidan con los de la BD 
include('acceso_db.php');
$sql = mysql_query("SELECT * FROM usuarios WHERE email='$email' AND clave='$usuario_clave'");
if (!$sql)
{
    echo mysql_error();
    header("Location: index.php?err=1");
    exit;
}
else
{
    while($row = mysql_fetch_array($sql))
    {
        if ($_POST['recordar'])
        {
            mt_srand(time());
            $auth = mt_rand(1000000, 999999999);
            $sql2 = mysql_query("UPDATE usuarios set Auth='$auth' WHERE email='$email' AND clave='$usuario_clave'");
           if(!$sql2)
           {
            echo 'update query failed';
            exit;
           }
            setcookie("id_usuario", $email, time() + (60 * 60 * 24 * 365));
            setcookie("galleta", $auth, time() + (60 * 60 * 24 * 365));
        }
        $_SESSION['email'] = $row["email"];
        mysql_free_result($sql);
        header("Location: index.php");
   } 
}

如果您需要任何进一步的指导,请告诉我......