0

私はそれを理解できないので、しばらくの間私を夢中にさせている問題を抱えています.

ユーザーがフォームから投稿を作成した場合、「成功」などをエコーし​​たい。

これは、これまでに db-querys ファイルで取得したものです。

if ($_REQUEST) {
    $name           = $_REQUEST['name'];
    $price      = $_REQUEST['price'];
    $dateofevent    = $_REQUEST['dateofevent'];
    $time           = $_REQUEST['time'];
    $textinfo       = $_REQUEST['textinfo'];
    $leg            = $_REQUEST['leg'];

    $sql= $dbh->prepare("INSERT INTO events(name, dateofevent, time, price, leg, textinfo) 
    VALUE (:name, :dateofevent, :time, :price, :leg, :textinfo)");

    $sql->bindParam(':name', $name);
    $sql->bindParam(':dateofevent', $dateofevent);
    $sql->bindParam(':time', $time);
    $sql->bindParam(':price', $price);
    $sql->bindParam(':leg', $leg);
    $sql->bindParam(':textinfo', $textinfo);

    $sql->execute();

    $url = $_POST['name'];
    header('Location: events.php?'.$url);
}

次に$_GET、URLが正しい場合に何かをエコーアウトするために使用してみました。

これまでのビューファイルのコードは次のとおりです。

if(isset($_GET[$url])) {
    echo "success";
}

ここで、未定義の変数 $url を取得し、エコーが機能せず、何も表示されません。

私も次のようなことを試しました:

$url = 'path/to/event.php';
if (!$_SERVER['REQUEST_URI'] == $_SERVER[$url]) {
    echo "success";
}

そして、ここで未定義のインデックス path/to/event.php を取得し、エコーも機能せず、何も表示されません。

誰でも私の問題を手伝ってもらえますか? 私はphpが初めてなので、これ以上進められません。行き詰まっています。

4

2 に答える 2

3
$array = array('foo' => 'bar');
$key   = 'foo';
echo $array[$key]; // outputs 'bar'

それはあなたがそこでやろうとしていることですが$url、定義された変数ではないため、明らかに機能しません。実際、名前の値は関連付けられている URL にキー$_GETがないため、その方法で取得することはまったくできません。

最も簡単な解決策は、URL にキーを追加することです。

header('Location: events.php?name=' . urlencode($_POST['name']));
                             ^^^^^

キーで値を取得します。

$name = $_GET['name'];

ただし、ユーザーが入力した名前をデータベース内の何かのプライマリ IDとしてそのまま使用するのは奇妙です。データベース内のレコードの自動インクリメント数値 ID を使用する必要があります。

于 2014-02-05T13:25:34.057 に答える
0

気にしないで、私は次のように解決しました:

if ($_SERVER['REQUEST_URI'] == 'path/to/events.php') {
}
else {
    echo 'success';
}
于 2014-02-05T13:27:33.340 に答える