[英]How can I reference a variable in a PHP file from another one?
我还有另一个问题,现在我在PHP文件中有必须在另一个文件中引用的变量,但是这样做没有成功。
为了进一步说明,我在PHP文件中包含此段:
if (isset($_REQUEST['login']) && isset($_REQUEST['password']))
establishingConnection($_REQUEST['login'], $_REQUEST['password'], $xml);
在这里,我必须提交用户名和密码才能与正在开发的Web服务建立连接。
之后,用户可以进行添加/删除/更改链接/标签等操作。.他可以更改其个人数据(用户名,密码,电子邮件或删除自己的帐户)。 对于任何这些操作,我需要当前登录名(即他的用户名)。 像这个例子:
if (isset($_SESSION['login']))
{
if (isset($_REQUEST['password']) && isset($_REQUEST['newUsername']))
changeUsername($_SESSION['login'], $_REQUEST['password'], $_REQUEST['newUsername'], $xml);
else {
$msg = 'Some fields are missing';
message($xml, $msg, 1);
}
}
else
{
$msg = 'Please login first!';
message($xml, $msg, 1);
}
不幸的是,我无法正确导入登录数据。 通过看到以下消息,我可以看到此问题:
$msg = 'Some fields are missing';
我的主要目标是在另一个文件中引用一个PHP变量。 我的JavaScript文件不负责提供登录名。 我试图包括php文件,但没有成功。
有什么建议可以解决这个问题吗?
编辑:好吧,我尝试了我的php,但是我发现我的JavaScript脚本中存在一些问题。
我将负责执行此操作的函数,因为我不知道问题出在哪里。
HTML:
<div id="changeUserid">
<form id="changeUseridForm">
New username: <input type="text" id="newUserid" />
<br>
Type your password to validate your action: <input type="password" id="retypePass" />
<br>
<input type="submit" value="Change" />
</form>
</div>
我的JavaScript(jQuery)函数:
$("#changeUseridForm").submit(function(){
$.ajax({
type: "GET",
url: "API/root/users/changeUsername.php",
data: {
newUsername: $("#newUserid", this).val(),
password: $("#retypePass", this).val(),
xml: 1,
},
dataType: 'xml',
success: function(xml){
if($(xml).find("success").length > 0){
alert("Username changed successfully!");
window.location.reload();
}
else if($(xml).find("error").length > 0){
alert("You have to fill all the fields!");
}
}
});
return false;
});
EDIT2:我在更改用户名方面的问题已解决。 现在,我遇到的问题是我可以成功使用旧用户名进行登录。 有什么建议吗?
我不确定我是否完全理解您的问题,这两个代码段是来自同一文件还是来自单独的文件? 并且您要提交两种不同的html表单还是只是一种表单?
我假设您已经向一个页面提交了HTML表单,然后当您移至另一页面时,想要访问这些相同的值,对吗? 您不能像这样将$ _REQUEST值从一页传递到另一页。 您可以将这些值分配给某个变量,然后包括该文件,或者使用会话变量来存储这些文件:
在第一个文件中执行此操作:
$password = $_REQUEST['password'];
$newUsername = $_REQUEST['newUsername'];
然后,在第二个文件中包含第一个文件并使用变量(假设第一个文件是a.php):
include "a.php";
if (isset($_SESSION['login'])){
if (isset($password) && isset($newUsername)){
changeUsername($_SESSION['login'], $password, $newUsername, $xml);
} else {
$msg = 'Some fields are missing';
message($xml, $msg, 1);
}
}
您还可以使用会话变量将数据从一个页面传递到另一页面,只需确保在使用会话变量的每个页面的开始处都有session_start()
。
注意:您还应该在使用之前验证用户提交的数据,但这是另一个主题。 此外,每当有疑问时,请打印/回显您的变量以查看正在传递的数据以及问题所在的变量。
编辑(问题2):可以同时使用新旧用户名登录吗? 如果是,则意味着您要添加新的用户(名称),而不是用新的用户名代替当前的用户名。 共享您更新帐户信息的方式(也就是说,如果您正在使用数据库,请共享您正在使用的更新查询),也许有人可以提供帮助。
我认为问题与Session_start()有关。 在检查会话登录名和密码变量之前,请确保已包括此内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.