我在我的HTML表單的「action」字段中使用外部php文件,以便在點擊Submit按鈕時執行php文件中提到的操作。PHP isset('submit')總是返回FALSE
爲此,我在php文件中使用了isset()
函數。
但是,我發現isset
函數始終返回FALSE
,導致執行else語句(如控制檯日誌中所示)。
如果我刪除了isset()
函數(並因此刪除了if-else
語句),那麼代碼運行非常好。
你能檢查我的代碼中的問題嗎?
此外,我已經看到了,我需要一起使用一些其他的說法與isset()
其他職位,例如,
if(isset($_POST['submit']) && !empty($_POST["xyz"]))
這是在所有需要的?
P.S .:我仍處於頁面開發的初始階段,因此我請您忽略我的代碼的安全性問題,我承認它存在。 :)
我的子代碼:
我的HTML表單:
<form id="info-form" method="POST" action="form-submit.php">
<label for="Name">What is your Name? </label>
<input required type="text" name="name" placeholder="Enter your full name here." />
<label for="Email">What is your email ID? </label>
<input required type="email" name="email" placeholder="[email protected]" />
<label for="mobile">What is your 10-Digit Mobile Number? </label>
<input required type="text" name="mobile" maxlength="10" />
<button name="submit-form" type="submit" class="btn btn-lg btn-success"><i class="fa fa-paper-plane" aria-hidden="true"></i>
Submit
</button>
<button type="reset" class="btn btn-lg btn-warning"><i class="fa fa-undo" aria-hidden="true"></i>
Reset
</button>
</form>
我的外形submit.php文件:
<?php
if(isset($_POST['submit-form']))
{
require("database-connect.php");
$name = $_POST['name'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];
$sql = "INSERT INTO tbl_details ".
"(name,email_id,mobile_number) ".
"VALUES ".
"('$name','$email','$mobile')";
mysql_select_db('db_info');
$return = mysql_query($sql, $connect);
if(! $return)
{
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($connect);
}
else
{
echo "Not Set\n";
}
?>
'submit'!='submit-form'(提交按鈕的名稱)。所以你想在你的語句中使用'isset($ _ POST ['submit'-form'])''。 – Qirel
請參閱http://stackoverflow.com/q/4559925/476 – deceze
另外,關於安全性和編程標準:'mysql_ *'函數的注意事項已被棄用,因爲PHP 5.5(和**在PHP 7中完全刪除** ),如果可以的話,你應該[停止使用它們](http://stackoverflow.com/q/12859942)。 你應該選擇另一個允許你使用準備好的語句的API(在處理用戶輸入時你應該*),比如'mysqli_ *'或者PDO - 參見[選擇API](http://php.net) /manual/en/mysqlinfo.api.choosing.php)。基本上,你是廣泛開放的SQL注入 - 閱讀[我怎樣才能防止SQL注入PHP?](http://stackoverflow.com/q/60174/) – Qirel