0

mysqlserver の行項目から入力テキスト ボックスの値までのデータを取得していますが、ページの読み込み時に値が表示されません。そして、入力ボックスの値を表示できないようです。誰が何が悪いのか知っていますか?

<?php           
        if(isset($_COOKIE["email"]))
        {               
            $emailAddress = $_COOKIE["email"];
            $password = $_COOKIE["password"];               
            include('connectDB.php');
            $select = "SELECT * FROM P_Profile WHERE P_EmailAddress = '$emailAddress' AND P_Password='$password'";              
            mysql_select_db("lotusbs", GetConnection()) or die(mysql_error());                  
            $result = mysql_query($select) or die(mysql_error());               
            $row = mysql_fetch_array($result)                   
            ?>              
                <div class="signupcontainer">
                    <div class="contentsignup" style="margin-top:20px;">                        
                    <div class="textboxsignup"><span class="signuptbspan" style="Display:none;">First name</span><input value="<?php echo $row['P_FirstName'];?>" name="txtfirstname" id="txtfirstname" type="text"/></div>
                        <div class="signupinfo">Enter first name</div>
                        <div class="signupinfoerror">Must Enter first name</div>
4

3 に答える 3

1

これを行う前に:

$row = mysql_fetch_array($result)

これを行うことにより、クエリがテーブルから行をフェッチしたかどうかを常に確認する必要があります。

if (mysql_num_rows($result)) {
    // fetch the rows here and do other stuff
}
else {
    echo "Record was not found !";
}

これにより、一部のレコードがクエリによって返されることがわかります。「レコードが見つかりません」という出力が表示される場合は、SQLクエリに問題があります。またmysql_fetch_array()、としてアクセスされる配列を提供します$row[0]。そのような連想配列としてアクセスしたい場合は$row['P_FirstName']、関数を呼び出す必要がありますmysql_fetch_assoc()

于 2012-04-13T16:54:41.150 に答える
1

たとえば、次のスクリプトをデバッグしてみてください。

  1. true 句内でエコーすることにより、スクリプトが if( isset($_coo....) ビットを渡すかどうかを確認します。

  2. mysql-query が文字列として形成された後に $select をエコーし​​、phpmyadmin でこれを試します。クエリにエラーがなく、渡された変数が正しい方法で含まれているかどうかを確認してください。

  3. php を閉じる直前に $row 変数をダンプしてみてください ?> この方法では、結果が行変数に渡されても問題ありません。

于 2012-04-13T14:56:27.390 に答える
1

ここにいくつかの可能性があります:

  • 列が存在しない可能性があります
  • 行が存在しない可能性があります
  • 接続に失敗したか、間違ったデータベースを選択した可能性があります。

そして、変更を検討すべきことがもう 1 つあります。パスワードを暗号化せず、Cookie でエンコードせずに保存します。これは、実際に Cookie でパスワードを見つけることができることを意味します。ユーザーが他の Web サイトで同じ情報を使用すると、非常に簡単にハッキングされる可能性があるため、これは非常に大きな結果をもたらす可能性があります。

于 2012-04-13T15:11:02.850 に答える