Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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通过href传递变量_Php_Href - Fatal编程技术网

PHP通过href传递变量

PHP通过href传递变量,php,href,Php,Href,我在将查询的参数传递到另一个页面时遇到了一个小问题 我想让餐厅的名称成为一个链接,该链接将传递产品名称以处理下一页上的查询 echo "<p class='p2'><a class='link' href='restaurant.php?name=". $row['name'] ."'><strong>". $row['name'] ."</strong></a> echo“ 在餐厅页面上 <?php require ("db

我在将查询的参数传递到另一个页面时遇到了一个小问题

我想让餐厅的名称成为一个链接,该链接将传递产品名称以处理下一页上的查询

echo "<p class='p2'><a class='link' href='restaurant.php?name=". $row['name'] ."'><strong>". $row['name'] ."</strong></a>
echo“

在餐厅页面上

<?php
require ("db.php");
$name = $_GET['name'];

$query = "SELECT * FROM restaurant WHERE name =\"$name\"";
$result = mysql_query($query);
$row = mysql_fetch_array($result);   
?>

但是什么也没有显示


知道我做错了什么吗?

首先,请注意:您应该传递一个ID而不是名称,因为某些字符在URL中不太好

其次,尝试在名称上使用
urlencode()

echo "<p class='p2'><a class='link' href='restaurant.php?name=". urlencode($row['name']) ."'><strong>". $row['name'] ."</strong></a>
echo“


首先,请注意:您应该传递一个ID而不是名称,因为某些字符在URL中并不常见

其次,尝试在名称上使用
urlencode()

echo "<p class='p2'><a class='link' href='restaurant.php?name=". urlencode($row['name']) ."'><strong>". $row['name'] ."</strong></a>
echo“


当然,它不会显示任何内容,因为您的文件中没有任何
打印功能(echo、print、var_dump等)


无论如何,您可能认为您的查询不起作用。如果是这样,请尝试
echo
您的
$row['name']
。如果一切正常,请检查您的变量是否已设置,但这可能不是因为您得到
null

要解决该问题,请使用或

例如:

if(!empty($_GET['name'])) $name = $_GET['name'];
else die('Variable name is empty');
$name = mysql_real_escape_string($_GET['name']);
还可以尝试将
ini\u set('display\u errors',true)
添加到页面顶部,查看是否有任何错误


请注意,您的代码非常不安全且易受攻击。请在执行查询之前使用

例如:

if(!empty($_GET['name'])) $name = $_GET['name'];
else die('Variable name is empty');
$name = mysql_real_escape_string($_GET['name']);

当然,它不会显示任何内容,因为您的文件中没有任何
print
函数(echo、print、var_dump等)


无论如何,您可能认为您的查询不起作用。如果是这样,请尝试
echo
您的
$row['name']
。如果一切正常,请检查您的变量是否已设置,但这可能不是因为您得到
null

要解决该问题,请使用或

例如:

if(!empty($_GET['name'])) $name = $_GET['name'];
else die('Variable name is empty');
$name = mysql_real_escape_string($_GET['name']);
还可以尝试将
ini\u set('display\u errors',true)
添加到页面顶部,查看是否有任何错误


请注意,您的代码非常不安全且易受攻击。请在执行查询之前使用

例如:

if(!empty($_GET['name'])) $name = $_GET['name'];
else die('Variable name is empty');
$name = mysql_real_escape_string($_GET['name']);

请不要在新代码中使用
mysql.*
函数。它们不再被维护,社区已经开始了。请看?相反,您应该了解并使用or。如果您不能决定,将帮助您选择。如果您想学习,。您需要了解SQL注入,特别是当您是初学者时:您叫什么名字试图通过?您可能必须使用urlencode()在url中传递名称。愚蠢的问题,但是…你是
var\u dump
还是
print\r
你的
$row
?我的意思是,在餐厅页面上。请不要在新代码中使用
mysql.*
函数。它们不再维护,社区已经开始运行。请参阅?相反,你应该了解并使用或。如果您不能决定,将有助于选择。如果您想学习,。您需要学习SQL注入,特别是当您是初学者时:您想传递什么名称?您可能必须使用urlencode()在url中传递名称。愚蠢的问题,但是……你是
var_dump
还是
print_r
你的
$row
?我的意思是,在餐厅页面上。@user1354275你还应该记下其他人对你的代码对SQL注入开放,mysql_*函数被弃用的说法。@user1354275你应该因此,请记下其他人对您的代码完全开放于SQL注入和mysql_*函数被弃用的看法。