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

时间:2011-11-26 11:52:50

标签: php javascript jquery html

我还有另外一个问题,现在我在PHP文件中有变量需要在另一个中引用,但是它没有成功。

为了进一步说明,我在PHP文件中有这个部分:

if (isset($_REQUEST['login']) && isset($_REQUEST['password']))
    establishingConnection($_REQUEST['login'], $_REQUEST['password'], $xml);

在这里,我必须提交用户名和密码才能与我正在开发的网络服务建立连接。

之后,用户可以进行添加/删除/更改链接/标签等操作。他可以更改个人数据(用户名,密码,电子邮件或删除自己的帐户)。对于任何这些操作,我需要当前登录(即他的用户名)。就像在这个例子中一样:

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:解决了更改用户名的问题。现在,我遇到的问题是我可以使用旧用户名成功登录。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解您的问题,这些代码段是来自同一个文件还是单独的?你提交两种不同的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):您可以使用新旧用户名登录吗?如果是,则表示您正在添加新用户(名称),而不是替换新用户的当前用户名。分享您更新帐户信息的方式(即,如果您正在使用数据库,共享您正在使用的更新查询),并且有人可能会提供帮助。

答案 1 :(得分:0)

我认为问题与Session_start()有关。在检查会话登录名和密码变量之前,请确保已包含此内容。