![](/img/trans.png)
[英]Fatal error: Call to undefined function new_mysqli() in C:\wamp\www\work\conn.php on line 8
[英]PHP Fatal error: Call to undefined function test_input() in C:\wamp\www\web\new9.php on line 11
如果我們只輸入名稱並提交,則以下表單顯示單擊提交按鈕時出錯。顯示的錯誤是
致命錯誤:在第 11 行調用 C:\\wamp\\www\\web\\new9.php 中未定義的函數 test_input()
<?php
// define variables and set to empty values
$name1Err = $email1Err = "";
$name1 = $email1 = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (empty($_POST["input_1"]))
{$name1Err = "Your name is required. Just the first will do. ";}
else
{$name1 = test_input($_POST["input_1"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name1))
{ $name1Err = "Only letters and white space allowed"; }
}
if (empty($_POST["input_12"]))
{$email1= "";}
else
{$email1 = test_input($_POST["input_12"]);
// check if e-mail address syntax is valid
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email1))
{ $emailErr = "Invalid email format"; }
}
function test_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
}
?>
<form method='post' enctype='multipart/form-data' action=''>
name<input name='input_1' type='text' value='<?php echo $name1;?>' tabindex='1' />
<div class="validation_message"><?php echo $name1Err ?></div>
email<input name='input_12' type='email' value='<?php echo $email1;?>'/><br/>
<textarea name='input_5' tabindex='9' rows='10' cols='50'></textarea>
<input type='submit' value='Submit' tabindex='25' />
</form>
<?php
echo "<h2>Your Input:</h2>";
echo "Name:".$name1;
echo "<br>";
echo "Email:".$email1;
echo "<br>";
?>
將您的函數移出條件if
語句
應該是這樣的...
<?php
// define variables and set to empty values
$name1Err = $email1Err = "";
$name1 = $email1 = "";
// Moved here
function test_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
// .... your remaining code .......... !
從 PHP 文檔...
當一個函數以條件方式定義時......它的定義必須在被調用之前進行處理。
通常,函數首先被解析,因此可以按任何順序使用。
echo foo();
function foo() {return "bar";}
以上工作正常。
但是,與某些語言(如 JavaScript)不同,PHP 允許您有條件地定義函數。 你可能會做這樣的事情:
if( $something) {
function foo() {echo "bar";}
}
else {
function foo() {echo "fish";}
}
foo();
這是一件壞事(我個人更喜歡匿名函數,或者將條件放在函數中),但這是允許的。
但是,這樣做意味着無法再抓取功能。 在使用它們之前,它們必須被定義。 回到我們的第一個例子:
if( true) {
echo foo();
function foo() {return "bar";}
}
這將失敗。
嘗試
<form method='post' enctype='multipart/form-data' action='<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>'>
來源: w3schools
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.