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_*函数被弃用的看法。