0

メールを送信するphpファイルにhtmlフォームを送信しようとしています。私は ajax を使用する前に試してみましたが、非常に奇妙な動作をしました。純粋な html と php に変更すると、動作も奇妙になりました。だから私はこのフォームを持っています:

<form id="comandaform" action="send.php" method="post">
        <div class="ordercol">
            <label for="nume">Nume companie</label>
            <input type="text" id="nume" name="nume" />
            <label for="email">Email</label>
            <input type="text" id="email" name="email" />
            <label for="tel">Telefon (te sunam noi!)</label>
            <input type="text" id="tel" name="tel" />
        </div>
        <div class="ordercol">
            <label for="detalii">Detalii despre domeniul tau de activitate</label>
            <textarea name="detalii" id="detalii"></textarea>
            <input type="submit" id="submit" value="trimite"/>
        </div>
</form>

これを処理する PHP スクリプトは次のとおりです。

<?php

$nume = $_POST["nume"];
$mail = $_POST["email"];
$tel = $_POST["tel"];
$det = $_POST["detalii"];
$mess = "";

if(isset($nume)&&isset($mail)&&isset($tel)&&isset($det))
{
$to      = 'mail@gmail.com';
$subject = 'Comanda Site100';
$message = 'Nume companie:  '.$nume.'\n'.
    'Telefon: '. $tel.'\n'.
    'E-mail: '. $mail.'\n'.

'Detalii:\n'.
$det;

if(mail($to, $subject, $message))
{
    echo "succes";
}else{
    echo "fail";
}
}else{
    echo "fail";
}
?>

送信しようとすると、ブラウザはsend.phpファイルを見つけられません。私は何か間違ったことをしていますか?

4

2 に答える 2

1

実際にファイルが見つからないというエラーが発生しますか?

send.php の先頭に書き込み行を追加します。

何かのようなもの:

echo '処理中のフォーム...';

ページが正しく読み込まれていることを確認できます。

次に、手動でロードしてみてください

例えば。

あなたがフォームがある場合

http://www.mydomain.com/form.html

次に、入力してsend.phpをロードしてみてください

http://www.mydomain.com/send.php

正常にロードされることを確認してください。

すべての $_POST を $_REQUEST に変更してから、クエリ文字列でテストすることもできます

例えば。

http://www.mydomain.com/send.php?nume=bob

それはあなたの問題を見つけるための正しい方向にあなたを動かすはずです...そうでない場合は、上記で何が起こったのかを私たちに知らせてください.

于 2012-04-26T13:26:49.233 に答える
0

あなたのコードについてすぐに気づいたことが 2 つあります。

まず、ブラウザで が見つからないsend.php場合は、パス エラーがあることを強く示しています。HTML アクション パスにサブフォルダーがないか、ファイルが予期しない場所に配置されています。

次に、フォームが見つかったとしても、エラーが発生する可能性があります。これらのフィールドのいずれかが空白の場合unidentified index call、$_POST キーをローカル変数に割り当てようとするとエラーが発生します。次に、変数が設定されているかどうかを確認するときは、もちろんそれらは設定されているだけです。ただし、フォームのいずれかのフィールドが空白のままになっている場合は、未定義の値になります。

//Use an inline check when assigning the form field values
$nume = isset($_POST["nume"]) ? $_POST["nume"] : '';

では、完成度のチェックとなると……

//Check for empty values
if (!empty($nume) && !empty($mail) && !empty($tel) && !empty($det)){
// Etc...
于 2012-04-26T13:29:04.280 に答える