私はちょうどHTMLとPHPに入っています。私は現在、ユーザーの入力を受け取り、与えられたデータベースにデータを配置する連絡先ページに取り組んでいます。フォームを提出すると、成功と失敗のメッセージの他に、私はすべてのことを機能させることができました。私はPHPの 'if'と 'else'ステートメントを使用して、同じページに成功または失敗のメッセージを表示しようとしています。私はヘッダーに成功または失敗のメッセージを表示することができたことに注意してください。フォームを送信すると成功または失敗するメッセージ
私は多くの研究を行い、同様の問題を抱えています。しかし、どれもうまくいかないようです。もし誰かが私のコードを見てくれれば幸いです。おそらく私を正しい方向に向けるでしょう。前もって感謝します。
HTMLコード:
<section class="main-container">
<div class="main-wrapper">
<h2>Contact Us</h2>
<form class="signup-form" action="includes/contact.inc.php" method="POST">
<input type="text" name="user_fullname" required placeholder="Fullname">
<input type="email" name="user_email" required placeholder="E-mail">
<input type="text" name="subject" required placeholder="Subject">
<input type="text" name="message" style="height:250px;" required placeholder="Message">
<button type="submit" name="submit">Submit</button>
</form>
</div>
</section>
<?php
if (isset($_POST['submit'])) {
echo "Contact Successful!";
} else {
echo "Contact Fail!";
}
?>
PHPコード:
<?php
if (isset($_POST['submit'])) {
include_once 'dbh.inc.php';
$fullname = mysqli_real_escape_string($conn, $_POST['user_fullname']);
$email = mysqli_real_escape_string($conn, $_POST['user_email']);
$subject = mysqli_real_escape_string($conn, $_POST['subject']);
$message = mysqli_real_escape_string($conn, $_POST['message']);
if (!preg_match("/^[a-zA-Z]*$/", $fullname)) {
header("Location: ../contact.php?contact details=invalid");
exit();
} else {
$sql = "INSERT INTO contact (user_fullname, user_email, subject, message) VALUES ('$fullname', '$email', '$subject', '$message');";
mysqli_query($conn, $sql);
header("Location: ../contact.php?contact=success");
exit();
}
} else {
header("Location: ../contact.php");
exit();
}
べきではありません。この: '場合(ISSET($ _ POST [ここ
は、あなたの更新されたコードです'submit'))){'be(ifetet($ _ POST ['submit'])){'? –私はあなたのPHPがあなたのhtmlとは別のファイルにあると仮定しています。あなたのリダイレクトヘッダがあなたのPHPファイルからhtmlを呼び出すとき、クエリー文字列として 'contact details = invalid'または 'contact = success'のいずれかを渡しています。それがhtmlのPHPにhtmlに達すると、投稿の代わりにgetを実行したため、クエリー文字列に存在しない投稿パラメータとして 'Submit'という名前が存在するかどうかを確認します。だからあなたはあなたのhtmlでそれらのvarsの存在をチェックする必要があります。あなたの投稿からの最初の投稿ではありません。 – nocturns2
迅速な返信をありがとうございます。私のhtmlファイルで 'if(isset($ _ POST [' Submit '])){'は元々 'if(isset($ _ POST [' submit '])){'でなければなりません。はい、PHPは別のファイルにあります。だから私はエラーが私のhtmlファイルのPHP文にあると仮定していますか?あなたがヴァルスの意味を疑問に思っていました。 –