我试图将表单信息存储在一个mysql数据库中,但它没有向数据库发送

时间:2013-11-21 12:36:02

标签: php mysql forms

所以我有一个表单和表单action =包含下面代码的文件。我正在连接,但数据没有保存。我用输入类型textarea和带有长文本的数据库格式化我的表单,因为我想给用户提供他们写入信息所需的空间。我认为这可能是我的问题,并一直在网上搜索是否是,但我找不到任何说它是不是。奇怪的是,有一次我确实看到了数据库行的增加但是当我检查它时,行没有包含我发送的信息,它是空白的。

 <?php 
    session_start();

    if (strlen($_POST['recipe'])|| strlen($_POST['usrtext'])||strlen($_POST['usrtxt'])    ='0')
    {header('location:shareerror.php');}  
    else
    {
     $connection = mysql_connect("localhost","root","")
    or die("no connection");
    $db_select=mysql_select_db("smqr",$connection)
    or die("no connection to db");


    $query=mysql_query("INSERT INTO seafood(`recipe`,`usrtext`,'usrtxt')
    VALUES('$recipe','$usrtext''$usrtxt')");

    header ('location:thanks.php'); }

    ?>

4 个答案:

答案 0 :(得分:1)

错误的是你分配而不是检查更正的陈述是:

if (strlen($_POST['recipe'])|| strlen($_POST['usrtext'])||strlen($_POST['usrtxt']) ==0)

答案 1 :(得分:0)

您的查询中存在错误

 $query=mysql_query("INSERT INTO seafood(`recipe`,`usrtext`,'usrtxt')
    VALUES('$recipe','$usrtext''$usrtxt')");

将此更改为

 $query=mysql_query("INSERT INTO seafood(`recipe`,`usrtext`,`usrtxt`)
    VALUES('$recipe','$usrtext','$usrtxt')");

答案 2 :(得分:0)

您没有为$ recipe,$ usrtext和$ usrtxt

设置值

您在值中缺少逗号。

您正在使用strlen而不是isset

另请注意How can I prevent SQL injection in PHP?。您的代码很容易被SQL注入。

这是固定代码(sql注入漏洞完好无损!!)

 <?php 
    session_start();

    if (!isset($_POST['recipe'])|| !isset($_POST['usrtext'])||!isset($_POST['usrtxt']))
    {
        header('location:shareerror.php');
    }  
    else
    {
        $connection = mysql_connect("localhost","root","")
        or die("no connection");

        $db_select=mysql_select_db("smqr",$connection)
        or die("no connection to db");

        $recipe = $_POST['recipe'];
        $usrtext = $_POST['usrtext'];
        $usrtxt = $_POST['usrtxt'];

        $query=mysql_query("INSERT INTO seafood(`recipe`,`usrtext`,'usrtxt')
        VALUES('$recipe','$usrtext','$usrtxt')");

        header('location:thanks.php'); 
    }
?>

答案 3 :(得分:0)

此外,您没有分配查询中使用的变量。

$query=mysql_query("INSERT INTO seafood(`recipe`,`usrtext`,`usrtxt`)
VALUES('$recipe','$usrtext','$usrtxt')");

这样做:

$recipe = $_POST['recipe'];
$usrtext = $_POST['usrtext'];
$urstxt = $_POST['usertxt'];

然后您可以使用查询中的变量