Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过表单提交更新php文件中的变量?例如静态密码_Php_Forms_Password Protection_Change Password - Fatal编程技术网

如何通过表单提交更新php文件中的变量?例如静态密码

如何通过表单提交更新php文件中的变量?例如静态密码,php,forms,password-protection,change-password,Php,Forms,Password Protection,Change Password,作为PHP新手,我做了大量的研究,但没有找到这个问题的答案。为了提供一些细节,我有一个使用PHP和Javascript的小型上传web应用程序。在我所谓的管理部分,这是用户名和密码保护的用户可以访问上传的文件 此时,我正在php文件中设置一个静态用户名和密码,并将它们存储为以下变量 $username = "admin"; $password ="admin"; 登录页面然后读取表单post,以验证输入的用户名和密码是否与设置的用户名和密码匹配。一旦通过身份验证,它将设置会话令牌。这一切都很好

作为PHP新手,我做了大量的研究,但没有找到这个问题的答案。为了提供一些细节,我有一个使用PHP和Javascript的小型上传web应用程序。在我所谓的管理部分,这是用户名和密码保护的用户可以访问上传的文件

此时,我正在php文件中设置一个静态用户名和密码,并将它们存储为以下变量

$username = "admin";
$password ="admin";
登录页面然后读取表单post,以验证输入的用户名和密码是否与设置的用户名和密码匹配。一旦通过身份验证,它将设置会话令牌。这一切都很好,但我希望人们能够在admin.php部分更改密码

所以我想在admin.php上有一个更改密码表单,当一个人提交它时,它会更新login.php文件中的$password变量。如何写入现有的login.php文件并更新静态变量$password

任何帮助都将不胜感激

更新:我当前的login.php文件

因此,您可以看到用户名和密码是静态设置的,一旦用户输入登录信息并验证它设置了会话变量。我想让admin.php页面上的人能够提交一个表单来更新$password变量。我现在正在阅读这个

admin.php

if(isset($_POST['new_pw']) && trim($_POST['new_pw']) != ""){
    $fp = fopen("assets/includes/config.php", 'w');
    fwrite($fp, '<?php');
    fwrite($fp, ' ');
    fwrite($fp, '$username = "admin";');
    fwrite($fp, '$password = "'.trim($_POST['new_pw']).'";');
    fwrite($fp, ' ');
    fwrite($fp, '?>');
    fclose($fp); 
}
?> 

<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
    <input type="text" name="new_pw">
    <input type="submit">
</form>
if(设置($\u POST['new\u pw'])和修剪($\u POST['new\u pw'])!=“”){
$fp=fopen(“assets/includes/config.php”,“w”);
fwrite($fp,”);
fclose($fp);
}
?> 
最新答复:

创建一个配置文件并将其放在web根目录后面。内容包括:

<?php
$username = 'admin';
$password = 'admin;
最后,更新您将使用的文件


正如上面提到的那些家伙,这是一种非常不想要的方式,但是如果你真的必须这样做,那么你应该做的是
1-读取管理文件

$file = file_get_contents('./admin.php', FILE_USE_INCLUDE_PATH);
2-将当前密码(存储在会话中的密码)替换为用户在表单中提供给您的新密码

$file=str_replace($oldPass,$newPass,$file);
还建议在$oldPass和$newPass中添加分配段,以避免在用户输入匹配内容时替换代码的其他部分 3-在重放后写入文件

$fp=fopen('admin.php','w');
fwrite($fp,$file,strlen($file));

这不是一个答案,这是一个评论!FrWITE是他的答案。如果他解释了他所做的或提供了一些代码,我将欣然更新。我不想为他写他的全部脚本,这是你需要做的,但是如果你需要这个功能,你可能想考虑把它存储在一个数据库中。你应该首先通过评论提示用户提供给出一个好答案所需的所有信息。通常问题的提问方式是错误的,你脑海中浮现的第一个答案可能不是OP真正需要告诉的。谢谢你提供的信息,我明天将尝试一下。同时,我为缺乏知识而道歉。我已经在过去的一年里,我掌握了Wordpress、HTML、CSS和一些javascript,所以我的下一个挑战是PHP。你对学习PHP的资源有什么建议吗?我刚刚研究了PHP.net网站并查看了互联网上的示例代码。再次感谢!我会让你知道事情的进展。你真的希望每个用户都更改pas吗每个人的宝剑?你的目标到底是什么?你想要一个普通的用户身份验证,每个用户都有自己的密码吗?在某个时候,我将把这个上传应用分发给客户端,或者我想有一个出售它的选项。我想让非开发者在应用分发后轻松更新密码这是一个标准的开箱即用密码。只有一个用户帐户和密码,因此无需添加数据库。在任何情况下,都可以将您的凭据从代码中取出,放入某种类型的配置文件中!这就是我的计划,但我只需要首先使其正常工作。请参阅更新的摘要。在您提供更改选项之前,先将其考虑在内通过GUI进行加密。然后使用下面所示的方法。此外,像这样它将非常容易被破解,密码安全也适用于此示例!
<?php
if(isset($_POST['new_pw']) && trim($_POST['new_pw']) != "")
{
    $fp = fopen($_SERVER['DOCUMENT_ROOT']."/path-to-nested-config.php", 'w');
    fwrite($fp, '<?php');
    fwrite($fp, '$username = "admin"');
    fwrite($fp, '$password = "'.trim($_POST['new_pw']).'");
    fclose($fp); 
}
?> 
$file = file_get_contents('./admin.php', FILE_USE_INCLUDE_PATH);
$file=str_replace($oldPass,$newPass,$file);
$fp=fopen('admin.php','w');
fwrite($fp,$file,strlen($file));