简体   繁体   中英

PHP Form Submit Button Unclickable

SOLVED - permissions
I want to walk through my debug process so that it might help anyone else working through the same thing... 1) I wiped both pages and replaced with the code that I knew worked. 2) I then changed the form piece by piece until I got it how i wanted and continued testing 3) I then copied the current php file completely and redirected my form to it. 4) it failed... I changed the permissions to 655 and wallah it worked. Now I can go about hacking about the PHP code to get what I want. thanks for all of the suggestions, you definitely led me down the road to my solution
SOLVED

I have two separate intake forms on a site. Intake form 1 works perfectly. I takes, name, email and comment and sends it through a sendmail script.

I also wanted an intake form for lead capture to track those that want to access the demo videos so I modified the code from the form (for the new page) and then created an additional php file called videoform.php - which is basically just a modified version of my sendmail.php file.

When I fill out the form it does nothing when I click on submit. It validates, as it not let you enter a null value in any of the fields but I am not sure what I am missing. Is it something simple (I am by no means PHP reliable) or can I simply not do that?

Here is the form and the 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>

This is the 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;
    }
    ?>

I am comfortable with a number of coding formats but I am so weak when it comes to PHP. Any insight would be both appreciated and get me on the road to understanding PHP better.

Working scripts for comparison

Form

Send us a message

                <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 file

<?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>";
}?>

From your 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 {
//...

You never define $success. Since it doesn't have a value, if ($success) fails, and it always enters the else portion of the statement. It looks like you're missing a line that's something like $success = mail($to, $subject, $content);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM