无法将FORM提交给Mysql

时间:2017-10-03 12:22:16

标签: php jquery mysql forms

我有一个页面有一个输入文本框,需要插入或更新现有行。

我稍后会回应,这是在掌控之中。

<form method="post" name="tapahtuma">
Submit: 
<input type="text" name="auts[]"> 
<input type="button" value="Ilmoita">
</form >

<?php

if(isset( $_POST["tapahtuma"]) ) {
$link = mysql_connect("localhost","root","","db");
mysqli_query($link, "INSERT INTO table (column) VALUES ('".$auts."')");
$auts = mysql_real_escape_string($_POST['auts']);
mysqli_close($link);
}

?>

2 个答案:

答案 0 :(得分:0)

根据提供的代码。

<强>更改

  1. <input type="button" value="Ilmoita">更改为<input type="submit" name="Ilmoita" value="Ilmoita">
  2. if(isset( $_POST["tapahtuma"]) ) {更改为if(isset( $_POST["Ilmoita"]) ) {
  3. $link = mysql_connect("localhost","root","","db");更改为$link = mysqli_connect("localhost","root","","db");
  4. $auts = mysql_real_escape_string($_POST['auts']);
  5. 之前加mysqli_query

    更新代码

    <form method="post" name="tapahtuma">
      <input type="text" name="auts">
      Submit: <input type="submit" name="Ilmoita" value="Ilmoita">
    </form >
    <?php
    
    if(isset( $_POST["Ilmoita"]) ) {
      $link = mysqli_connect("localhost","root","","db");
      $auts = mysql_real_escape_string($_POST['auts']);
      mysqli_query($link, "INSERT INTO table (column) VALUES ('".$auts."')");
      mysqli_close($link);
    }?>
    

    我建议您使用prepared statements来避免SQL Injections

    <form method="post" name="tapahtuma">
      <input type="text" name="auts">
      Submit: <input type="submit" name="Ilmoita" value="Ilmoita">
    </form>
    
    <?php
    if(isset($_POST["Ilmoita"])) {
      $link = mysqli_connect("localhost","root","","db") or die("connection failed: " . mysqli_connect_error());
      $result = mysqli_prepare($link, "INSERT INTO `table` (`column`) VALUES (?)");
      mysqli_stmt_bind_param($result, "s", $_POST['auts']);
      mysqli_stmt_execute($result);
      mysqli_close($link);
    }?>
    

    快速链接

答案 1 :(得分:0)

<form method="post" name="tapahtuma">
Vapaa teksti: <input type="text" name="auts">
<input type="submit" value="ilmoita" name="ilmoita">
</form >

<?php

if(isset( $_POST["ilmoita"]) ) {
$link = mysqli_connect("localhost","root","","db");
$auts = mysqli_real_escape_string($link, $_POST['auts']);
mysqli_query($link, "INSERT INTO table (column) VALUES ('$auts')");
mysqli_close($link);
}?>

我做的是,我使用了mysql i _real_escape_string而不是mysql_real_escape_string,并且还添加了$ link。

我会在某个时候使用准备好的语句进行测试,但至少这是有效的,而且它并不是sqli漏洞的关注点。