Mysql空发布错误

时间:2013-09-06 06:49:38

标签: php mysql

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

        <fieldset>
            <label for="ad">Ad:</label>
            <input type="text" id="ad" placeholder="Tam Adınızı Giriniz" />

            <label for="soyad">Soyad:</label>
            <input type="text" id="soyad" placeholder="Soyadınızı Giriniz" />

            <label for="email">Email:</label>
            <input type="email" id="email" placeholder="Email Adresinizi Giriniz" />

            <label for="mesaj">Mesaj:</label>
            <textarea id="mesaj" placeholder="Mesajınız"></textarea>
 <center></center>
            <center><input type="submit" value="Onaya Gönder" /></center>

        </fieldset>
    </form>

这是我的帖子,这是一个gonder.php

 <?php
     $con=mysqli_connect("localhost","root","","yeniziyaretci");
     // Check connection
     if (mysqli_connect_errno())
     {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
     }

     $sql="INSERT INTO mesajlar (ad, soyad, email, mesaj)
         VALUES ('$_POST[ad]','$_POST[soyad]','$_POST[email]','$_POST[mesaj]')";

     if (!mysqli_query($con,$sql))
     {
       die('Error: ' . mysqli_error($con));
     }
      echo "";

     mysqli_close($con);
     header("location:index.php?cmd=1");
  ?> 

当我试图发帖时。他们不会给出eny错误,但是他们将它作为空的发送给mysql。像这样。

Example

5 个答案:

答案 0 :(得分:2)

您的input元素没有name个属性。 另外,请阅读有关'sql injection'的内容。

答案 1 :(得分:1)

您必须按名称选择输入,而不是按ID。

变化

<input type="text" id="ad" placeholder="Tam Adınızı Giriniz" />

<input type="text" name="ad" id="ad" placeholder="Tam Adınızı Giriniz" />

答案 2 :(得分:1)

您使用错误且不安全的方式来查询数据库。要获得您工作的那个,只需更改您的$sql声明,如下所示:

$sql = sprintf('INSERT INTO mesajlar (ad, soyad, email, mesaj) VALUES ("%s", "%s", "%s", "%s")', $_POST['ad'], $_POST['soyad'], $_POST['email'], $_POST['mesaj']);

但我建议你学习避免mysql注入的方法。

修改

是的,您在表单上缺少"name"个属性。

答案 3 :(得分:0)

这个,它会起作用:

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

        <fieldset>
            <label for="ad">Ad:</label>
            <input type="text" id="ad" name=="ad" placeholder="Tam Adınızı Giriniz" />

            <label for="soyad">Soyad:</label>
            <input type="text" id="soyad" name="soyad" placeholder="Soyadınızı Giriniz" />

            <label for="email">Email:</label>
            <input type="email" id="email" name="email" placeholder="Email Adresinizi Giriniz" />

            <label for="mesaj">Mesaj:</label>
            <textarea id="mesaj" name="mesaj" placeholder="Mesajınız"></textarea>
 <center></center>
            <center><input type="submit" value="Onaya Gönder" /></center>

        </fieldset>
    </form>

答案 4 :(得分:-1)

尝试

$sql="INSERT INTO mesajlar (ad, soyad, email, mesaj)
VALUES
('".$_POST[ad]."','".$_POST[soyad]."','".$_POST[email]."','".$_POST[mesaj]."')";

$sql="INSERT INTO mesajlar (ad, soyad, email, mesaj)
VALUES
('{$_POST[ad]}','{$_POST[soyad]}','{$_POST[email]}','{$_POST[mesaj]}')";

修改

抱歉,我没有注意到你的html表格中存在问题 根据{{​​3}}

的建议,您需要将name=""个属性添加到表单元素中
<form action="gonder.php" method="post">

    <fieldset>
        <label for="ad">Ad:</label>
        <input type="text" id="ad" name="ad" placeholder="Tam Adınızı Giriniz" />
    </fieldset>
</form>