如何将变量值传递给php页面?

时间:2013-10-06 23:44:27

标签: php

如何将变量$ login的值传递给try.php页面?我希望使用此代码:

<a href="try.php">Vote</a> ?

5 个答案:

答案 0 :(得分:5)

通过URL传递数据有两种主要方式。您可以创建一个<form>,然后将数据发布到下一页。或者,您可以直接在URL中传递数据,这称为GET方法。

PHP Manual - $_POST

PHP Manual - $_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继续传递它。

PHP Manual - Session Handling

PHP Manual - $_SESSION

答案 1 :(得分:2)

假设您的网站是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访问的每个页面,该网址末尾都有一个?login=Alice。但Bob希望找到Alice的信息,所以他查看了他的网址example.com/Login.php?login=Bob并将'Bob'更改为'Alice',因此他有example.com/Login.php?login=Alice。现在,他可以查看Alice的所有信息。因为用户可以通过它设置URL和所有“GET”变量,所以您需要小心只发送“GET”信息,如果更改则不会导致安全问题。如果您需要发送这样的信息,您可以使用“POST”变量。

答案 2 :(得分:0)

你可以使用$ _SESSION,我不知道你要做什么..但似乎这就是你需要的!

答案 3 :(得分:0)

如果$ login只是一个字符串或其他基本变量,请使用查询字符串。

<a href="try.php?myvar=<?=$login?>">Vote</a>

答案 4 :(得分:0)

有几种方法可以将值传递给PHP页面。

要将值作为GET请求传递,请按如下方式添加参数:

try.php?myvalue=test

然后可以在目标脚本上检索它:

$myValue = isset($_GET['myvalue'])?$_GET['myvalue']:null;

这需要转义以避免SQL注入。请参阅How can I prevent SQL injection in PHP?

但是,如果您的变量包含敏感信息(如密码),则强烈建议不要使用GET。为此,最好使用POST请求。您应该解释$login正在使用的内容。