3

メールフィールドだけでhtmlフォームを書きました。ユーザーが入力した電子メールを Web サーバー上のテキスト ファイルに転送したいと考えています。

送信ボタンをクリックすると、白い画面が表示されます。テキスト ファイルに何も書き込まれません。また、ユーザーが送信ボタンをクリックしたときに、ユーザーを別のページにリダイレクトしたいと考えています。これは可能ですか?私は初心者です。

<?php

$file = fopen("emaillist.txt","a+");
fwrite($file,$email);
fclose($file); 
print_r(error_get_last());

?>

<form action= "emaillist.php" method="post" name="email ">
<input type="text" name="email">
<br>
<br>
<input type="submit" name="email" value="submit"><br>
4

7 に答える 7

1

送信ボタンの名前の変更についてAndy Gが言ったことに加えて:

<?php
//Get the email from POST
$email = $_REQUEST['email'];
$file = fopen("emaillist.txt","a+");
fwrite($file,$email);
print_r(error_get_last());

//redirect
header("Location: http://www.example.com/");

とファイルの先頭の間に空白行を残さないでください<?php。そうしないと、リダイレクトが機能しません。

于 2013-07-25T20:48:44.013 に答える
1

送信結果は$_POST変数に保存されます。

<?php

$file = fopen("emaillist.txt","a+");

$email = $_POST['email']; 

fwrite($file,$email);
fclose($file); 
print_r(error_get_last());

?>
于 2013-07-25T20:49:56.047 に答える
1

これを試してください。送信ボタンに別の名前を使用して、ファイルに書き込むよりも送信ボタンが押されたかどうかも確認してください。email投稿された値も取得できませんでした

<?php
if(isset($_POST['submit']))
{
    $email = $_POST['email'];
    $file = fopen("emaillist.txt","a+");
    fwrite($file,$email);
    fclose($file); 
    print_r(error_get_last());
}
?>
<form action= "" method="post" name="form">
<input type="text" name="email">
<br>
<br>
<input type="submit" name="submit" value="submit"><br>
</form>
于 2013-07-25T20:51:12.993 に答える
0

PHP では、$_POST投稿時にフォームからすべての変数を格納するという配列が呼び出されます。その$emailため、$_POST['email']

于 2013-07-25T20:49:00.803 に答える
0
<?php
if (isset($_POST['emailSubmit'])) {
    $file = fopen('emaillist.txt','a+');
    $email = $_POST['nail'];
    $fmail = $email.PHP_EOL;
    fwrite($file,$fmail);
    fclose($file); 
    print_r(error_get_last());

    header("Location: http://www.yourdomain.com/thanks.html") ;
}

?>
<form action='emaillist.php' method='post'>
    <input type='text' name ='nail' size= '30'/>
    <br />
    <br />
    <input type='submit' name='emailSubmit' value='OK'/>
    <br />
</form>
于 2013-11-04T21:00:51.987 に答える
0

ここで更新する必要があることがいくつかあります。

フォーム要素には異なる名前を付ける必要があるため、PHP サーバー側コードでそれらを区別できます。このようなもの:

<form action="emaillist.php" method="post">
    <input type="text" name="email" />
    <br />
    <br />
    <input type="submit" name="emailSubmit" value="submit" />
    <br />
</form>

フォーム投稿であることを確認するには、サーバー側のコードを条件付きでラップする必要があります。現在、このページを最初にロードすると、ファイルに書き込まれます。ただし、フォーム データを使用してページに再度投稿するまで、コンテンツはありません。そのため、フォーム投稿かどうかを確認する必要があります。これを行う一般的な方法は、投稿データに送信ボタンがあるかどうかを確認することです。

if (isset($_POST["emailSubmit"])) {
    $file = fopen("emaillist.txt","a+");
    fwrite($file,$email);
    fclose($file); 
    print_r(error_get_last());
}

確認のために、あなたはPHPが初めてだと言っているので...ファイルがクライアントではなくサーバーに書き込まれることを期待していますよね?

別のページにリダイレクトするには、サーバー側の PHP コードで location ヘッダーを設定するだけです。これは、コンテンツがクライアントに送信される前に行う必要があります。これは事後イベントでのみ発生させたいため、前と同じ条件にする必要があります。

if (isset($_POST["emailSubmit"])) {
    $file = fopen("emaillist.txt","a+");
    fwrite($file,$email);
    fclose($file); 
    print_r(error_get_last());

    header("Location: http://www.yoursite.com/newPage.php") ;
}
于 2013-07-25T20:54:12.690 に答える