开发者

Notice: Use of undefined constant

I am having issues with this login script i found (open source btw). For some reason i am getting the following errors: note where you see "---" i have removed something for a reason! Would appreciate it if someone helped me with this :)

Notice: Use of undefined constant dfengineid - assumed 'dfengineid' in C:\xampp\htdocs\---\resources\login.php on line 113

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\---\index.php:217) in C:\xampp\htdocs\dfengine.com\resources\login.php on line 113

Notice: Use of undefined constant dfenginekey - assumed 'dfenginekey' in C:\xampp\htdocs\---\resources\login.php on line 115

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\---\index.php:217) in C:\xampp\htdocs\dfengine.com\resources\login.php on line 115

Warning: Cannot modify header infor开发者_C百科mation - headers already sent by (output started at C:\xampp\htdocs\---\index.php:217) in C:\xampp\htdocs\dfengine.com\resources\login.php on line 121

 <?php 

// Connects to your Database 

 mysql_connect("localhost", "root", "---") or die(mysql_error()); 
 mysql_select_db("dfeuserdb") or die(mysql_error()); 

 //This code runs if the form has been submitted
 //Checks if there is a login cookie
 if(isset($_COOKIE['dfengineid']))
 //if there is, it logs you in and directes you to the members page
 { 
    $username = $_COOKIE['dfengineid']; 
    $pass = $_COOKIE['dfenginekey'];
    $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());

    while($info = mysql_fetch_array( $check ))  
    {
        if ($pass != $info['password']) {}
        else
        {
            header("Location: search.php");
        }
    }
 }

 //if the login form is submitted     
 if (isset($_POST['submit'])) { // if form has been submitted

    // makes sure they filled it in  
    if(!$_POST['username'] | !$_POST['pass']) {    
        die('You did not fill in a required field.');
    }

    // checks it against the database
    $check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());

    //Gives error if user dosen't exist
    $check2 = mysql_num_rows($check);
    if ($check2 == 0) {
        die('Username or Password is incorrect! Please <a href="index.php">try again</a>.');
    }

    while($info = mysql_fetch_array( $check )){
        $_POST['pass'] = stripslashes($_POST['pass']);
        $info['password'] = stripslashes($info['password']);
        $_POST['pass'] = md5($_POST['pass']);

    //gives error if the password is wrong

        if ($_POST['pass'] != $info['password']) {
            die('Username or Password is incorrect! Please <a href="index.php">try again</a>.');
        }
        else { 
            // if login is ok then we add a cookie 
            $_POST['username'] = stripslashes($_POST['username']); 
            $hour = time() + 3600; 
            setcookie(dfengineid, $_POST['username'], $hour); 
            setcookie(dfenginekey, $_POST['pass'], $hour);   
            //then redirect them to the members area 
            header("Location: members.php"); 
        } 
    } 
} 
else {   
 // if they are not logged in 
 ?> 

 <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post"> 
 <table border="0"> 
 <tr><td>Username:</td><td> 
 <input type="text" name="username" maxlength="40"> 
 </td></tr> 
 <tr><td>Password:</td><td> 
 <input type="password" name="pass" maxlength="50"> 
 </td></tr>    
 <tr><td colspan="2" align="right"> 
 <input type="submit" name="submit" value="Login"> 
 </td></tr> 
 </table> 
 </form> 

 <?php } ?> 

Note: issue resolved I placed the code in the wrong place and therefore got all these errors.


setcookie(dfengineid, $_POST['username'], $hour);
setcookie(dfenginekey, $_POST['pass'], $hour);

should be

setcookie('dfengineid', $_POST['username'], $hour);
setcookie('dfenginekey', $_POST['pass'], $hour);


setcookie(dfengineid, $_POST['username'], $hour); 

setcookie(dfenginekey, $_POST['pass'], $hour);  

You're using dfenginekey as a constant here, I think you meant to do this:

setcookie('dfengineid', $_POST['username'], $hour); 

setcookie('dfenginekey', $_POST['pass'], $hour);  

I edited your code, should work now!

<?php
// Connects to your Database 

mysql_connect("localhost", "root", "---") or die(mysql_error());
mysql_select_db("dfeuserdb") or die(mysql_error());

//This code runs if the form has been submitted
//Checks if there is a login cookie
if (isset($_COOKIE['dfengineid']))
//if there is, it logs you in and directes you to the members page
{
    $username = $_COOKIE['dfengineid'];
    $pass = $_COOKIE['dfenginekey'];
    $check = mysql_query("SELECT * FROM users WHERE username = '". mysql_real_escape_string($username)."'") or die(mysql_error());

    while ($info = mysql_fetch_array($check))
    {
        if ($pass != $info['password'])
        {

        }
        else
        {
            die('<META HTTP-EQUIV=Refresh CONTENT="0; URL=search.php">');
        }
    }
}

//if the login form is submitted     
if (isset($_POST['submit']))
{ // if form has been submitted
    // makes sure they filled it in  
    if (!$_POST['username'] | !$_POST['pass'])
    {
        die('You did not fill in a required field.');
    }

    // checks it against the database
    $check = mysql_query("SELECT * FROM users WHERE username = '" . $_POST['username'] . "'") or die(mysql_error());

    //Gives error if user dosen't exist
    $check2 = mysql_num_rows($check);
    if ($check2 == 0)
    {
        die('Username or Password is incorrect! Please <a href="index.php">try again</a>.');
    }

    while ($info = mysql_fetch_array($check))
    {
        $_POST['pass'] = stripslashes($_POST['pass']);
        $info['password'] = stripslashes($info['password']);
        $_POST['pass'] = md5($_POST['pass']);

        //gives error if the password is wrong

        if ($_POST['pass'] != $info['password'])
        {
            die('Username or Password is incorrect! Please <a href="index.php">try again</a>.');
        }
        else
        {
            // if login is ok then we add a cookie 
            $_POST['username'] = stripslashes($_POST['username']);
            $hour = time() + 3600;
            setcookie('dfengineid', $_POST['username'], $hour);
            setcookie('dfenginekey', $_POST['pass'], $hour);
            //then redirect them to the members area 
            die( '<META HTTP-EQUIV=Refresh CONTENT="0; URL=members.php">');
        }
    }
}
else
{
    // if they are not logged in 
    ?> 

    <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> 
        <table border="0"> 
            <tr><td>Username:</td><td> 
                    <input type="text" name="username" maxlength="40"> 
                </td></tr> 
            <tr><td>Password:</td><td> 
                    <input type="password" name="pass" maxlength="50"> 
                </td></tr>    
            <tr><td colspan="2" align="right"> 
                    <input type="submit" name="submit" value="Login"> 
                </td></tr> 
        </table> 
    </form> 

<?php } ?>


change the following lines from

setcookie(dfengineid, $_POST['username'], $hour);

setcookie(dfenginekey, $_POST['pass'], $hour); 

to

setcookie('dfengineid', $_POST['username'], $hour);

setcookie('dfenginekey', $_POST['pass'], $hour); 


first:

setcookie('dfengineid', $_POST['username'], $hour); 

instead of

setcookie(dfengineid, $_POST['username'], $hour); 

seccond: since you have output before the header you cannot redirect, illuminate the errors or use ob_start()


 setcookie('dfengineid', $_POST['username'], $hour); 
 setcookie('dfenginekey', $_POST['pass'], $hour);  

Using this code without qoutes gives you error.
next errros because of output of this errors

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜