Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.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_Session_Variables - Fatal编程技术网

PHP变量传入网页

PHP变量传入网页,php,session,variables,Php,Session,Variables,在我的php文件中,我创建了一个登录名,非常详细,所以我不会发布它,但我也是php新手,我需要一件事的帮助。我不确定$\u SESSION是否可以解决这个问题,但如果可以,我不知道如何解决 这就是我想知道的。。。 如果有人登录,我可以有一个变量(有用户名,所以我不在乎它是否以某种方式存储在url中。)从一页传递到另一页,并通过调用它读取到每个文件中。那么我也可以把变量清空吗 还有一个更简单的问题…如何在php中创建文件夹 我的目录仍然不工作 if (is_writable('/users'))

在我的php文件中,我创建了一个登录名,非常详细,所以我不会发布它,但我也是php新手,我需要一件事的帮助。我不确定
$\u SESSION
是否可以解决这个问题,但如果可以,我不知道如何解决

  • 这就是我想知道的。。。 如果有人登录,我可以有一个变量(有用户名,所以我不在乎它是否以某种方式存储在url中。)从一页传递到另一页,并通过调用它读取到每个文件中。那么我也可以把变量清空吗

  • 还有一个更简单的问题…如何在php中创建文件夹

  • 我的目录仍然不工作

    if (is_writable('/users')) {
      if (mkdir('/users/$finalusername')) {
        // success
      }
    }
    $myFile = "/users/$finalusername/$finalusername.txt";
    $fh = fopen($myFile, 'w') or die("There was an error in creating your account.  <br />");
    $stringData = "$finalusername\n";
    fwrite($fh, $stringData);
    $stringData = "$finalpass\n";
    fwrite($fh, $stringData);
    $stringData = "$finalemail\n";
    fwrite($fh, $stringData);
    fclose($fh);
    }
    
    if(可写('/users')){
    if(mkdir('/users/$finalusername')){
    //成功
    }
    }
    $myFile=“/users/$finalusername/$finalusername.txt”;
    $fh=fopen($myFile,'w')或die(“创建帐户时出错。
    ); $stringData=“$finalusername\n”; fwrite($fh,$stringData); $stringData=“$finalpass\n”; fwrite($fh,$stringData); $stringData=“$finalemail\n”; fwrite($fh,$stringData); fclose($fh); }
    我会给你每个问题的链接

    请不要使用get变量将您的用户名显示在地址中。尝试将$\u SESSION和$\u POST组合在一起以获得良好的结果

    想象一下,如果我将我的地址从
    www.yourpage.com?username=kypros
    更改为
    www.yourpage.com?username=administrator
    ,我会立即成为管理员吗

    至于第二个问题,你想要的是

    不要在URL查询字符串中传递任何种类的身份验证值。如果通过这种方式,用户篡改他们的设置(或其他用户的设置)将是微不足道的

    $\u SESSION
    更适合于这种情况,并且易于实现。成功登录后,为用户设置会话变量:

    // Must be called to initiate session
    session_start();
    
    // Login was successful 
    $_SESSION['username'] = $the_username;
    
    // On other pages:
    session_start();
    
    if (isset($_SESSION['username'])) {
      // user is logged in
    }
    else // show the login form
    
    要注销用户,请执行以下操作:

    // Method 1 only unsets the username to log out the user
    session_start();
    unset($_SESSION['username']);
    
    // Alternatively you can destroy the whole session, if
    // you are not using it for anything else the user may need again
    // despite not being logged in (maybe his preferred language, for example)
    session_destroy();
    unset($_SESSION);
    
    要使用PHP创建目录,请使用
    mkdir()
    。web服务器用户帐户必须对创建新目录的目录具有写访问权限,才能正常工作

    if (is_writable('/path/to/parentdir')) {
      if (mkdir('/path/to/parentdir/new_directory')) {
        // success
      }
      else {
        // handle error
      }
    }
    else // This directory has to be writable by the web server!
    

    $\u会话
    是您的最佳答案。它的工作原理是在客户机上存储一个具有唯一会话id的cookie(作为HTTP响应的一部分发送)。然后,该cookie将与从客户机发送到服务器的每个请求一起发送回,直到cookie被取消设置。然后,服务器将相关信息存储在临时会话变量中。在服务器端(通过超时或通过代码)销毁会话也意味着用户将注销(没有存储会话信息)。

    mkdir()
    是用于创建目录的函数

    理想情况下,您应该使用数据库来存储用户登录详细信息。然后使用一个表单,其中有人可以输入他们的用户名和密码。当他们点击submit按钮时,表单会将用户输入的值发布到登录脚本中。然后,登录脚本将搜索数据库,查看用户名和密码是否与数据库中的任何用户名和密码匹配。如果是这样,则可以使用
    session\u start()
    创建会话,并可以创建一个等于用户输入的用户名的
    $\u会话
    变量

    根据用户是否登录,在所有要显示内容的网页上使用
    session\u start()
    功能

    您可以使用
    if()
    循环来确定
    $\u会话['username']
    是否存在,如果存在,则显示内容。
    要结束会话,请使用
    session\u destory()
    函数。

    我确实解决了它,但当我联机时它就不起作用了。我让每个页面从一个文本文件中读取一个变量,该变量在有人登录时设置,在有人注销时销毁,但如果一次有多人登录,则该变量不起作用。老实说,我不知道如何使用$session如果你尝试了一些东西,然后发布一些代码并解释为什么它不起作用。堆栈溢出不是根据命令为您提供代码的站点。你必须付出一些努力。我尝试了$SESSION start获取你的信息,但我没有成功,这是一个获取帮助的网站…我正在做的是为什么你要评论…我尝试了传递变量,但在你的问题中有一些实际的代码。我没有和相关的代码,因为我在这方面完全失败了谢谢:)和很好的一点在网址上。。。我也不知道为什么,但是mkdir()之前对我不起作用。如果它不起作用,我猜你在服务器上的写入权限会有问题,或者是某种拼写错误,因为这是一条非常直接的命令,所以要注销?会话_end()$_会话['username']=$用户名;要注销:
    session_start();会话_destroy();取消设置($_会话)您必须在注销页面上启动会话,然后才能销毁它。@Spencer可能会看到上面的添加-两种注销方法。@Spencer可能会大笑,我真的不需要升级投票。如果您满意,请将答案标记为已接受,欢迎使用Stack Overflow。