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() を設定した場合は、他のページでもそれを呼び出す必要があります。このメソッドはゲッターとセッターの両方です。

したがって、ユーザーページには次のものが必要です。

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

また、else ロジックを修正する必要があります。1 つの if チェーン内に 2 つの else ステートメントがあります。最初の場合はelse ifを実行する必要があり、最後にelseでデフォルトにすることができます。個人的には、メールとパスワードのロジックをコード内でさらに上に移動したいと思います。MySQLクエリは両方が一致するレコードのみを探しているという事実に基づいて、現在の場所は冗長です。

于 2012-06-21T23:32:55.473 に答える