2014-02-05 58 views
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"; 
} 

在這裏,我得到了一個未定義指數路徑/到/ event.php和回聲不藏漢工作,沒有任何顯示。

任何人都可以請幫我解決我的問題嗎?我是新的PHP,所以無法進一步與此,我卡住了。

回答

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

這就是你想要做什麼有,這顯然是行不通的,因爲$url不是一個定義的變量。實際上,由於名稱值在其關聯的網址中沒有,因此根本無法從$_GET那裏得到它。

你最簡單的解決方法是在URL中添加一個關鍵:通過按鍵

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

,並獲得價值:

$name = $_GET['name']; 

很奇怪,雖然使用用戶輸入的名稱是針對主要ID到數據庫中的東西。您應該使用數據庫中記錄的自動增量數字ID。

+0

非常感謝你,我使用的名稱事情,我試圖得到它的工作,出lazyness的,因爲它很容易只是拿我已經寫了一些東西。我將它切換到ID。 – Bondenn

0

沒關係,我已經解決了這樣的:

if ($_SERVER['REQUEST_URI'] == 'path/to/events.php') { 
} 
else { 
    echo 'success'; 
}