繁体   English   中英

如何从另一个文件引用PHP文件中的变量?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM