Php 使用搜索时出错 搜索

Php 使用搜索时出错 搜索,php,html,Php,Html,第15行 应引用“搜索”一词: if ($_REQUEST[searching] =="yes") 这也适用于检查请求参数的其他行。您没有将关联数组索引指定为字符串。应该是 $\u请求[“搜索”] 而不是 $\u请求[搜索] 同 $\u请求[查找] 稍后$\u请求[搜索]应该是$\u请求['search']。另外,什么是$\u请求[查找]?(也应该在“find”周围加引号)。而且。。。为什么$\u请求?具体一点,使用$\u POST(例如$\u POST['search']) 而且。。。请,

第15行

应引用“搜索”一词:

if ($_REQUEST[searching] =="yes") 

这也适用于检查请求参数的其他行。

您没有将关联数组索引指定为字符串。应该是 $\u请求[“搜索”] 而不是 $\u请求[搜索] 同 $\u请求[查找]
稍后

$\u请求[搜索]
应该是
$\u请求['search']
。另外,什么是
$\u请求[查找]
?(也应该在“find”周围加引号)。而且。。。为什么
$\u请求
?具体一点,使用
$\u POST
(例如
$\u POST['search']

而且。。。请,请,请(至少)在查询参数周围使用mysql\u real\u escape\u string()。见:

e、 g

实际上,查询MySQL的更好方法是使用PHP数据对象并绑定您的值以增加安全性:


还有更多。你需要仔细阅读连接之类的。。。这超出了本答案的范围。

replace

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindValue(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR);
$sth->execute();
?>


当我输入我的答案时,另一个答案悄悄出现了,它是正确的。我更改了它,但为什么仍然显示:注意:未定义索引:在第15行的D:\wamp\www\oop\test2.php中搜索,我尝试了IE、firefox、chrome等所有工具,但仍然显示:注意:未定义索引:在第15行的D:\wamp\www\oop\test2.php中搜索:参见,信息现在不同了。您还必须使用isset函数检查$_请求中是否存在参数;它显示:布尔值为false,那么这个问题是什么呢?如何更正?可能是由PHP.ini中的PHP设置引起的。在php.ini:variables\u order中检查这个变量,看看它有什么值。如果“P”不在其中,脚本将抱怨,因为POST数据将不会放入请求中。它是:;变量的顺序;默认值:“EGPCS”;发展价值:“GPCS”;Production Value:“GPCS”对不起,我应该说使用
mysqli\u real\u escape\u string()
,因为从PHP 5.5.0开始,
mysql\u real\u escape\u string
扩展已被弃用。(这些天我在使用PDO,所以我错过了一个:)你可能只是在学习,但这里有一个关于你的代码的好提示,以及如果你在写一篇文章,如何从
$\u POST
获取数据,而不是
$\u REQUEST
。另外,正确地转义你的数据;您还应该使用prepared语句,但这只能解决一半的问题。您仍然缺少数组属性周围的引号
if ($_REQUEST['searching'] =="yes") 
$data = mysql_query("SELECT * FROM users 
  WHERE mysql_real_escape_string(upper($_POST['field']))
  LIKE'%mysql_real_escape_string($_POST['find'])%'");
<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindValue(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR);
$sth->execute();
?>
if ($_REQUEST[searching] =="yes")  
if (isset($_REQUEST['searching']) && $_REQUEST['searching'] =="yes")