-2
  <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");
  ?> 

当我试图发帖时。他们没有给出任何错误,但他们将其作为空发送到 mysql。像这样。

例子

4

5 回答 5

2

您的input元素没有name属性。另外,请阅读所谓的“sql注入”。

于 2013-09-06T06:53:48.280 回答
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" />

于 2013-09-06T06:53:10.797 回答
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"属性。

于 2013-09-06T07:04:44.520 回答
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>
于 2013-09-06T07:02:48.477 回答
-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 表单中也存在问题,您
需要按照Ø Hanky Panky Ø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>
于 2013-09-06T06:56:43.120 回答