0

簡単な「名前と電子メール」の連絡フォームを作成しました。情報が送信された後、「page2.html」にリダイレクトしたいと思います。

私はそれを働かせることができません。

これは、送信フォーム用に作成した html 部分です。「名前」部分が何を表しているのかまだわかりません.id部分(ダッシュ付き)はCSSスタイリングを指します。とにかく、これが私が連絡先「名前とメール」フォームを作成した方法です。

<form method="post" action="submission.php" name="contactform" id="contact-form">
        <fieldset>
        <label for=name accesskey=U><span class="required">*</span> Name</label>
        <input name="name" type="text" id="name" size="30" value="" /> 
        <br />
        <label for=email accesskey=E><span class="required">*</span> Email</label>
        <input name="email" type="text" id="email" size="30" value="" />
        <br />
        <input type="submit" class="submit" id="submit-button" value="Submit" />
        </fieldset>        
</form>

最後の行にリダイレクトを使用してヘッダーを入力しようとしましたが、機能しません。フォームに入力した情報を印刷するブラウザーで空白のページを開くのが最善です。

情報が送信された後にフォームをリダイレクトしたいので、事前に助けてくれてありがとう:D

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jqueryui", "1.5.2");</script>
<? 
if($_POST['name']!="" ){


    $headers    = "From: Webmaster";
    $message    = 
  strtoupper($_POST['name'])."
".strtoupper($_POST['email'])."
";
    echo str_replace("\n","<br />", $message);
    $headers2   = "From: Sender Name <email@gmail.com>\nContent-Type:     text/plain; charset=UTF-8; format=flowed\nMIME-Version: 1.0\nContent-Transfer-Encoding:     8bit\nX-Mailer: PHP\n";
    $message2   = "Message
";

    mail("webmaster@gmail.com", "Subject", $message, $headers);
    mail("$_POST[email]", "Subject", $message2, $headers2);

    $myFile = "submissions.txt";
    $fh = fopen($myFile, 'a') or die("can't open file");
    $stringData =     "$_POST[name]*$_POST[email]*".$_SERVER['REMOTE_ADDR']."*".date("d-m-Y H:i")."
";
    fwrite($fh, $stringData);
    fclose($fh);

} else {
    echo "You didnt enter anything";
    ?>
    <script language="javascript">
    alert("You didnt enter anything");
    </script>
    <?
}
?>
4

4 に答える 4

0

フォームの name 属性は、$_POST 配列が name であることを示します。たとえば、

<input type="text" name="awesometext"/>

フォームで method="post" を使用すると、フォームのアクションで定義した PHP スクリプトの $_POST['awesometext'] を介して、そのテキスト フィールドの値にアクセスできるようになります。

電子メールを送信した後、ユーザーを header() を使用して別のページにリダイレクトする場合、その前にページで出力を生成してはなりません。すべてのエコーと html 出力を取り除くため、最初にある html を削除します。header() を使用する場合は、出力のない php コードしかない場合があります。

その後header('Location:somepage.php');、somepage.php に直接アクセスできます。

コードは次のようになります。

<?php 
if($_POST['name']!="" ){


$headers    = "From: Webmaster";
$message    = 
strtoupper($_POST['name'])."
".strtoupper($_POST['email'])."
";
echo str_replace("\n","<br />", $message);
$headers2   = "From: Sender Name <email@gmail.com>\nContent-Type:     text/plain; charset=UTF-8; format=flowed\nMIME-Version: 1.0\nContent-Transfer-Encoding:     8bit\nX-Mailer: PHP\n";
$message2   = "Message
";

mail("webmaster@gmail.com", "Subject", $message, $headers);
mail("$_POST[email]", "Subject", $message2, $headers2);

$myFile = "submissions.txt";
$fh = fopen($myFile, 'a') or die("can't open file");
$stringData =     "$_POST[name]*$_POST[email]*".$_SERVER['REMOTE_ADDR']."*".date("d-m-Y H:i")."
";
fwrite($fh, $stringData);
fclose($fh);

//header here
header('Location:somepage.php');

} else {
echo "You didnt enter anything";
?>

出力が生成される前に header() を呼び出す必要があります。上記のコードは機能するはずです。

于 2012-07-24T09:27:50.797 に答える
0
$a = mail("webmaster@gmail.com", "Subject", $message, $headers);
$b = mail("$_POST[email]", "Subject", $message2, $headers2);

if($a && $b)
{
  echo '<script>document.location="page2.html"; </script>'
}
于 2012-07-24T09:28:24.443 に答える
0

スクリプトに出力がある場合、php リダイレクト ヘッダーを送信できません。あなたのphp部分をページの上部に変更しますが、phpで行うことができます

header("location:page2.html"):

またはphpでjavascriptリダイレクトを使用します

echo '<script>document.location="page2.html"; </script>';
于 2012-07-24T09:28:52.610 に答える