1

q.phpID で定義されたユーザーが投稿した投稿であるページがあります(たとえば、変数をq.php?id=1使用し$idて残りのすべての情報をデータベースから取得する特定の投稿になります)。

同じページでコメント送信をコーディングしようとしていますが、ユーザーがフィールドに何も入力しない可能性があるという事実を考慮しています。これが発生した場合、ページ (例: q.php?id=1) を再度読み込み、エラー メッセージを表示します。

空の変数を使用してエラー メッセージを表示できます。この変数には、フォームがアクティブ化される php ファイルによって値が与えられます。ただし、特定の投稿に戻るのに問題があります。$id が数値に設定されている場所を使用しようとしましinclude('q.php?id=$id)たが、これが目的ではなく、変数を受け入れないことを理解しています

代わりに何を使用すればよいですか?

編集

answer.php (フォームがアクティブになるファイル):

require 'q.php';
$_GET['id'] = $id;
$_SESSION['error'] = "Please fill in all of the fields.";

q.php:

if ($_SESSION['error'] !== 0) {
    echo "<p style='color: #AA1111;'>".$_SESSION['error']."</a>";
    unset($_SESSION['error']); // this isn't happening...
}
4

2 に答える 2

5

ページをインラインで含める必要がある場合は、いつでも次のように変更できます$_GET

$_GET['id'] = $id;
require 'q.php';

しかし、エラー メッセージは、セッション変数またはリダイレクトで達成できるように聞こえます。リダイレクトは次のようになります。

header('Location: q.php?id=' . $id . '&error=The+error');
exit();

次に、 をチェックし$_GET['error']ますq.phperrorそのためにセッション変数を使用することは、クエリ文字列パラメーターとして追加する代わりに、すぐに使用する$_SESSION['error']ことunsetを除いて、ほとんど同じです。

于 2012-12-23T00:28:59.200 に答える
1

を使用することもできますheader("Location: q.php?id=$id"); exit;が、エラー メッセージを送信するには別の方法が必要です (例: に保存します$_SESSION) 。

配列を好きなように設定できる場合があり$_GETます-この場合$_GET = Array("id"=>$id);include("q.php"). ただし、これは一般的に厄介であると考えられており、適切に使用しないと問題が発生する可能性がありinclude_onceます。

于 2012-12-23T00:30:14.303 に答える