2011-04-19 150 views
2

我目前有一个登录表单,我想通过URL传递用户名。 它存储在一个会话变量中。在URL中传递PHP变量

我登录后在页面上有这个,但它似乎没有工作。

$myusername = $_POST['myusername']; 

我期待这样的事情:

page.php?myusername=example 

登录页面是一个PHP页面连接到一个检查从MySQL数据库的登录详细另一个PHP。

主要部分来自本(上checklogin PHP页面)

// username and password sent from form 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

在接下来的页面,成功登录后我有这样的:

<? 
    session_start(); 
header('Location: menu.php?myusername=$myusername') ; 
    if(!session_is_registered(myusername)){ 
    header("location:index.php"); 
    } 
    ?> 

回答

6

编辑,看着你的编辑,我说的改向第一部分看起来像你需要

什么,但我看到你说

It is stored in a session variable.

你是formatti ng从PHP会话中的URL字符串,然后尝试传送得到参数的地方?如果是这样,您是否尝试使用session API获取用户名,然后执行php redirect

session_start(); 

$username = $_SESSION['myusername']; 

// redirect 
header("http://your/sites/dir/page.php?myusername=$username"); 

但它看起来像你依靠过时session_register和register_globals的,在此基础上评论:

I am wanting to pass this throughout the application, I do have it saved as a session I think as this: session_register("myusername");

这可能不是由于使用的register_globals已被关闭。你应该离开它。你想避免session_register,而是使用$ _SESSION数组。

这里是你怎么拉一个 “名为myUsername” 从URL GET查询

提取从您要使用$ _GET一个URL的用户名,即

$myusername = $_GET['myusername']; 

的一部分您正在查看的网址称为“查询字符串”。格式为

?var=value&var2=value2...
的参数被称为“GET”参数。 $ _POST参数不在URL本身中传输。你可以阅读更多关于HTTP GET与POST, here

保存用户名在会话

session_start(); 
// be sure to VALIDATE your inputs 
$_SESSION['myusername'] = $_GET['myusername']; // replace with post if appropriate 
+0

我已将它更改为GET,但它仍然没有出现..任何想法? – Xerting 2011-04-19 16:31:13

+0

@Xerting:我们需要看一些代码来知道你使用'$ _GET'有什么问题。 – 2011-04-19 16:32:53

+0

我工作的基础是后端的反馈,它只是想看看URL中的参数(?username = xxxx)。 – Xerting 2011-04-19 16:39:17

2

$_POST参数必须来自POST编辑表格。如果您在URL中传递参数,那么这是一个GET请求,并且值将在$_GET中可用。

$myusername = $_GET['myusername']; 
2

使用$_GET代替:

$myusername = $_GET['myusername']; 
2

page.php文件?名为myUsername =示例使用GET方法。

尝试

$myusername = $_GET['myusername'];

1

您可以使用$ _REQUEST看到变量的所有传入的。尝试做一个print_r($_REQUEST)或只是你的GET和POST相同。这将让你看到正在传递什么值,你可以确认是否分配了你想要设置变量的值。

0

你确定你没有重定向的地方是剥离url参数吗?例如,url_rewrite或任何apache重写条件可能会转储任何查询参数,并且实际上不会将任何内容传递给您的PHP脚本。

检查您的Web服务器日志以确保完整的URL(带有查询字符串)实际上用于调用您的脚本。