私は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'");
これを修正するために私ができることはありますか?これが私が見落としていた単純なものであることを願っています。必要に応じてコードを投稿できますが、かなり長いです。