2013-10-06 300 views

回答

0

您可以使用$ _SESSION,我不知道你正在尝试做的。但似乎是你需要的东西!

+0

我的意思是,我不能通过href将变量$ login的值传递给try.php。 – user2852776

+0

浏览器会话可用于此目的。这需要在PHP中完成。你只需要知道如何设置和检索信息。 –

0

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

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

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被用于。

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

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

相关问题