【问题标题】:PHP form validationPHP 表单验证
【发布时间】:2015-01-15 12:10:41
【问题描述】:

所以我在 html 代码中创建了一个表单 -

<form method="post" action="hi.php"> 


    <fieldset>
        <label class="labelone" type="text" />
        <input name="name" placeholder="Your Name"/>
        <label class="email" for="email" />
        <input name="email" placeholder="Email"/>
        <label class="phonenumber" for="phonenumber" />
        <input name="phonenumber" placeholder="Phone Number"/>
        <label class="comments" for="comments" />
        <textarea name="comments" placeholder="Comments"></textarea>
    </fieldset>

    <fieldset>
        <input type="submit" value="Submit" class="btn" >
        <input class="btn" type="reset" value="Reset">
    </fieldset>
</form>

这是 php -

<?php



    $emailSubject = 'Test';
    $webMaster = 'Test';



    $name = $_GET['firstname'];
    $email = $_GET['lastname'];
    $message = $_GET['comment'];

    $body = <<<EOD
<br><hr><br>
First Name: $firstname <br>
Last Name: $lastname <br>
Message: $comment <br>
EOD;


    $headers = "From: $lastname\r\n";
    $headers = "Content-type: text/html\r\n";
    $success = mail($webMaster, $emailSubject, $body, $headers);




    $theResults = <<<EOD
<?php 

?>

<?php



    $emailSubject = 'Kent Pest Control Services';
    $webMaster = 'xxxxxxxxxEDITED@gmail.com';



    $name = $_GET['firstname'];
    $email = $_GET['email'];
    $phonenumber = $_GET['phonenumber']
    $message = $_GET['comments'];

    $body = <<<EOD
<br><hr><br>
First Name: $firstname <br>
Email: $email <br>
Phone Number: $phonenumber <br>
Message: $comments <br>
EOD;

当我将它上传到我的主机并填写php表单,然后单击提交时,它进入一个空白屏幕,并且我没有收到电子邮件,我一年前使用过这个,我不知道是否从那时起代码已经改变,但我无法让它工作,我希望有人能提供帮助。 :) 我更改了电子邮件,所以人们不能给我发电子邮件;)

【问题讨论】:

  • 将表单方法从 post 更改为 get
  • 您已经两次粘贴了一个部分(看起来像)并在其中放入了一封实时电子邮件

标签: php css forms validation


【解决方案1】:

您的 HTML 中缺少 &lt;form&gt; 标记。

试试这个:

<form action="yourPHPfile.php" method="post">
    <fieldset>
        <label class="labelone" type="text" />
        <input name="name" placeholder="Your Name"/>
        <label class="email" for="email" />
        <input name="email" placeholder="Email"/>
        <label class="phonenumber" for="phonenumber" />
        <input name="phonenumber" placeholder="Phone Number"/>
        <label class="comments" for="comments" />
        <textarea name="comments" placeholder="Comments"></textarea>
    </fieldset>

    <fieldset>
        <input type="submit" value="Submit" class="btn" >
        <input class="btn" type="reset" value="Reset">
    </fieldset>
</form>

我会使用 POST,而不是 GET,因为您可能会传递大量数据,并且会创建一个非常丑陋的 url。

然后你的 php 文件..

<?php

$emailSubject = 'Test';
$webMaster = 'Test';

$name = $_POST['firstname'];
$email = $_POST['lastname'];
$message = $_POST['comments']; // you have the wrong key in your original file (comment)

$body = <<<EOD
<br><hr><br>
First Name: $firstname <br>
Last Name: $lastname <br>
Message: $comment <br>
EOD;

$headers = "From: $lastname\r\n";
$headers = "Content-type: text/html\r\n";
$success = mail($webMaster, $emailSubject, $body, $headers);


$theResults = <<<EOD

?>

其他要点: 你应该是validating电子邮件地址服务器端,如果你打算用它做任何其他事情,比如发回确认等

【讨论】:

  • 感谢您的回答,我已经准备好了代码我忘了把它放在文本中。
【解决方案2】:

我认为这段代码可以解决你的查询

<form action="actionname.php" method="post">
    <fieldset>
        <label class="labelone" type="text" />
        <input name="firstname" placeholder="Your firstName"/>
        <label class="labeltwo" type="text" />
        <input name="lastname" placeholder="Your LastName"/>
        <label class="email" for="email" />
        <input name="email" placeholder="Email"/>
        <label class="phonenumber" for="phonenumber" />
        <input name="phonenumber" placeholder="Phone Number"/>
        <label class="comments" for="comments" />
        <textarea name="comments" placeholder="Comments"></textarea>
    </fieldset>

    <fieldset>
        <input type="submit" value="Submit" class="btn" >
        <input class="btn" type="reset" value="Reset">
    </fieldset>
</form>

现在这个 php 代码

<?php

$emailSubject = 'Test';
$webMaster = $_POST['email']; /* Pass your form email address here */

$firstname = $_POST['firstname']; /* Firstname from form */
$lastname = $_POST['lastname'];  /* Lastname from form */
$message = $_POST['comments'];  /* Comment from form */

$body = <<<EOD
<br><hr><br>
First Name: $firstname <br>
Last Name: $lastname <br>
Message: $message <br>
EOD;

$headers = "From: $lastname\r\n";
$headers = "Content-type: text/html\r\n";
$success = mail($webMaster, $emailSubject, $body, $headers);


$theResults = <<<EOD

?>

【讨论】:

  • 在 php link 中检查邮件
猜你喜欢
  • 1970-01-01
  • 2012-02-13
  • 2013-11-16
  • 2014-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多