アレイのエラーを正しく検証して表示しますが、データベースに POST しません。フィールドのすべての命名はフォーム上で正しく (大文字と小文字も正しく)、PHP、MYSQL、dbconnect.php はすべて正しく適切です。私が信じている問題は、配列関数のどこかにあります。今月PHPの勉強を始めたばかりなので、お手柔らかにお願いします。助けてくれてありがとう!
<?php
include ('scripts/dbconnect.php');
$Name = mysql_real_escape_string($Name);
$Email = mysql_real_escape_string($Email);
if (isset($_POST['formsubmitted'])) {
$error = array();//Declare An Array to store any error message
if (empty($_POST['Name'])) {//if no name has been supplied
$error[] = 'Please Enter Your Name ';//add to array "error"
} else {
$Name = $_POST['Name'];//else assign it a variable
}
if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $_POST['Email'])) { //regular expression for email validation
$Email = $_POST['Email'];
} else {
$error[] = 'Your EMail Address is Invalid ';
}
}
if (empty($error)) //Send to database if no errors
mysql_query("INSERT INTO InviteRequestDB ( 'Name', 'Email' ) VALUES ( '$Name', '$Email' )");
mysql_close($connect); //Close connection to database
foreach ($error as $key => $values) {
echo "<li style=color:#FFF> $values </li>";
}
?>
これで、mysql を使用するべきではないことがわかりました。しかし、mysqli であまりにも多くの問題に遭遇したため、これは単純な連絡フォームにすぎません。
また、現在行っているように、各変数で mysql_real_escape_string を実行する必要がありますか? それとも手順の順番が間違っていませんか?
<form action="applyforinvite.php" method="post">
<input class="textbox" type="text" name="Name" />
<input class="textbox" type="text" name="Email" />
<input type="hidden" name="formsubmitted" value="TRUE" />
<input type="submit" value="Register" />
</form>
助けてくれてありがとう!