Notice: Use of undefined constant
Ich habe Probleme mit diesem login-script, das ich gefunden (open source btw). Aus irgendeinem Grund bin ich immer die folgenden Fehler:
beachten Sie, wo Sie sehen, "- - - " habe ich entfernt, etwas für einen Grund! Würde es schätzen, wenn jemand mir geholfen, mit diesem 🙂
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 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 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 } ?>
Hinweis: Problem gelöst legte ich den code an der falschen Stelle und deshalb haben alle diese Fehler.
- Ich habe versucht, um loszuwerden, einige der das überschüssige Leerzeichen in diesem, aber ich wollte nicht zu manipulieren, zu viel mit ihm. Möchten Sie vielleicht in Betracht ziehen, das ein coding standard, though. Zum Beispiel: Ob offene Klammern für die if/while-Blöcke sind geöffnet, auf der Zeile der if-Anweisung oder auf die Zeile darunter; ob mit Tabulatoren oder Leerzeichen zum Einrücken
- Ich weiß 🙁
- Ich danke Ihnen, dass ich heruntergeladen habe, eine open-source-Skript und ich dachte, es war so viel weiß für ein Grund
- Nur ein Tipp, suchen Sie SQL-injection
- Danke rob ich mir bewusst bin, wie ein Ding, was sql-injection ist schwer zu tun mit diesem code ist etwas, was ich geplant haben, bevor Sie mit dem hochladen!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bist du mit dfenginekey wie hier eine Konstante, ich denke, du meintest dazu:
Bearbeitet ich Ihr code sollte jetzt funktionieren!
sollte
ändern Sie die folgenden Zeilen aus
zu
<?php
tag. In deinem Beispiel, ich sehe einen Platz vor der<?php
. Sie müssen zu entfernen.erste:
statt
seccond:
da müssen Sie ausgeben, bevor die
header
können Sie nicht umleiten, beleuchten die Fehler, oder verwenden Sieob_start()
Mit diesem code, ohne Anführungszeichen gesetzt werden, gibt Sie Fehler.
neben errros, weil der Ausgang dieser Fehler