0

希望这对董事会来说是一个简单的问题。另外,请记住,我是初学者。所以,如果我错过了一些重要的步骤,请告诉我。

我想要做的是设置一个用户页面以在用户在登录页面上输入后识别用户的电子邮件。如您所见,我正在使用 FatCow 托管,并编辑了我的密码/用户名和任何其他个人数据。这是我的代码,非常感谢您的帮助:

登录页面:

<?php

if(isset($_REQUEST['submitted'])) {

    $email = $_POST['email'];
    $password = $_POST['password'];

    $link = mysql_connect('root.fatcowmysql.com', 'username', 'password'); 
    if (!$link) { 
        die('Could not connect: ' . mysql_error()); 
    } 

    if ($email&&$password) 
    { 
        mysql_select_db(lcmembership); 

        $query = mysql_query("SELECT * FROM users WHERE email='$email' && password='$password'");

        $numrows = mysql_num_rows($query);

        if($numrows !=0)
        {
            session_save_path('/home/users/web/b2582/username/phpsessions'); 
            session_start();
            $_SESSION['users'] = "test";
            header("location: users.php");
        }
        else
            echo ("<p style='position: absolute; left: 500px; top: 150px; font-family: arial;color: white; background-color: #F1433F; border-radius: 10px; padding: 10px;'>That email address doesn't exist in our records. </p>");
        }
    } 
    else
    {
        echo ("<p style='position: absolute; left: 500px; top: 150px; font-family: arial;color: white; background-color: #F1433F; border-radius: 10px; padding: 10px; '>Incorrect Password. </p>");
    }
}
?>
<html>Form here with Action="" and Method="Post"</html>

用户页面:

<?php
session_start();
echo $_SESSION['users'];
?>
4

1 回答 1

0

如果您像您一样设置自定义 session_save_path() ,那么您还需要在其他页面上调用它。该方法既是getter又是setter。

因此,在您的用户页面上,您需要以下内容:

<?php
    session_save_path(); // Get session path
    session_start(); // Resume session
    echo $_SESSION['users'];
?>

此外,您需要更正您的 else 逻辑。在一个 if 链中有两个 else 语句。对于第一个,您需要执行 else if,然后您可以在最后使用 else 进行默认设置。就个人而言,尽管我会在您的代码中进一步移动电子邮件和密码逻辑。由于您的 MySQL 查询仅查找两者都匹配的记录,因此您现在拥有它是多余的。

于 2012-06-21T23:32:55.473 回答