Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP将HTML表单发送到MySQL_Php_Html - Fatal编程技术网

通过PHP将HTML表单发送到MySQL

通过PHP将HTML表单发送到MySQL,php,html,Php,Html,我有点小问题。我正在尝试将一些数据从我的页面发送到我的数据库 HTML代码: [insert_php] $current_user = wp_get_current_user(); //I am using wordpress and I need php on page script. echo $current_user->ID; // here it shows "1" because I am admin. [/insert_php] <form actio

我有点小问题。我正在尝试将一些数据从我的页面发送到我的数据库

HTML代码:

[insert_php]
    $current_user = wp_get_current_user(); //I am using wordpress and I need php on page script.
    echo $current_user->ID; // here it shows "1" because I am admin.
[/insert_php]

<form action="http://mysitee.com/xxx.php" method="post">
    E-mail: <input type="text" name="email">
    Nick: <input type="text" name="user_name">
    Server: <select name="server">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3" selected>3</option>
        <option value="4">4</option>
    </select>
    <input type="hidden" name="reward" value="123">
    <input type="hidden" name="user_id" value="[insert_php]echo "$current_user->ID";[/insert_php]">
    <input type="submit" value="Submit">
</form>
[插入\u php]
$current_user=wp_get_current_user()//我正在使用wordpress,我需要php页面脚本。
echo$current_user->ID;//这里显示“1”,因为我是管理员。
[/insert_php]
电邮:
尼克:
服务器:
1.
2.
3.
4.
ID“;[/insert_php]”
下面是PHP代码:

<?php
    $link = mysql_connect('site.com', 'login', 'pass');
    mysql_select_db('mydb');

    // Check connection
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }

    $user_id = mysql_real_escape_string($link, $_POST['user_id']);
    $user_name = mysql_real_escape_string($link, $_POST['user_name']);
    $server = mysql_real_escape_string($link, $_POST['server']);
    $email = mysql_real_escape_string($link, $_POST['email']);
    $nagroda = mysql_real_escape_string($link, $_POST['reward']);

    mysql_query("INSERT INTO winners (user_id, user_name, server, email, reward)
    VALUES ('$user_id', '$user_name', '$server', '$email', '$nagroda')");

    if (!mysql_query($link)) {
        die('Error: ' . mysql_error($link));
    }

    echo "1 record added";

    mysql_close($link);
?> 
Its-

而你却做了相反的事。修复如下-

mysql_real_escape_string($_POST['user_id'], $link)

建议:不要使用mysql_*语句,因为它们在最近的PHP版本中已被弃用。学习mysqli prepared或PDO。

Its-

mysql_real_escape_string(string, connection)
There is a little modification in the code. I think it ll help
    <?php
        $link = mysql_connect('site.com', 'login', 'pass');
        mysql_select_db('mydb');

        // Check connection
        if (!$link) {
            die('Could not connect: ' . mysql_error());
        }

        $user_id = mysql_real_escape_string($link, $_POST['user_id']);
        $user_name = mysql_real_escape_string($link, $_POST['user_name']);
        $server = mysql_real_escape_string($link, $_POST['server']);
        $email = mysql_real_escape_string($link, $_POST['email']);
        $reward = mysql_real_escape_string($link, $_POST['reward']);

        $sql="INSERT INTO winners (user_id, user_name, server, email, reward)
        VALUES ('$user_id', '$user_name', '$server', '$email', '$nagroda')";

        if (!mysql_query($sql,$link)) {
            die('Error: ' . mysql_error($link));
        }

        echo "1 record added";

        mysql_close($link);
    ?> 
而你却做了相反的事。修复如下-

mysql_real_escape_string($_POST['user_id'], $link)

建议:不要使用mysql_*语句,因为它们在最近的PHP版本中已被弃用。学习mysqli prepared或PDO。

代码中有一些修改。我想会有帮助的
There is a little modification in the code. I think it ll help
    <?php
        $link = mysql_connect('site.com', 'login', 'pass');
        mysql_select_db('mydb');

        // Check connection
        if (!$link) {
            die('Could not connect: ' . mysql_error());
        }

        $user_id = mysql_real_escape_string($link, $_POST['user_id']);
        $user_name = mysql_real_escape_string($link, $_POST['user_name']);
        $server = mysql_real_escape_string($link, $_POST['server']);
        $email = mysql_real_escape_string($link, $_POST['email']);
        $reward = mysql_real_escape_string($link, $_POST['reward']);

        $sql="INSERT INTO winners (user_id, user_name, server, email, reward)
        VALUES ('$user_id', '$user_name', '$server', '$email', '$nagroda')";

        if (!mysql_query($sql,$link)) {
            die('Error: ' . mysql_error($link));
        }

        echo "1 record added";

        mysql_close($link);
    ?> 
代码中有一点修改。我想会有帮助的

在这里。当使用
mysql\u查询(“插入…”
if(!mysql\u query($link))时,您调用了Andrewsi所说的
mysql\u query()
两次

另外,您正在使用基于mysqli的方法
mysql\u real\u escape\u string($link
摆脱
$link,
,或者更好的是,专门使用
mysqli.*

修改为
$query=mysql\u query(“插入…”
,然后使用查询变量
if(!$query,$link)

<?php
    $link = mysql_connect('site.com', 'login', 'pass');
    mysql_select_db('mydb');

    // Check connection
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }

    $user_id = mysql_real_escape_string($_POST['user_id']);
    $user_name = mysql_real_escape_string($_POST['user_name']);
    $server = mysql_real_escape_string($_POST['server']);
    $email = mysql_real_escape_string($_POST['email']);
    $nagroda = mysql_real_escape_string($_POST['reward']);

    $query = mysql_query("INSERT INTO winners (user_id, user_name, server, email, reward)
    VALUES ('$user_id', '$user_name', '$server', '$email', '$nagroda')");

    if (!$query) {
        die('Error: ' . mysql_error());
    }

    echo "1 record added";

    mysql_close($link);
?> 

这里。在使用
mysql\u查询(“插入…”
if(!mysql\u query($link))时,您调用了安德鲁斯所说的
mysql\u query()
两次。

另外,您正在使用基于mysqli的方法
mysql\u real\u escape\u string($link
摆脱
$link,
,或者更好的是,专门使用
mysqli.*

修改为
$query=mysql\u query(“插入…”
,然后使用查询变量
if(!$query,$link)

<?php
    $link = mysql_connect('site.com', 'login', 'pass');
    mysql_select_db('mydb');

    // Check connection
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }

    $user_id = mysql_real_escape_string($_POST['user_id']);
    $user_name = mysql_real_escape_string($_POST['user_name']);
    $server = mysql_real_escape_string($_POST['server']);
    $email = mysql_real_escape_string($_POST['email']);
    $nagroda = mysql_real_escape_string($_POST['reward']);

    $query = mysql_query("INSERT INTO winners (user_id, user_name, server, email, reward)
    VALUES ('$user_id', '$user_name', '$server', '$email', '$nagroda')");

    if (!$query) {
        die('Error: ' . mysql_error());
    }

    echo "1 record added";

    mysql_close($link);
?> 


您的错误处理不正确。在变量中捕获第一次调用
mysql\u query()
的结果,并检查其是否为false。如果为false,则显示
mysql\u error()
。您使用的是基于
mysqli
的方法
mysql\u real\u escape\u字符串($link
摆脱
$link,
或者更好,只使用
mysqli.*
。对不起,伙计们,我在PHP/HTML方面真的是个新手。你能更详细地解释一下要更改什么以及在哪里更改吗?确切的是什么错误消息?您运行了两次
mysql\u query
。第一次使用您的查询,第二次使用
$link
。后者失败-您根本没有检查第一次调用。错误处理不正确。捕获第一次调用
mysql\u query()的结果
输入一个变量,检查是否为false。如果为false,则显示
mysql\u error()
。您使用的是基于
mysqli
的方法
mysql\u real\u escape\u字符串($link
摆脱
$link,
或者更好,只使用
mysqli.*
。对不起,伙计们,我在PHP/HTML方面真的是个新手。你能更详细地解释一下要更改什么以及在哪里更改吗?确切的是什么错误消息?您正在运行两次
mysql\u query
。第一次使用您的查询,第二次使用
$link
。后者失败-您根本没有检查第一次调用。
,$link
实际上不需要。(link\u标识符)MySQL连接。如果未指定链接标识符,则假定MySQL\u connect()打开的最后一个链接。如果未找到此类链接,则将尝试创建一个,就像MySQL\u connect()一样调用时没有参数。如果未找到或建立连接,将生成E_警告级别错误。根据手册@Fred ii-是,这是可选的。仍然显示OP在代码中犯了什么错误。是的,但正如我在a中所述,OP似乎面临另一个问题,所以请做好准备;-)仍然有一个问题(抱歉加倍)。即使我的整个记录都被添加了,我仍然会收到带有“error:”的回音。你知道为什么当我在数据库中实际填充了我的整个记录时?@Fred ii-
error
意思是,OP在这里得到了一些错误
如果(!mysql_query($link)){die('error:'.mysql_error($link));}
,$link
实际上并不需要。(link\u identifier)MySQL连接。如果未指定链接标识符,则假定MySQL\u connect()打开的最后一个链接。如果未找到此类链接,它将尝试创建一个,就像MySQL\u connect()一样调用时没有参数。如果未找到或建立连接,将生成E_警告级别错误。根据手册@Fred ii-是,这是可选的。仍然显示OP在代码中犯了什么错误。是的,但正如我在a中所述,OP似乎面临另一个问题,所以请做好准备;-)仍然有一个问题(抱歉翻倍)。即使我的整个记录都被添加了,我仍然会收到带有“error:”的回音。你知道为什么我的数据库中的整个记录都被填充了吗?@Fred ii-
error
意思是,OP在这里得到了一些错误
如果(!mysql_query($link)){die('error:'.mysql_error($link));}/code>“解析错误:语法错误,意外”,“第19行的in/home/script.php”请稍等。我会检查它。@user3565273我将它改为
if(!$query)
立即尝试@user3565273和
mysql_error($link)
mysql_error()
工作,谢谢你,弗雷德;)如果可以的话,还有一个问题。我如何在同一页上创建此回音?我不希望人们被重定向到另一页,只希望在单击“提交”时在同一页上通知“添加了1条记录”。有什么想法或链接吗?:)不客气。为了让它在同一页上回音,您需要将表单放在同一页上,并使用
action=“”