所以这就是事情。我需要从链接(<a href='name.php'>
)调用php页面来访问我的数据库并打印来自这些特定链接的信息。我认为代码比我的问题更清晰:
<?php
session_start(); //start session to capture usrName from processLogin.php
$usrName=$_SESSION['UsrName'];
$query = "select est_name from students where usrName=".$usrName.";
$result = $db->query($query);
while( $row = mysqli_fetch_array(($result)))
{
echo "<a href="showProfile.php">".$row['est_name']."</a>";
//I need to click here and show information that is in the database
//for that specific student
}
?>
我的问题是:有没有办法命名该特定链接,以便我可以用它来获取我想要的特定学生的信息?
答案 0 :(得分:0)
嗯,简单的方法是通过GET参数传递它(如果你只是读数据)。然后使用PHP的全局$ _GET变量来检索该值。网址将是这样的:
http://......./myphppage.php?userID=1234
你可以像这样访问它:
$userID = $_GET['userID'];
<强> BUT ..... 强>
编写代码的方式让您对SQL注入攻击持开放态度。查看准备好的语句和参数化查询,以保护自己免受攻击。
http://php.net/manual/en/mysqli.quickstart.prepared-statements.php
答案 1 :(得分:0)
是的,有可能。首先,我需要指出您的查询中存在语法错误。它应该是:
$query = "select est_name from students where usrName='.$usrName.'";
至于从链接传递学生信息,你会这样做(也用双引号和单引号纠正一些有问题的语法):
echo '<a href="showProfile.php?usrName='.$userName=.'">'.$row['est_name']."</a>";
编辑:
在会话变量中传递userid可能是个更好的主意。这样,如果他们已登录,则您不需要在URL中传递变量,您只需从会话中获取用户ID,就像获得$userName
一样。这是相当安全的。
答案 2 :(得分:0)
更改链接标记以在查询参数中提供ID。
echo "<a href=\"showProfile.php?id={$row['id']}\">{$row['est_name']}</a>";
// Link will look like <a href="showProfile.php?id=123">Some Name</a>
然后,您可以使用showProfile.php
$_GET
脚本中访问此内容
$student_id = $_GET['id'];
// $student_id will be 123
答案 3 :(得分:0)
有两种方法可以做到这一点; 1,登录时,您可以使用该链接作为表单的操作,当用户提交表单时,您使用post global $ _POST ['field name']变量捕获名称。 2.或者在表单中使用get方法,以便在URL中传递名称并使用get全局变量$ _GET ['parameter name']并重用它来查询数据库