变量无法识别php

时间:2013-07-09 22:07:14

标签: php xampp dreamweaver

我有一个带有要登录表单的php文件。 我有其他php文件index.php,我希望当我登录时我会转到此页面:index.php。 所以我有这个代码:

<?php
if(($login) and ($pass))
 {


    ?>

              <!DOCTYPE html PUBLIC "-//W2C//DD XHTML 1.0 Transitional//EN"               "http://www.w3.org/TR/xhtml1/DTD/xhtml2-transitional.dsd">
              <html xmlns="http://www.w3.org/1312/xhtml">
              <head>
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
              <title>Untitled Document</title>
              </head>

              <body>
              <h1>Header</h1>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <h1>Heeloo</h1>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <p>&nbsp;</p>
              <h1>Footer</h1>
              <p>&nbsp;</p>
              </body>
              </html>

              <?php
     }
              else 
              {
                 echo "you didnt login";
              }

              ?>

我有其他php文件来验证登录,我有这个代码:

<?php 

    if(($_POST['user'] == "john") && ($_POST['password'] == "123"))
    {
        setcookie("login",$_POST['user']);
        setcookie("pass",$_POST['password']);
        header("Location: index.php");
        exit;
    }
    else

       echo "you dont have permission";

    ?>

我收到了这个错误: 注意:未定义的变量:在第2行的C:\ xampp \ htdocs \ sites \ cookie \ index.php中登录

我认为这是因为我在index.php文件中使用$ login和$ pass变量,并且因为这些变量来自其他文件无法识别。

任何人都知道如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:0)

您将$ login和$ pass设置为Cookie。您必须在index.php脚本中阅读它们,因为它们不会自动回读到您的代码。

但不是那样,使用会话要好得多。首先,检查登录名和密码是否正常。结果将$_SESSION['auth']设置为true或false。当然,&#39; auth&#39;是一个建议,将其更改为您喜欢的标识符:

// Initialize session control.
session_start();

// Check username and password. The function CheckCredentials() represents 
// your logic on checking if they are ok.
if(CheckCredentials($login, $pass))
  $_SESSION['auth'] = true;
else
  $_SESSION['auth'] = false;

然后在index.php脚本中再次使用session_start()(这将使会话数据成为&#34;通过当前脚本看到&#34;并修改您的初始if:

session_start();
if($_SESSION['auth'])
{

这在实际代码中更复杂,但这是一般的想法。

相关问题