如何将变量 $login 的值传递给页面 try.php ?我希望使用此代码:
<a href="try.php">Vote</a> ?
通过 URL 传递数据有两种主要方式。您可以创建一个<form>
,然后将数据发布到下一页。或者,您可以直接在 url 中传递数据,这称为 GET 方法。
POST 方法意味着数据将在用户无法轻易看到的情况下传递。数据在 HTTP 标头中发送到下一页。这是传递表单数据的最常见和推荐的方式。
GET 方法像这样传递 URL 中的所有数据:http://www.somesite.com/page.php?var1=stuff&var2=morestuff
这意味着您甚至可以自己制作一个 URL 来通过 GET 传递数据。您只需要在将数据放入 URL 之前对数据进行urlencode() ,这样它就不会包含任何会导致 URL 无效的无效字符。
顺便说一句,您还可以使用会话在页面之间传递数据。但为了做到这一点,您必须首先使用 session_start() 建立会话。与将用户输入传递到新页面相比,此方法对于在页面加载期间保持数据持久性更有用。您仍然需要使用 POST 或 GET 将用户在第一页中键入的信息传递到第二页以进行处理,然后您可以将其存储在 $_SESSION 变量中以使其在所有下一页中持续存在加载而不必通过 GET 或 POST 继续传递它。
假设您的站点是 example.com,并且您想将用户是否已登录发送到名为 Login.php 的页面。您可以将 href 设置为example.com/login.php?login=true
. 这将创建一个名为的变量$_GET['login']
并将其值设置为等号后面的任何值(在本例中为“true”)。您可以从您的 PHP 脚本中访问此“GET”变量,但您首先需要确保它已设置,并且有一个值(不为空)。您可以使用以下方法执行此操作:
if (isset($_GET['login']) && !empty($_GET['login']))
$login = $_GET['login'];
假设您发送的信息是动态的,因此需要根据 PHP 脚本中的变量进行设置。你可以这样做:
<a href="try.php?login=<? echo $login; ?>">Vote</a>
不过,您要小心使用 GET 变量发送的信息。这是因为它们是通过 URL 发送的,用户可以自己设置。例如,假设 Alice 登录到她的帐户,该帐户上有她的私人信息。对于 Alice 访问的每个页面,URL?login=Alice
的末尾都有一个。但是 Bob 想知道 Alice 的信息,所以他查看了他的 URL,将example.com/Login.php?login=Bob
'Bob' 更改为 'Alice',所以他有example.com/Login.php?login=Alice
. 现在,他可以查看爱丽丝的所有信息。因为用户可以通过它设置 URL 和所有 'GET' 变量,所以您需要小心只发送如果更改不会导致安全问题的 'GET' 信息。如果您需要发送这样的信息,您可以改用“POST”变量。
有几种方法可以将值传递给 PHP 页面。
要将值作为 GET 请求传递,请添加如下参数:
try.php?myvalue=test
然后可以在目标脚本上检索它:
$myValue = isset($_GET['myvalue'])?$_GET['myvalue']:null;
这需要转义以避免 SQL 注入。请参阅如何防止 PHP 中的 SQL 注入?.
但是,如果您的变量包含密码等敏感信息,则强烈建议不要使用 GET。为此,最好使用 POST 请求。你应该解释$login
它的用途。
您可以使用 $_SESSION,我不知道您要做什么。但似乎这就是您所需要的!
如果 $login 只是一个字符串或其他基本变量,请使用查询字符串。
<a href="try.php?myvar=<?=$login?>">Vote</a>