Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.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
如何从HTML select到php\sql获取值_Php_Html_Sql - Fatal编程技术网

如何从HTML select到php\sql获取值

如何从HTML select到php\sql获取值,php,html,sql,Php,Html,Sql,我试图将值从html表单列表传递到SQL表。我试过好几种方法,但都没用 HTML 沃尔沃汽车 萨博 梅赛德斯 奥迪 PHP $name=filter\u var($\u POST['name'],filter\u SANITIZE\u STRING); $email=filter\u var($\u POST['email'],filter\u VALIDATE\u email); $email=filter\u var($email,filter\u SANITIZE\u email);

我试图将值从html表单
列表传递到SQL表。我试过好几种方法,但都没用

HTML

沃尔沃汽车
萨博
梅赛德斯
奥迪
PHP
$name=filter\u var($\u POST['name'],filter\u SANITIZE\u STRING);
$email=filter\u var($\u POST['email'],filter\u VALIDATE\u email);
$email=filter\u var($email,filter\u SANITIZE\u email);
$phone=filter\u var($\u POST['phone'],filter\u SANITIZE\u STRING);
if(empty($name)| | empty($email)| | | empty($phone)| | |!isset($select)){
返回;
}否则{
mysql_connect('localhost','root','');
mysql_select_db('show_express');
$name=clean_输入($name);
$email=clean_输入($email);
$phone=clean_输入($phone);
$sql=“插入客户机(id、姓名、电子邮件、电话、乐队)”;
$sql.=“值(“”,$name’、$email’、$phone’、$select’)”;
mysql_查询($sql);
如果(mysql\u受影响的\u行()){
呼应真实;
}       
}
函数clean_输入($input){
$clean=mysql\u real\u escape\u字符串(stripcslashes($input));
退回$clean;
}

首先,您没有在代码中的任何地方定义/实例化
$select
。 那么,如果它不存在,如何测试或插入它呢

其次,我假设您面临的问题是,您的select元素上没有属性,而不是
名称属性?(请提供您的表单代码以进行验证)

因此,您必须创建一个如下所示的选择:

<select name="car">
    <option value="audi">Audi</option>
    <option value="saab">Saab</option>
    ....etc
</select>
$select = filter_var($_POST['car'], FILTER_SANITIZE_STRING);
注意
标记中的
name
属性?是的,你需要它来访问值

如评论中所述,避免使用
mysql.*
函数,因为库已贬值


对于额外的cookie点,这里有一个使用PDO进行插入的示例。()


首先,在代码中的任何地方都没有定义/实例化
$select
。 那么,如果它不存在,如何测试或插入它呢

其次,我假设您面临的问题是,您的select元素上没有属性,而不是
名称属性?(请提供您的表单代码以进行验证)

因此,您必须创建一个如下所示的选择:

<select name="car">
    <option value="audi">Audi</option>
    <option value="saab">Saab</option>
    ....etc
</select>
$select = filter_var($_POST['car'], FILTER_SANITIZE_STRING);
注意
标记中的
name
属性?是的,你需要它来访问值

如评论中所述,避免使用
mysql.*
函数,因为库已贬值


对于额外的cookie点,这里有一个使用PDO进行插入的示例。()


首先,在代码中的任何地方都没有定义/实例化
$select
。 那么,如果它不存在,如何测试或插入它呢

其次,我假设您面临的问题是,您的select元素上没有属性,而不是
名称属性?(请提供您的表单代码以进行验证)

因此,您必须创建一个如下所示的选择:

<select name="car">
    <option value="audi">Audi</option>
    <option value="saab">Saab</option>
    ....etc
</select>
$select = filter_var($_POST['car'], FILTER_SANITIZE_STRING);
注意
标记中的
name
属性?是的,你需要它来访问值

如评论中所述,避免使用
mysql.*
函数,因为库已贬值


对于额外的cookie点,这里有一个使用PDO进行插入的示例。()


首先,在代码中的任何地方都没有定义/实例化
$select
。 那么,如果它不存在,如何测试或插入它呢

其次,我假设您面临的问题是,您的select元素上没有属性,而不是
名称属性?(请提供您的表单代码以进行验证)

因此,您必须创建一个如下所示的选择:

<select name="car">
    <option value="audi">Audi</option>
    <option value="saab">Saab</option>
    ....etc
</select>
$select = filter_var($_POST['car'], FILTER_SANITIZE_STRING);
注意
标记中的
name
属性?是的,你需要它来访问值

如评论中所述,避免使用
mysql.*
函数,因为库已贬值


对于额外的cookie点,这里有一个使用PDO进行插入的示例。()


您正在使用变量$select,但它不会在任何地方启动。 你需要用这样的东西

 $select = filter_var($_POST['select'],FILTER_SANITIZE_STRING);

下次发布客户端脚本。

您正在使用变量$select,但它不会在任何地方启动。 你需要用这样的东西

 $select = filter_var($_POST['select'],FILTER_SANITIZE_STRING);

下次发布客户端脚本。

您正在使用变量$select,但它不会在任何地方启动。 你需要用这样的东西

 $select = filter_var($_POST['select'],FILTER_SANITIZE_STRING);

下次发布客户端脚本。

您正在使用变量$select,但它不会在任何地方启动。 你需要用这样的东西

 $select = filter_var($_POST['select'],FILTER_SANITIZE_STRING);

下次发布您的客户端脚本。

这是我使用的内容:

<?php
$db_host = 'localhost';
$db_name = 'show_express';
$db_user = 'root'; // you REALLY shouldn't use root for normal access
$db_pass = ''; // you REALLY need to use a password

$dbh = new PDO('mysql:host='.$db_host.';dbname='.$db_name, $db_user, $db_pass);
if (!$dbh)
{
    print "<p>Error connecting to database</p>";
    exit;
}

$q_insert = $dbh->prepare(
    "INSERT INTO clients (name, email, phone) VALUES (?,?,?);"
);
if (!$q_insert)
{
    $err = $q_insert->errorInfo();
    print "<p>Error preparing query: ".$err[2]." [".$err[0]."]</p>";
    exit;
}

$r = $q_insert->execute(array($_POST['name'], $_POST['email'], $_POST['phone']));
if (!$r)
{
    $err = $q_insert->errorInfo();
    print "<p>Error executing query: ".$err[2]." [".$err[0]."]</p>";
    exit;
}

print "<p>Success!</p>";
?>

这与我使用的方法大致相同:

<?php
$db_host = 'localhost';
$db_name = 'show_express';
$db_user = 'root'; // you REALLY shouldn't use root for normal access
$db_pass = ''; // you REALLY need to use a password

$dbh = new PDO('mysql:host='.$db_host.';dbname='.$db_name, $db_user, $db_pass);
if (!$dbh)
{
    print "<p>Error connecting to database</p>";
    exit;
}

$q_insert = $dbh->prepare(
    "INSERT INTO clients (name, email, phone) VALUES (?,?,?);"
);
if (!$q_insert)
{
    $err = $q_insert->errorInfo();
    print "<p>Error preparing query: ".$err[2]." [".$err[0]."]</p>";
    exit;
}

$r = $q_insert->execute(array($_POST['name'], $_POST['email'], $_POST['phone']));
if (!$r)
{
    $err = $q_insert->errorInfo();
    print "<p>Error executing query: ".$err[2]." [".$err[0]."]</p>";
    exit;
}

print "<p>Success!</p>";
?>

这与我使用的方法大致相同:

<?php
$db_host = 'localhost';
$db_name = 'show_express';
$db_user = 'root'; // you REALLY shouldn't use root for normal access
$db_pass = ''; // you REALLY need to use a password

$dbh = new PDO('mysql:host='.$db_host.';dbname='.$db_name, $db_user, $db_pass);
if (!$dbh)
{
    print "<p>Error connecting to database</p>";
    exit;
}

$q_insert = $dbh->prepare(
    "INSERT INTO clients (name, email, phone) VALUES (?,?,?);"
);
if (!$q_insert)
{
    $err = $q_insert->errorInfo();
    print "<p>Error preparing query: ".$err[2]." [".$err[0]."]</p>";
    exit;
}

$r = $q_insert->execute(array($_POST['name'], $_POST['email'], $_POST['phone']));
if (!$r)
{
    $err = $q_insert->errorInfo();
    print "<p>Error executing query: ".$err[2]." [".$err[0]."]</p>";
    exit;
}

print "<p>Success!</p>";
?>

这与我使用的方法大致相同:

<?php
$db_host = 'localhost';
$db_name = 'show_express';
$db_user = 'root'; // you REALLY shouldn't use root for normal access
$db_pass = ''; // you REALLY need to use a password

$dbh = new PDO('mysql:host='.$db_host.';dbname='.$db_name, $db_user, $db_pass);
if (!$dbh)
{
    print "<p>Error connecting to database</p>";
    exit;
}

$q_insert = $dbh->prepare(
    "INSERT INTO clients (name, email, phone) VALUES (?,?,?);"
);
if (!$q_insert)
{
    $err = $q_insert->errorInfo();
    print "<p>Error preparing query: ".$err[2]." [".$err[0]."]</p>";
    exit;
}

$r = $q_insert->execute(array($_POST['name'], $_POST['email'], $_POST['phone']));
if (!$r)
{
    $err = $q_insert->errorInfo();
    print "<p>Error executing query: ".$err[2]." [".$err[0]."]</p>";
    exit;
}

print "<p>Success!</p>";
?>

我知道这不是答案,但您真的应该使用PDO,尽管您尝试清理输入(您没有清理所有可能被注入的变量),但您的脚本仍然容易受到注入的攻击。是否有显示的错误或未检查的mysql\u错误?。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,。我知道这不是答案,但您确实应该使用PDO,尽管您尝试清理输入,但您的脚本仍然容易受到注入的攻击(您没有清理可能被注入的每个变量)。是否有显示的错误或未检查的mysql\u错误?。它们不再得到维护。看到了吗?了解