0

私がやりたいことは、簡単な連絡先フォームを作成することです。単純な html 形式の contact.php というファイルがあります。

<form action="process-contact.php" method="post">
    <input type="text" name="name" placeholder="Nombre*">
    <input type="text" name="company" placeholder="Compañía">
    <input type="text" name="position" placeholder="Posición">
    <input type="text" name="country" placeholder="País*">
    <input type="text" name="email" placeholder="Correo electrónico*">
    <input type="text" name="subject" placeholder="Asunto">
    <textarea name="message" placeholder="Mensaje*"></textarea>
    <input type="submit" value="Enviar">
</form>

そして、私はこのphpコードを持っています:

$name = $_POST['name'];
$company = $_POST['company'];
$position = $_POST['position'];
$country = $_POST['country'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$headers = "Sent by: ".$name.' ('.$email.');'." Country: ".$country.'; Company: '.$company. '; Position: '.$position.';';
$to = "email@domain.com";

if($name != '' && $country != '' && $email != '' && $message != ''){  
    mail($to, $subject, $message, $headers); //calling php mail function
    echo 'Thank\'s for contacting us. We will be answering back soon.<br><br><a href="index.php">Go back.</a>';
}else{  
    echo 'Plese verify all the fields and try to send the form again.<br><br><a href="index.php">Go back.</a>';  
}

phpコードは別ファイルにあるのですが、phpコードを同じファイルfileに入れたいと思っています。それは可能ですか?どうすればいいですか?

ありがとうございました。

4

3 に答える 3

1

すべてを1つのファイルに入れて使用できますaction=""

あなたのヘッダーにはエラーがあり、それらを使用することで電子メールが迷惑メールボックスに入ってしまったので、適切なヘッダーでそれらを変更し、$message変数を使用して他の詳細を入力しました。

すべてのフィールドが入力されている場合は、追加header('Location: thank_you.php');してそのページにリダイレクトします。という名前のファイルを作成するthank_you.phpか、それを変更してホームページに移動します。

私は置き換えました:

if($name != '' && $country != '' && $email != '' && $message != ''){

に:

if(empty($_POST['name']) ||
    empty($_POST['email']) ||
    empty($_POST['country']) ||
    empty($_POST['message'])) {

    echo "Fill in all the fields. All marked by an asterisk are mandatory.";
}

フォームと PHP ハンドラー (テストに成功)

<?php

$name = $_POST['name'];
$company = $_POST['company'];
$position = $_POST['position'];
$country = $_POST['country'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$to = "email@example.com";
$message = "Sent by: ".$name.' ('.$email.');'." Country: ".$country.'; Company: '.$company. '; Position: '.$position.';';

if(empty($_POST['name']) ||
    empty($_POST['email']) ||
    empty($_POST['country']) ||
    empty($_POST['message'])) {

echo "Fill in all the fields. All marked by an asterisk are mandatory.";

}

else {

$headers = "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From: $email" . "\r\n" .
            "Reply-To: $email" . "\r\n" .
            'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers); //calling php mail function
header("Location: thank_you.php");
}
?>

<!DOCTYPE html>

<html>
<head>
</head>
<body>

<form action="" method="post">
    <input type="text" name="name" placeholder="Nombre*">
    <input type="text" name="company" placeholder="Compañía">
    <input type="text" name="position" placeholder="Posición">
    <input type="text" name="country" placeholder="País*">
    <input type="text" name="email" placeholder="Correo electrónico*">
    <input type="text" name="subject" placeholder="Asunto">
    <textarea name="message" placeholder="Mensaje*"></textarea>
    <input type="submit" name="submit" value="Enviar">
</form>

</body>
</html>

または、これを PHP ハンドラとして使用できます

<?php

$name = $_POST['name'];
$company = $_POST['company'];
$position = $_POST['position'];
$country = $_POST['country'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$to = "email@example.com";
$message = "Sent by: ".$name.' ('.$email.');'." Country: ".$country.'; Company: '.$company. '; Position: '.$position.';';

if(!empty($_POST['name']) &&
    !empty($_POST['email']) &&
    !empty($_POST['country']) &&
    !empty($_POST['message'])) {

$headers = "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From: $email" . "\r\n" .
            "Reply-To: $email" . "\r\n" .
            'X-Mailer: PHP/' . phpversion();

    mail($to, $subject, $message, $headers); //calling php mail function
    echo 'Thanks for contacting us. We will be answering back soon.<br><br><a href="index.php">Go back.</a>';

// to prevent re-submission, use header but NOT with echo.
// header("Location: thank_you.php");

}else{  
    echo 'Please verify all the fields.<br><br><a href="index.php">Go back.</a>';  
}

?>

<!DOCTYPE html>

<html>
<head>
</head>
<body>

<form action="" method="post">
    <input type="text" name="name" placeholder="Nombre*">
    <input type="text" name="company" placeholder="Compañía">
    <input type="text" name="position" placeholder="Posición">
    <input type="text" name="country" placeholder="País*">
    <input type="text" name="email" placeholder="Correo electrónico*">
    <input type="text" name="subject" placeholder="Asunto">
    <textarea name="message" placeholder="Mensaje*"></textarea>
    <input type="submit" name="submit" value="Enviar">
</form>

</body>
</html>
于 2013-09-02T01:28:59.093 に答える
0

おそらく、PHP の isset 機能を使用したいと思うでしょう。

$name = $_POST['name'];
if(isset($name) && $name != ''){
blah....
}
else {
blah...
}
于 2013-09-02T00:43:10.470 に答える
0

actionフォームの属性を、フォームと php コードを含むファイルの名前に設定し、次の条件にすべてのフォーム処理 php コードを含めます。

if(count($_POST)) > 0)

これにより、フォームが送信されたときにのみ php コードが実行されるようになります。

于 2013-09-02T00:41:00.253 に答える