从HTML标记获取信息并将其传递给PHP

时间:2015-04-14 21:54:17

标签: php html mysql

所以这就是事情。我需要从链接(<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
                   }
   ?>

我的问题是:有没有办法命名该特定链接,以便我可以用它来获取我想要的特定学生的信息?

4 个答案:

答案 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']并重用它来查询数据库