PHP表单发布到MySQL错误

时间:2013-03-03 13:54:56

标签: php html mysql database forms

我正在创建一个php-post表单,其中包含:Who,What,Where,Contact和date_created。 我用这些行创建了一个数据库。 enter image description here

这是我的HTML表单代码:

<form id="contactform" action="post.php"> 
            <p class="contact"><label for="who">Who</label></p> 
            <input id="who" name="who" placeholder="Who are you? (First & Second name)" required="" tabindex="1" type="text"> 

            <p class="contact"><label for="email">What</label></p> 
            <input id="what" name="what" placeholder="What do you want?" required="" type="text"> 

            <p class="contact"><label for="username">Where</label></p> 
            <input id="where" name="where" placeholder="Country, City, Street..." required="" tabindex="2" type="text"> 

            <p class="contact"><label for="password">Contact</label></p> 
            <input type="text" id="contact" name="contact" placeholder="Phone number or email"required=""> 

                <br><br>

        <input class="buttom" name="submit" id="submit" tabindex="5" value="Submit" type="submit">   

这是php post.php代码:

<?php
    // Grab our POSTed form values
    // Note that whatever is enclosed by $_POST[""] matches the form input elements
    $who = $_POST["who"];
    $what = $_POST["what"];
    $where = $_POST["where"];
    $contact = $_POST["contact"];

    // Connect to our DB with mysql_connect(<server>, <username>, <password>)
    $sql_connection = mysql_connect("server_name", "admin", "password");

    mysql_select_db("database_name", $sql_connection);

    $sql = "INSERT INTO content (
                who,
                what,
                where,
                contact,
                date_created
            )
            VALUES (
                '$who',
                '$what',
                '$where',
                '$contact',
                NOW()
            )";

    mysql_query($sql, $sql_connection);

    mysql_close($sql_connection);
?>

当我尝试发布某些内容时,一切都没有发生。屏幕只是白色,数据库是空的,网址是这样的:

http://my-website.com/post.php?who=Firstname+Secondname&what=Some+sentences+here-and&where=America&contact=some@website.com&submit=Submit%21

2 个答案:

答案 0 :(得分:2)

正如HamZa DzCyber​​DeV所说,您没有在<form>标记中指定您使用的方法。

对于在数据库中发布内容的情况,就像现在一样 - 使用method="post"并在搜索内容时使用表单,使用method="get"。 如果使用post方法,您的URL将更改为my-website.com/post.php,如果使用get方法,您的URL将更改为my-website.com/post.php?... (你得到的东西都在哪里) - 你提交后如何获得URL。

屏幕只是白色,因为post.php(点击提交按钮后你去的地方)不包含要发送到输出的任何内容,您可以使用echo轻松完成。

例如,您可以创建一个新的html页面,该页面将以echo:

写下来
echo '
<html
<body>
This is my website!
</body>
</html>

';

另外,你可以做的是使用已经形成HTML的include() php脚本,或者你可以在这里查看其他一些重定向方法: http://php.about.com/od/learnphp/ht/phpredirection.htm

请记住,PHP是服务器正在处理的语言,只有HTML标签(带有CSS和JS)被发送到其他浏览器才能被读取。

有关POST和GET方法的更多信息,请参阅此处:

http://php.net/manual/en/reserved.variables.post.php

http://php.net/manual/en/reserved.variables.get.php

答案 1 :(得分:2)

为什么不尝试这样做以获得错​​误或线索出现问题,将代码包含在try和catch块中:

    try {

         // your code


    } catch ( Exception $e ) {

         echo $e->getMessage();

    }