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

これは私の投稿フォームで、これは isegonder.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に空のエラーとして送信します。このような。

例

4

5 に答える 5

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 に答える