3

私はphpに本当に慣れていないと言って始めましょう。私はそれを使ってコーディングすることを学んでいます。そのため、このコードを設定するためのより効率的な方法の提案があれば、喜んで受け入れます。

さて、問題に進みます:

このサイトには、セッション、Cookie、およびデータベースの名前をチェックするスクリプトがあります。名前がこれらの場所のいずれかにある場合は、変数に割り当てられます。そうでない場合、名前は URL またはユーザー送信のいずれかから取得され、データベースに追加されてから Cookie に追加されます。これはすべて if-then-elseif ステートメントで達成され、登録ページを除くすべてのページですべてが正常に機能しているように見えます。登録ページは、このスクリプトから取得した情報を実際に使用する唯一のページです。他のすべてのページは単に Cookie と db レコードをチェックし、見つからない場合はそれらを作成します。

登録ページは、前のスクリプトから name 変数を取得することになっています。name 変数と等しい名前のレコードをデータベースで確認してください。このスクリプトは、最初に名前の送信をチェックします (このページの別のフォームから)。見つかった場合は、name 変数を name 送信と同じに設定します。次に、セッションをチェックし、セッション変数から name 変数を取得します。3 番目に、前のスクリプトの name 変数をチェックします。Cookie、データベース、またはこれらのエントリの両方が作成されたときに設定された変数のいずれかから取得されます。

ここに問題があります。セッションから取得された変数、または Cookie から取得された変数は、常に正しい情報を取得します。ただし、送信名、データベースからの名前、または cookie/db が作成されたときに設定された変数については、情報はまったく取得されません。DB クエリで実行される直前に name 変数を表示するように echo ステートメントを設定すると、名前は常に正しく表示されます。ただし、DB からは何も取得されていないようです。DBクエリは次のとおりです。

echo $name_variable."<br>";
    $query=mysql_query("SELECT * FROM db WHERE name='$name_variable' OR email='$name_variable'");

これを修正するために私ができることはありますか?これが私が見落としていた単純なものであることを願っています。必要に応じてコードを投稿できますが、かなり長いです。

4

3 に答える 3

1

$query=mysql_query("SE......

mysql_fetch_assoc を実行していますか

次にmysql_array

インデックスを使用して変数にアクセスするには、動作していないコードをさらに提供してください。

于 2012-08-29T05:23:23.850 に答える
0

うわー...認めたくないのですが、それは単なる初心者のエラーでした。

データベースはインクルード ファイルで開かれます。このページには複数のインクルードがあり、そのうちの 1 つにはデータベース ファイルも含まれています (require_once 関数を使用)。このページでは、データを比較するために (require_once を使用して) データベースも開きました。

とにかく、このページの required_once を単に必要なものに変更すると、すべてが完全に機能しました。

回答してくれた皆さん、ありがとう!

于 2012-09-05T18:11:01.597 に答える
0

これを試して

 mysql_query("SELECT * FROM db WHERE name='".$name_variable."' OR email='".$name_variable."'");
于 2012-08-29T05:22:25.330 に答える