2015-11-06 67 views
0

我在這裏打破了我的頭。第一次玩PHP。我有一個需要幾個字段的表單。如果用戶試圖發送空字段,則需要被捕獲。如果我輸入一個空格,表單會通過。任何幫助將被真正讚賞。重定向頁面是用戶提交空字段

這是一個場

if(isset($_POST['first_name']) and !empty($_POST['first_name']) and trim($_POST['first_name']) != '') $first_name = filter_var($_POST['first_name'], FILTER_SANITIZE_MAGIC_QUOTES); 
else { 
    $redirect = SITE_URL . substr($section, -4) . '/' . substr($section, 0, -4) . '/' . $referPage . 'first_name=' . $first_name . '&last_name=' . $last_name . '&email=' . $email . '&phone' . $phone . '&country=' . $country . '#mailingList' and header ("Location: $redirect"); 
} 
+0

請注意,您不必同時檢查'isset'和'empty':[爲什麼要檢查isset()和!empty()](http://stackoverflow.com/questions/4559925/why -check-both-isset-and-empty) – FirstOne

+0

什麼不起作用?你在這裏要求什麼? – commanderZiltoid

回答

1

要設置$redirect什麼表達

$redirect = SITE_URL . substr($section, -4) . '/' . substr($section, 0, -4) . '/' . $referPage . 'first_name=' . $first_name . '&last_name=' . $last_name . '&email=' . $email . '&phone' . $phone . '&country=' . $country . '#mailingList' and header ("Location: $redirect"); 

評估的代碼。當你做

header ("Location: $redirect"); 

$redirect尚未設置。

例如:

php > $x = 'a' && 'a' . $x; 
PHP Notice: Undefined variable: x in php shell code on line 1 
PHP Stack trace: 
PHP 1. {main}() php shell code:0 

你只是需要打破它:

$redirect = SITE_URL . substr($section, -4) . '/' . substr($section, 0, -4) . '/' . $referPage . 'first_name=' . $first_name . '&last_name=' . $last_name . '&email=' . $email . '&phone' . $phone . '&country=' . $country . '#mailingList'; 
header("Location: $redirect"); 

或使其評估之前and第一表達:

($redirect = SITE_URL . substr($section, -4) . '/' . substr($section, 0, -4) . '/' . $referPage . 'first_name=' . $first_name . '&last_name=' . $last_name . '&email=' . $email . '&phone' . $phone . '&country=' . $country . '#mailingList') and header ("Location: $redirect"); 
+0

嘿戴夫。非常感謝這個解釋。它非常有幫助。 – robb

0

只是一個建議由於您是PHP robb的初學者,請查看一些與PHP協作的框架,例如Co他們會有一些功能可以幫助你,比如表單驗證。另一個建議,你也必須做這個驗證之前,你發送表單到服務器確定,使用Javascript(jQuery會給你一隻手)。

問候,祝你好運!

+0

嘿丹尼爾。感謝您的建議。我會接受你的建議。我確認了驗證的前端部分,但後端是不同的野獸。哈哈。 – robb