0

已解决 - 权限
我想遍历我的调试过程,以便它可以帮助其他任何人完成相同的事情...... 1)我擦除了两个页面并替换为我知道有效的代码。2)然后我逐个更改表单,直到我得到我想要的并继续测试 3)然后我完全复制了当前的 php 文件并将我的表单重定向到它。4)它失败了......我将权限更改为655并且wallah它工作了。现在我可以开始破解 PHP 代码以获得我想要的东西。感谢所有的建议,你肯定带领我走上了我的解决
方案

我在一个网站上有两个单独的摄入表格。摄入表格 1 效果很好。我接受、命名、发送电子邮件和评论,然后通过 sendmail 脚本发送。

我还想要一个潜在客户捕获表格来跟踪那些想要访问演示视频的人,所以我修改了表格中的代码(用于新页面),然后创建了一个名为 videoform.php 的附加 php 文件 - 这基本上只是一个我的 sendmail.php 文件的修改版本。

当我填写表格时,当我点击提交时它什么也不做。它验证,因为它不允许您在任何字段中输入空值,但我不确定我错过了什么。是不是很简单(我绝不是 PHP 可靠的)还是我根本不可以这样做?

这是表格和php:

<div class="message"></div>
            <form action="./php/videoform.php" method="POST" id="contact-form">
                <p class="column one-half">
                    <input name="name" type="text" placeholder="Your Name" required>
                </p>

                <p class="column one-half">
                    <input name="email" type="email" placeholder="Your Email" required>
                </p>

                 <p class="column one-half">
                    <input name="phone" type="text" placeholder="Your Phone" required>
                </p>



                <p>
                    <input name="submit" type="submit" value="Submit">
                </p>            
            </form>
        </div>

这是PHP

    <?php if(!$_POST) exit;
    $to         = "xxxxx@example.com";
    $email      = $_POST['email'];
    $name       = $_POST['name'];
    $phone      = $_POST['phone'];
    $content    = $_POST['content'];

    $subject    = "You've been contacted by $name";

    $content    = "$name filled out a request to view the online videos:\r\n\n";
    $content   .= "Phone: $phone \n\nEmail: $email \n\n";

    if ($success) {
       header("Location: /videos.html");
       exit;
    } else {
       header("Location: /video-form.html");
       exit;
    }
    ?>

我对多种编码格式很满意,但在 PHP 方面我很弱。任何见解都将不胜感激,并使我走上更好地理解 PHP 的道路。

用于比较的工作脚本

形式

给我们发信息

                <p class="column one-half last">
                    <input name="email" type="email" placeholder="Your Email" required>
                </p>

                <p class="clear">
                    <textarea name="comment" placeholder="Your Message" cols="5" rows="3" required></textarea>
                </p>

                <p>
                    <input name="submit" type="submit" value="Comment">
                </p>            
            </form>
        </div>  

PHP sendmail.php 文件

<?php if(!$_POST) exit;
$to         = "xxxxx@example.com";
$email      = $_POST['email'];
$name       = $_POST['name'];
$comment    = $_POST['comment'];

$subject    = "You've been contacted by $name";

$content    = "$name sent you a message from your enquiry form:\r\n\n";
$content   .= "Contact Reason: $comment \n\nEmail: $email \n\n";

if(@mail($to, $subject, $content, "Reply-To: $email \r\n")) {
    echo "<h5 class='success'>Message Sent</h5>";
    echo "<br/><p class='success'>Thank you <strong>$name</strong>, your message has been submitted and someone will contact you shortly.</p>";
}else{
    echo "<h5 class='failure'>Sorry, Try again Later.</h5>";
}?>
4

1 回答 1

3

从你的 php:

//...
$content    = "$name filled out a request to view the online videos:\r\n\n";
$content   .= "Phone: $phone \n\nEmail: $email \n\n";

if ($success) {
    header("Location: /videos.html");
    exit;
} else {
//...

你永远不会定义 $success。因为它没有值,if ($success)所以失败,它总是进入else语句的一部分。看起来你错过了一条类似的线$success = mail($to, $subject, $content);

于 2013-09-10T03:43:51.960 回答