0

一緒にいると、私の分野ではなく、PHPが本当に苦手です。私が言うかもしれない愚かなことを申し訳ありません

編集:皆さんが言ったようにvarsをエコーし​​ようとしましたが、そこから値を取得できません。

EDIT2:これらの「必要なクラス」は、私のjquery検証スクリプトで機能します。私も投稿した方がいいと思いますか?

さて、私はphpコンタクトフォームの問題に直面しています。私もphpについてあまり知らないので、これは物事を難しくします。

まあ、それが私のホスティングであるかどうかを確認するために mailtest.php を試してみましたが、問題なく動作しています。コードは次のとおりです。

<form class="validate" method="post" action="send_form_email.php">

    <span class="fill">Todos os campos são obrigatórios.</span>
    <span><label>Nome:</label><input name="nome" type="text" class="required" /></span><br />
    <span><label>E-mail:</label><input name="mail" type="text" class="required email" /></span><br />
    <span><label>Empresa:</label><input name="empresa" type="text" class="required" /></span><br />
    <span><label>Telefone:</label><input style="width: 150px;" name="phone" type="text" class="required" /></span><br />                   
    <span><label>Mensagem:</label><textarea name="mensagem" cols="38" rows="8" class="required"></textarea></span><br />
    <span><input class="btn" type="submit" name="submit" value="Enviar" /></span>

</form>

そして、ここに私のphpコーディングがあります:

<?php
if(isset($_POST['submit'])) {

$to = "fernando_fleury@hotmail.com";
$subject = "Contato Website - Nicotec";
$name = $_POST['nome'];
$email = $_POST['mail'];
$empresa = $_POST['empresa'];
$phone = $_POST['phone'];
$message = $_POST['mensagem'];

$body = "De: $name_field\n E-Mail: $email\n Empresa: $empresa\n Telefone: $phone\n Mensagem:\n $message";

mail($to, $subject, $body);
}

header('Location: contato.html');

?>

http://www.fernandofleury.com.br/preview/nicotec/contato.htmlでライブでも確認できます。

ここで何が間違っていますか?前もって感謝します。

4

3 に答える 3

1

また、エラーを確認するためにテストしている間に、php ファイルの先頭に次を追加する必要があります。

error_reporting(E_ALL);
ini_set('display_errors','On');

そして、すべての入力の中に追加します:

value=""

デフォルトでは空の文字列を送信します。何が出てくるかを表示するには、 send_form_email.php に追加するだけです

var_dump($_POST)

if(isset($_POST['nome']) && isset($_POST['mail']) などを書く必要がないからです。送信入力名は PHP によって変更されることがあるので、正しい名前を見つけることができます。 var_dump を使用します。

于 2012-08-09T14:46:14.047 に答える
1

if(isset($_POST['submit']))すべての必須フィールドが次の行に沿って設定されていることを確認するのではなく、if(isset($_POST['nome']) && isset($_POST['mail']) && isset($_POST['phone']) ....

それが失敗した場合は、$to$subjectおよび をエコーアウトし$bodyます。headerテスト中に結果を確認するには、 をコメントアウトします。

また、これを試してください:

if(isset($_POST['submit'])) 
{
    $to = "fernando_fleury@hotmail.com";
    $subject = "Contato Website - Nicotec";
    $name = $_POST['nome'];
    $email = $_POST['mail'];
    $empresa = $_POST['empresa'];
    $phone = $_POST['phone'];
    $message = $_POST['mensagem'];

    $body = "De: $name_field\n E-Mail: $email\n Empresa: $empresa\n Telefone: $phone\n Mensagem:\n $message";

    mail($to, $subject, $body);

    header('Location: contato.html');
}
else
{
    echo "Ruh ohes! Something wasn't set!";
}

編集: 変数を画面にエコーアウトするには ($toこのコードの例では:

echo $to;

編集2:

私はあなたのページを見て、JavaScript を使用してすべてのフィールドが入力されていることを確認しました。したがって、問題はほぼ確実に次の行にあります。

if(isset($_POST['submit']))

次のように変更できますか。

if(!empty($_POST['nome']) && !empty($_POST['mail']) && !empty($_POST['empresa']) && !empty($_POST['phone']) && !empty($_POST['mensagem']))

私のためにお願いします?正しく$_POST['Submit']送信されていない可能性があります。

于 2012-08-09T13:43:16.413 に答える
1

問題は不明です。「うまくいかない」というのは非常に大雑把な説明です :) したがって、適切なヘルプを得るには、次のように説明してください。

  • あなたはどんな行動をしますか?
  • どのような結果が得られますか?
  • 期待された結果は何でしたか?

また:プロセスを細かく切り刻んでみてください:

  • メールは大丈夫ですか?
  • リダイレクトだけですか?
  • 両方ですか?
  • 等...

解決策ではありませんが、デバッグのヒント:
試してください:

 print_r($_POST);

そして、結果がどうなるか見てください。もっと教えてくれるかもしれません。

于 2012-08-09T13:45:47.077 に答える