Archiv verlassen und diese Seite im Standarddesign anzeigen : Login-Skript: kann mich nicht anmelden
bender1912 14-11-2007, 16:53 Hi,
ich wollte auf meiner webseite einen bereich nur für freunde einrichten. Somit hab ich mich durch das
Tutorial - Wie erstelle ich ein LogIn-Skript?
http://www.php-resource.de/tutorials/read/33/1/
gearbeitet.
Leider kommt immerwieder die Fehlermeldung:
"Sorry, aber dieses Passwort ist falsch!"
Ich hab mir auch schon das letzte Thema angeschaut und etwas rumprobiert, aber ich habe leider keine ahnung von php und somit hab ich es nicht hinbekommen.
kann mir jemand weiterhelfen?
jahlives 14-11-2007, 17:11 Du hast ein Problem mit register_globals Bei dir sind diese vermutlich off und das Script setzt so wie es steht aber ON voraus
Passe mal Zeile 46 in index.php folgendermassen an
//anstatt
$password = md5($password);
//schreibst du
$password = md5($_POST['password']);
Uberigens hätte dich das error_reporting, entsprechend gesetzt, in diesem Fall mit einer Warning beglückt und dich auf die fehlerhafte Zeile hingewiesen.
Gruss
tobi
bender1912 14-11-2007, 17:23 klasse.
dank dir für die schnelle antwort. hat geklappt.
wo muss ich denn das error_reporting hinschreiben ????
nun hab ich aber noch ein problem:
wenn ich mich eingeloggt habe, kommt folgendes:
"LogIn erfolgreich! :-)"
und der link: "Weiter"
wenn ich nun aber auf den link klicke, komme ich zurück zur passwortabfrage und nicht auf die geschützte seite.
kann mir jemand nochmals helfen ?
jahlives 14-11-2007, 17:32 wo muss ich denn das error_reporting hinschreiben ????
Nur während der Entwicklung als erste Zeile deiner Scripts
error_reporting(E_ALL);
Gruss
tobi
bender1912 14-11-2007, 17:47 achso, danke.
aber nun hab ich noch ein zweites problem:
wenn ich mich eingeloggt habe, kommt folgendes:
"LogIn erfolgreich! :-)"
und der link: "Weiter"
wenn ich nun aber auf den link klicke, komme ich zurück zur passwortabfrage und nicht auf die geschützte seite.
kann mir jemand nochmals helfen ?
jahlives 14-11-2007, 17:55 Passe den Code mal folgendermassen an
[...]
else{
57
58 $_SESSION['user'] = $result['user'];
59 echo '<p align="center">LogIn erfolgreich! :-)<br><br><a href="sichere_seite.php?'.strip_tags(SID).'">Weiter</a></p>';
60 }
Gruss
tobi
bender1912 14-11-2007, 18:22 Recht herzlichen Dank !!!!!!!!!
Hat geklappt!
Mercie
raydlight 28-11-2007, 17:50 Hallo, ich habe in anderes Problem.
Wenn ich auf neue Benutzer anlegen drücke kommt immer dieser Meldung: "Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!"
Noch eine Frage, ich vertehe nicht was man mit der login.sql mache. Es steht in der Beschreibung dass die Datei nicht mit auf der Server geladen soll.
Wie soll ich mit PHPMyAdmin die Tabellenstrultur erstellen?
Vielen Dank
ministry 28-11-2007, 18:01 Ich vermute mal stark, dass du sie mit PhpMyAdmin importieren kannst.
wurde schonmal angeregt, den Tutorialbereich aufzuräumen? register-globals-login-Tutorials sind mittlerweile das gegenteil von empfehlenswert, und alle naselang fragt jemand sowas.
raydlight 28-11-2007, 18:32 Hallo,
ich habe das Problem gelöst, ich habe nicht gewusst dass man auf der phpMyAdmin seite den Code umwandeln kann.
jetzt habe eine andere Frage, kann man diesen login so verändern dass immer wenn ein Benutzer sich einloggt, wird sein Name in der Liste erscheinen und wenn er sich ausloggt, verschwindet dann sein Name selbst von der Liste?
Oder eine andere methode ist, dass die Namen dableiben dafür daneben soll bei online ein grüne Punkt aufleuchten und bei ausloggen einen roten Punkt aufleuchten.
Vielen Dank
PHP-Desaster 28-11-2007, 19:39 Dann musst du das in der Datenbank entsprechend speichern. Um zu verhindern, dass ein Benutzer einfach den Browser schließt und die ganze Zeit als Online angezeigt wird, kannst du bei jeder Aktion den aktuellen Timestamp in die Benutzertabelle schreiben. Bei der Ausgabe sind dann entsprechend alle Online, die innerhalb eines Intervalls liegen, beispielsweise 5 Minuten!
sleepy00 02-04-2008, 19:37 Hallo Leute!
ich muss wirklich sagen, wirklich lässige Seite hier, beschäftige mich erst seit ein paar Wochen mit PHP und hab mir das schon von q-net angeschaut, aber dieses Login-Skript von Andreas Zimare hat mir wirklich zugesagt.
http://www.php-resource.de/tutorials/read/33/1/
Ich hab das gleiche Problem wie mein Vorredner:
Wenn ich auf neue Benutzer anlegen drücke kommt immer dieser Meldung: "Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!"
ich habe das Problem gelöst, ich habe nicht gewusst dass man auf der phpMyAdmin seite den Code umwandeln kann.
Jetz würde ich gerne wissen, wie das Problem gelöst worden ist und wie ich auf der phpMyAdmin seite den Code (welchen Code??) umwandeln kann.
lg und thx im voraus
sleepy00
jahlives 02-04-2008, 22:21 Es meint damit dass du SQL Code direkt in PHPMyAdmin ausführen kannst. Sprich den Inhalt des Files per c&p im Eingabereich von PMA eingeben. Logge dich in PMA ein, wähle die entsprechende Datenbank und klick dann oben auf SQL. Im folgenden pastest du den Inhalt der SQL Datei rein und klickst auf Absenden/Ausführen.
Wenn alles klappt sollte die entsprechende Tabelle in der DB erstelt werden und du kannst loslegen
Gruss
tobi
sleepy00 02-04-2008, 22:49 danke, das weiß ich schon *g*
aber würd gerne interssieren, wie ich die Fehlermeldung weg bekommen würde eim erstellen eines neuen Users:
Hier der Code
<?php
error_reporting(E_ALL);
session_start();
if(!session_is_registered('user') || $_SESSION['user'] == "") {
header("location:index.php");
die;
}
require("connect.inc.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Neuen Benutzer anlegen</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?php if(!isset($_POST['submit'])) { ?>
<form action="<?php $PHP_SELF ?>" method="post">
<table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2">
<b>Neuen Benutzer anlegen</b>
</td>
</tr>
<tr>
<td width="170" bgcolor="#e7e7e7">Benutzername</td>
<td width="230" bgcolor="#ffffff"><input type="text" name="username" class="input"<?php if($_POST['username'] != "") { echo ' value="'.$_POST['username'].'"'; } ?> size="20"></td>
</tr>
<tr>
<td width="170" bgcolor="#e7e7e7">Passwort</td>
<td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
</tr>
<tr>
<td width="170" bgcolor="#e7e7e7">Passwort wiederholen</td>
<td width="230" bgcolor="#ffffff"><input type="password" name="password2" size="20" class="input"></td>
</tr>
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2">
<input type="submit" name="submit" value="Benutzer anlegen" class="button">
</td>
</tr>
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2">
<a href="sichere_seite.php">Zurück zur Admin-Seite</a>
</td>
</tr>
</table>
</form>
<?php
}elseif(!isset($_POST['username']) || $_POST['username'] == ""){
echo '<p align="center">Einen Benutzernamen brauchen wir schon ;-)<br><br><a href="neu.php">Zurück</a></p>';
}elseif(!isset($_POST['password']) || $_POST['password'] == "") {
echo '<p align="center">Ein Passwort brauchen wir schon ;-)<br><br><a href="neu.php">Zurück</a></p>';
}elseif($_POST['password'] != $_POST['password2']) {
echo '<form action="neu.php" method="post">';
echo '<p align="center">Die Passwörter stimmen nicht überein!<br><br>';
echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
echo '<input type="submit" name="zurueck" value="Zurück"></p>';
echo '</form>';
}else{
$query = @mysql_query("SELECT user FROM users WHERE user = '".$_POST['username']."'");
$result = @mysql_fetch_array($query);
if($_POST['username'] == $result['user']) {
echo '<p align="center">Sorry, dieser Benutzername ist leider schon vergeben!<br><br><a href="neu.php">Zurück</a></p>';
die;
}else{
$username = $_POST['username'];
$pass = md5($_POST['password']);
if($insert = @mysql_query("INSERT INTO USERS SET user = '$username', pass = '$pass'")) {
echo '<p align="center">Der neue Benutzer wurde erfolgreich angelegt!<br><br><a href="sichere_seite.php">Zur Admin-Seite</a></p>';
}else{
echo '<p align="center">Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!<br><br><a href="neu.php">Zurück</a></p>';
}
}
}
?>
</body>
</html>
thx im voraus
lg sleepy00
jahlives 03-04-2008, 10:05 1. PHP-Code-Tags verwenden
2. Alle @ vor den Funktionen entfernen
3. OR die(mysql_error()) benutzen um MySql Probleme einzugrenzen
sleepy00 03-04-2008, 14:18 1. PHP-Code-Tags verwenden
Die werde eh verwendet: <?php... ?>
2. Alle @ vor den Funktionen entfernen
Wurden entfernt, hat nichts gebracht
3. OR die(mysql_error()) benutzen um MySql Probleme einzugrenzen
Da muss ich ja dann mit Strings arbeiten wie $result oder? da muss ja alles umschreiben?!?
lg
jahlives 07-04-2008, 13:26 Die werde eh verwendet: <?php... ?>
Nicht diese Tags, sondern jene des Forums z.B.
<?php
echo 'Hallo Welt';
?>
Und dein error_reporting() ist voll aufgedreht wie bereits in diesem Thread erwähnt und es auch in den Regeln steht?
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors','1');
Zeigt PHP keine Fehlermeldungen?
Gruss
tobi
sleepy00 10-04-2008, 10:40 Hallo
Mein Error-Report habe ich umgstellt auf
error_reporting(E_ALL);
Beim Öffnen der Seite neu.php beomme ich bei Username folgendes Komment dazu:
Undefined index: username in /data/apache/users/kilu.de/cendens/www/neu.php on line 36
Line 35 und 36 =
<td width="230" bgcolor="#ffffff"><input type="text" name="username" class="input"<?php if($_POST['username'] != "") { echo ' value="'.$_POST['username'].'"'; } ?> size="20"></td>
Hier nochmal der code
<?php
error_reporting(E_ALL);
session_start();
if(!session_is_registered('user') || $_SESSION['user'] == "") {
header("location:index.php");
die;
}
require("connect.inc.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Neuen Benutzer anlegen</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div style="width:100%; border:#000000 1px solid;">
<div style="width:30%; float:left;">
<?php
include "menu.php";
?>
</div>
<?php if(!isset($_POST['submit'])) { ?>
<form action="<?php $PHP_SELF ?>" method="post">
<table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="left">
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2">
<b>Neuen Benutzer anlegen</b>
</td>
</tr>
<tr>
<td width="170" bgcolor="#e7e7e7">Benutzername</td>
<td width="230" bgcolor="#ffffff"><input type="text" name="username" class="input"<?php if($_POST['username'] != "") { echo ' value="'.$_POST['username'].'"'; } ?> size="20"></td>
</tr>
<tr>
<td width="170" bgcolor="#e7e7e7">Passwort</td>
<td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
</tr>
<tr>
<td width="170" bgcolor="#e7e7e7">Passwort wiederholen</td>
<td width="230" bgcolor="#ffffff"><input type="password" name="password2" size="20" class="input"></td>
</tr>
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2">
<input type="submit" name="submit" value="Benutzer anlegen" class="button">
</td>
</tr>
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2">
<a href="sichere_seite.php">Zurück zur Admin-Seite</a>
</td>
</tr>
</table>
</form>
<?php
error_reporting(E_ALL);
}elseif(!isset($_POST['username']) || $_POST['username'] == ""){
echo '<p align="center">Einen Benutzernamen brauchen wir schon ;-)<br><br><a href="neu.php">Zurück</a></p>';
}elseif(!isset($_POST['password']) || $_POST['password'] == "") {
echo '<p align="center">Ein Passwort brauchen wir schon ;-)<br><br><a href="neu.php">Zurück</a></p>';
}elseif($_POST['password'] != $_POST['password2']) {
echo '<form action="neu.php" method="post">';
echo '<p align="center">Die Passwörter stimmen nicht überein!<br><br>';
echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
echo '<input type="submit" name="zurueck" value="Zurück"></p>';
echo '</form>';
}else{
$query = mysql_query("SELECT user FROM users WHERE user = '".$_POST['username']."'");
$result = mysql_fetch_array($query);
if($_POST['username'] == $result['user']) {
echo '<p align="center">Sorry, dieser Benutzername ist leider schon vergeben!<br><br><a href="neu.php">Zurück</a></p>';
die;
}else{
$username = $_POST['username'];
$pass = md5($_POST['password']);
if($insert = mysql_query("INSERT INTO USERS SET user = '$username', pass = '$pass'")) {
echo '<p align="center">Der neue Benutzer wurde erfolgreich angelegt!<br><br><a href="sichere_seite.php">Zur Admin-Seite</a></p>';
}else{
echo '<p align="center">Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!<br><br><a href="neu.php">Zurück</a></p>';
}
}
}
?>
</body>
</html>
ich weiß leider nicht, wie ich mit der Schriftart dort umgehen muss...
thx im voraus
jahlives 10-04-2008, 11:08 Statt
<td width="230" bgcolor="#ffffff"><input type="text" name="username" class="input"
<?php if($_POST['username'] != "") { echo ' value="'.$_POST['username'].'"'; } ?> size="20"></td>
besser
<td width="230" bgcolor="#ffffff"><input type="text" name="username" class="input"
<?php if(isset($_POST['username'])) { echo ' value="'.$_POST['username'].'"'; } ?> size="20"></td>
Und die Fehlermeldung beim Erstellen des Benutzers muss du genauer untersuchen
$sql = "INSERT INTO USERS SET user = '$username', pass = '$pass'";
if($insert = mysql_query($sql) OR die(myslq_error())) {
echo '<p align="center">Der neue Benutzer wurde erfolgreich angelegt!<br><br><a href="sichere_seite.php">Zur Admin-Seite</a></p>';
}else{
echo '<p align="center">Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!<br><br><a href="neu.php">Zurück</a></p>';
}
Wird ein Fehler bezüglich der Query angezeigt?
Gruss
tobi
@jahlives du hast da einen Buchstaben-Dreher ;)
if($insert = mysql_query($sql) OR die(myslq_error())) {
Ich befürchte das wird sonst wieder einfach so kopiert....
hi leute mein erstes post hier
nach dem ich nach ein wenig durchstöbern des forums die problematik mit der anmeldung ( pw ist falsch) aus dem weg geräumt habe tritt bei mir wenn ich mich löschen will diese fehlermeldung aus dem deleteuser.php
---Kann kein Objekt aus der Abfrage bilden!----
$result = @mysql_fetch_object($query) or die("Kann kein Objekt aus der Abfrage bilden!");
anmeldung , neuen user anlegen , alle registrierte user anzeigen funktioniert tadellos
wäre für tipps dankbar
grüsse
Bitte diesen Thread hier mal befolgen:
http://www.php-resource.de/forum/showthread.php?s=&threadid=50454
1) @ hat da nichts zu suchen.
2) Die selbst erfundene Fehlermeldung ist totaler Unsinn, du könntest auch schreiben "Parse Error" das wäre vermutlich ähnlich falsch und bringt dich dem eigentlichen Problem auch nicht näher.
|