2016-05-18 25 views
-1

私はphpで始まっています。このコードはtutorialspoint.comから練習しています。サイトにこのコードは、実際の結果を生産しているが、私はlocalhostで実行している間、それは未定義のインデックス言う:名前がCで:\ XAMPP \ htdocsにライン上でのPHPの\ second.php 2.注意:未定義のインデックス:2行目のC: xampp htdocs php second.phpの名前

<?php 
if($_POST["name"] || $_POST["age"]) { 
if (preg_match("/[^A-Za-z'-]/",$_POST['name'])) { 
die ("invalid name and name should be alpha"); 
} 
echo "Welcome ". $_POST['name']. "<br />"; 
echo "You are ". $_POST['age']. " years old."; 
exit(); 
} 
?> 
<!------------Form-----------------> 
<html> 
<body> 
<form action = "<?php $_PHP_SELF ?>" method = "POST"> 
Name: <input type = "text" name = "name" /> 
Age: <input type = "text" name = "age" /> 
<input type = "submit" /> 
</form> 
</body> 
</html> 
+0

POST変数の場合は、isset()を使用してください。 – Thamilan

答えて

0

使用isset機能への\エラーundefined index避ける

使用

if(isset($_POST["name"]) || isset($_POST["age"])) 

代わりの

if($_POST["name"] || $_POST["age"]) 
+0

ありがとう、Sahadat Hossainさん。なぜその問題は現れますか? ($ _ POST ["name"])|| isset($ _ POST ["age"]) の場合の差異は何ですか? と if($ _POST ["name"] || $ _POST [年齢 "])、このコードはチュートリアルpoint.comで動作しているように見える必要があります。 –

+0

'isset'関数を使用して、キーが存在するかどうかをチェックします。 –

+0

ありがとうございます。サハダット・ホセインさん。 –

0

こんにちはhtmlとphpの両方を同じページに書いていますので、最初にページを読み込んだときには$_POSTに値が入りませんので、以下のコードを試してみるとエラーにはなりません。この中

<?php 
if(isset($_POST)) 
{ 
if($_POST["name"] || $_POST["age"]) { 
if (preg_match("/[^A-Za-z'-]/",$_POST['name'])) { 
die ("invalid name and name should be alpha"); 
} 
echo "Welcome ". $_POST['name']. "<br />"; 
echo "You are ". $_POST['age']. " years old."; 
exit(); 
} 
} 
?> 
<!------------Form-----------------> 
<html> 
<body> 
<form action = "<?php $_PHP_SELF ?>" method = "POST"> 
Name: <input type = "text" name = "name" /> 
Age: <input type = "text" name = "age" /> 
<input type = "submit" /> 
</form> 
</body> 
</html> 

$_POST ISSETはその後、そうでない場合は、PHPコードを実行していない場合には、チェックしたときに最初に提出し、ページの読み込みなし。実際にはPHPスクリプトは行ごとに実行するので、$_POSTを使用しないとエラーになる場合は、このコードを試してみてください。

+0

Dinesh Bhojvani –