-1

他のメンバーを追加したい memberadd.php にログインしたユーザーを表示しようとしましたが、表示されず、空白です。メンバー追加コードとログイン コードの両方を投稿しますが、memberadd php が他のファイルから変数を受信しなかった方法に何か関係がありますか?

これはmemberaddコードです

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/chtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" >
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="description" content="Web Programming :: Assignment 2" />
    <meta name="Keywords" content="Web, programming" />
    <title>Member Login</title>
</head>

<body>
    <h1>My Member System</h1>

</body>
</html>

<?php
session_start();
require_once('sqlconnect.inc.php');

if(isset($_SESSION['membername']))
    {
    echo "<p>Welcome back". "<br />".$_SESSION['membername']."</p>";

$conn = @mysqli_connect($host, 
        $user, 
        $pswd, 
        $dbnm);

    if (!$conn) {
        echo "<p>Database connection failure</p>"; 
    } else {

    @mysqli_select_db($conn, $dbnm)
        or die ("Database not available");
    }

    $query = "SELECT member_name FROM team";
    $result = mysqli_query($conn, $query);

    if(!$result) {
        echo "<p>Error with: ", $query, "</p>";
        } else {
        echo "<table width='10%' border='1'>";
        echo "<tr><th>Member</th></tr>";

        while ($row = mysqli_fetch_assoc($result)){
                echo "<tr>";
                echo "<td>",$row["member_name"],"</td>";
                echo "</tr>";
        }
    echo "</table>";
    mysqli_free_result($result);
    }
    }
    //
?>  

以下はログインページです

<?php
        session_start();
        require_once('sqlconnect.inc.php');

        if (isset($_POST["login"]))
        {
        $conn = @mysqli_connect($host, $user, $pswd);
                    if (!$conn) {
                    echo "<p>Database connection failure</p>"; 
                    } else {

        $selectDatabase = @mysqli_select_db($conn,$dbnm)
                    or die("<p>The database is not available.</p>");
                    }

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

        $query = "SELECT member_email FROM team WHERE member_email = '$email' AND password = '$passw'";

        $queryResult = @mysqli_query($conn,$query)
                        or die ("<p>Unable to execute query.</p>". "<p>Error code" . mysqli_errno($conn) .":" . mysqli_error($conn))."</p>";


        if(mysqli_num_rows($queryResult) == 0) //user is not found
        {
            header('Location: login.php');
        }else{

        if(mysqli_num_rows($queryResult) == 1)  
        {
            echo ("<p>User is found, Successful login!</p>");   
            echo('<p><a href="memberadd.php">member add</a> </p>');
            echo('<p><a href="memberremove.php">List/Remove member</a> </p>');
            echo('<p><a href="logout.php">Log out</a> </p>');
            exit();

            $query2 = "SELECT member_name FROM team WHERE member_email = '$email' AND password= '$passw'";

            $queryResult2 = @mysqli_query($conn, $query2)
                        or die ("<p>Unable to execute query.</p>". "<p>Error code" . mysqli_errno($conn) .":" . mysqli_error($conn))."</p>";


            $array = mysqli_fetch_row($queryResult2);       
            $_SESSION['membername'] = $array[0];
        }
        else
        {
            echo"<p>Email and password do not match</p>";
            echo'<p><a href="index.php">Home page</a> </p>';
        }
        }
        }


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/chtml-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" >
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="description" content="Web Programming :: Assignment 2" />
    <meta name="Keywords" content="Web, programming" />
    <title>Member Login</title>
</head>

<body>

<form id='login' action='login.php' method='POST'>
        <fieldset >
            <legend><h1>My Team System Log in Page</h1></legend>
            <?php $email = isset($_POST['email']) ? filter_var($_POST['email'], FILTER_SANITIZE_STRING) : ''; ?>
            <label for='email' >Email:</label>
                <input type='text' name='email' id='email' maxlength="50"  value="<?php echo $email; ?>" />
            </div>
                    <br />
            <div class="elements">
            <label for='password' >Password:</label>
                <input type='password' name='password' id='password' maxlength="50" />
            </div>
                    <br />
            <div class="submit">
                <input type='submit' name='login' value='Login' />
                <input type='reset' name='Submit' value='Clear' />
                    <br />
            <div class="elements">
            <a href="index.php">Home</a> 
        </fieldset>
</form>

</body>
</html>
4

5 に答える 5

0

申し訳ありませんが、私が行った初期のファイル (人々が登録したサインアップ ファイル) に誤りがあり、セッション名を ['membername'] ではなく ['name'] に設定しました。今は大丈夫です。

于 2013-10-31T22:26:28.050 に答える
0

さて、私が見ていることについてお話しできます。メンバー名のセッションを次のように設定します

$_SESSION['membername'] = $array[0];

しかし、memberadd.php では、次のように取得します。

echo "<p>Welcome back". "<br />".$_SESSION['name']."</p>";

したがって、設定したのと同じ名前に変更する必要があります。

echo "<p>Welcome back". "<br />".$_SESSION['membername']."</p>";
于 2013-10-31T22:14:45.937 に答える
0

表示される 3 つのエラー -
1.session_start()コードの先頭/先頭にありません。
2. セッション値を設定する前にエコーします
。 3.exit();エコーの後、セッション値を設定する前に使用します。


また、あなたはSQLインジェクションに対して広くオープンであり、パスワードをハッシュする必要があります.

于 2013-10-31T22:09:01.150 に答える