JND3004 Geschrieben 26. Juni 2012 Teilen Geschrieben 26. Juni 2012 hallo leute, wie oben schon steht habe ich probleme. und zwar geht es um ein login/registrierfeld. 1. problem: registrieren die felder zum registrieren sind schon fertig, nur die haben bloß noch paar macken, z.b. die meldung wenn etwas falsch ist. den fehler finde ich einfach nicht, ich hab nähmlich alles nach tutorial gemacht. hier auch ein vid zu - erst ab 7:15min. schauen. ab dort wird der test gemacht wegen der fehlermeldung das wäre schonmal das erste problem mit den fehlermeldungen. ************** 2. problem: login wenn ich auf die login seite gehe, dann wird mir immer ein fehler angezeigt, aber ich weis einfach nicht was das soll, denn die { klammer gehört dort hin (s. php text) zeile 10: if(check_login() == false { zeile 11: require_once('login_markup_logged_out.php'); zeile 12: } else { zeile 13: require_once('login_markup_logged_in.php'); zeile 14: } und dann der fehlertext auf der seite: Parse error: syntax error, unexpected '{' in /data/multiserv/users/703938/projects/1873530/www/phpinclude/db/login.php on line 10 **************** so, momentan weis ich sonst nicht ob ich noch weitere probleme hab, da ich eh schon fehler hab, konnte ich ja nicht alles testen. hoffe ihr könnt mir i-wie weiter helfen wäre toll bis dann hoffe schon auf antworten ... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
iKonoClast Geschrieben 26. Juni 2012 Teilen Geschrieben 26. Juni 2012 Fehlt da in Zeile 10 nicht eine runde Klammer? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
JND3004 Geschrieben 26. Juni 2012 Autor Teilen Geschrieben 26. Juni 2012 Fehlt da in Zeile 10 nicht eine runde Klammer? weis ich nicht. wo soll sie dann hin? soll es dann so ausschauen? if(check_login()) == false { require_once('login_markup_logged_out.php'); } else { require_once('login_markup_logged_in.php'); } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
JND3004 Geschrieben 26. Juni 2012 Autor Teilen Geschrieben 26. Juni 2012 also wenn ich die runde klammer dort jzt hinsetze kommt dieser fehler Parse error: syntax error, unexpected T_IS_EQUAL in /data/multiserv/users/703938/projects/1873530/www/phpinclude/db/login.php on line 10 EDIT: denn in einem tutorial von ihm (wie bei problem 1) hatte ich es genau so gemacht. nur halt mein kram eingesetzt und so. aber es klappt einfach nicht Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
iKonoClast Geschrieben 26. Juni 2012 Teilen Geschrieben 26. Juni 2012 Also ich hätte sie ja hinter das false gesetzt, noch vor der geschweiften Klammer. Ich hab sowas aber schon ewig nicht mehr gemacht ... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
JND3004 Geschrieben 26. Juni 2012 Autor Teilen Geschrieben 26. Juni 2012 Also ich hätte sie ja hinter das false gesetzt, noch vor der geschweiften Klammer.Ich hab sowas aber schon ewig nicht mehr gemacht ... also die fehlermeldung ist schonmal weg und das .css design ist auch aufgetaucht dadurch. aber jzt sind dort andere fehler. inzwischen sind das schon ein paar mehr zeilen weil ich noch etwas hinzugefügt hab fehlermeldung 1: Parse error: syntax error, unexpected $end in /data/multiserv/users/703938/projects/1873530/www/phpinclude/db/function.php on line 39 [code] zeile 1: <?php zeile 2: zeile 3: function login($username, $password, $db, $salt) { zeile 4: $password = hash('sha256', $password.$salt); zeile 5: zeile 6: $sql = ' zeile 7: SELECT zeile 8: COUNT(*) zeile 9: FROM zeile 10: user zeile 11: WHERE zeile 12: Username = ? zeile 13: AND zeile 14: Password = ? zeile 15: '; zeile 16: zeile 17: $stmt = $db->prepare($sql); zeile 18: $stmt->bind_param('ss', $username, $password); zeile 19: $stmt->execute(); zeile 20: $stmt->bind_result($result); zeile 21: $stmt->fetch(); zeile 22: $stmt->close(); zeile 23: zeile 24: if($result == 1) { zeile 25: $_SESSION['logged_in'] = true; zeile 26: $_SESSION['username'] = $username; zeile 27: return true; zeile 28: zeile 29: } else { zeile 30: return false; zeile 31: } zeile 32: zeile 33: function check_login() { zeile 34: if(isset($_SESSION['logged_in']) && $_SESSION['logged_in'] === true) { zeile 35: return true; zeile 36: } zeile 37: return false; zeile 38: zeile 39: ?> Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
iKonoClast Geschrieben 26. Juni 2012 Teilen Geschrieben 26. Juni 2012 Damit bin ich auch schon überfragt. Bevor ich noch weiter Müll von mir gebe, solltest du besser auf eine Antwort von jmden warten, der sich damit 100%ig auskennt. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
JND3004 Geschrieben 26. Juni 2012 Autor Teilen Geschrieben 26. Juni 2012 naja, also das mit der runden klammer hatte ich schonmal ausprobiert aber wahrscheinlich woanders ... naja. sonst hab ich die anderen fehler auch schon behoben. nur noch der regis fehler und der eine login fehler Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ocame Geschrieben 26. Juni 2012 Teilen Geschrieben 26. Juni 2012 Es fehlt jeweils ein schleißte geschweifte Klammer auf Zeile 32 und 38 um die entsprechende Funktionen zu vervollständigen. was meinst du mit "nur noch der regis fehler und der eine login fehler"? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
JND3004 Geschrieben 26. Juni 2012 Autor Teilen Geschrieben 26. Juni 2012 k, danke also der login funkt schonmal. aber ob ich mich auch wirklich einloggen weis ich noch nicht, da ich noch nicht in der datenbank stehe. ich wollte es gerne über mein registration formular testen. den fehler zur registration findest du in meinem anfangsthread Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ocame Geschrieben 26. Juni 2012 Teilen Geschrieben 26. Juni 2012 Du sagst du das es Macken hat, gibst aber keine Anhaltspunkte wo sie liegen können, wie z.b. das Skript. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
JND3004 Geschrieben 27. Juni 2012 Autor Teilen Geschrieben 27. Juni 2012 hier ist jzt z.b. die registration seite http://blockentertainment.de.ki/phpinclude/db/registration.php und wenn man jzt z.b. dort ohne etwas auszufüllen auf 'registrieren' klickt, sollte über dem formular eine fehlermeldung angezeigt werden. ich weis jzt nur bloß nicht, wie ich das hier zeigen soll oder besser erklären soll ... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
din1031 Geschrieben 27. Juni 2012 Teilen Geschrieben 27. Juni 2012 Also da ist keine Fehlermdlung . Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
JND3004 Geschrieben 27. Juni 2012 Autor Teilen Geschrieben 27. Juni 2012 Also da ist keine Fehlermdlung . also, das hab ich auch schon bemerkt. aber dort sollte eigentlich eine kommen. bei dem login kommen die fehlermeldungen richtig. nur wieso kommen keine bei der registration? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ocame Geschrieben 28. Juni 2012 Teilen Geschrieben 28. Juni 2012 Wenn wir den Quelltext nicht kennen, weil du uns ihn nicht zeigst, können wir dir da nur schwer helfen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
JND3004 Geschrieben 28. Juni 2012 Autor Teilen Geschrieben 28. Juni 2012 hier der code wo das formular und die fehlermeldung angezeigt werden soll <!-- FORMULAR --> <div style="border:2px solid black; padding: 15px; background: #678D0C"> <?php if(isset($error_msg) && !empty($error_msg)) : ?> <div style="border:2px solid red; padding: 10px"> <?php echo $error_msg; ?> </div> <?php endif; ?> <?php if(isset($success_msg) && !empty($success_msg)) : ?> <div style="border:2px solid lawngreen; padding: 10px"> <?php echo $success_msg; ?> </div> <?php endif; ?> <form action="" method="post" > <!-- USERNAME --> <label for="username"> <b>Benutzername*:</b> </label><br/> <input type="text" name="username" maxlength="20" size="50" id="username" value="" /><br/> Der Benutzername muss mindestens 3 und darf maximal 20 Zeichen lang sein.<br/> <br/> <!-- PASSWORT --> <label for="pass1"> <b>Passwort*:</b> </label><br/> <input type="password" name="pass[]" maxlength="30" size="50" id="pass1" value="" /><br/> Ein sicheres Kennwort sollte mindestens 8 Zeichen lang sein.</br> <br/> <!-- PASSWORT WDH. --> <label for="pass2"> <b>Passwort wdh.*:</b> </label><br/> <input type="password" name="pass[]" maxlength="30" size="50" id="pass2" value="" /><br/> Bitte wiederholen Sie zur Sicherheit die Eingabe Ihres Kennworts!<br/> <br/> <!-- EMAIL ADRESSE --> <label for="email1"> <b>E-Mail-Adresse*:</b> </label><br/> <input type="text" name="email[]" size="50" id="email1" value="" /><br/> Bitte geben Sie Ihre E-Mail-Adresse ein!<br/> <br/> <!-- EMAIL ADRESSE WDH. --> <label for="email2"> <b>E-Mail-Adresse wdh.*:</b> </label><br/> <input type="text" name="email[]" size="50" id="email2" value="" /><br/> Bitte wiederholen Sie zur Sicherheit die Eingabe Ihrer E-Mail-Adresse!<br/> <br/> <input type="submit" name="submit" value="Registrieren" /> </div> </form> <br/> <i>Wo ein * ist, ist Pflicht!</i><br/><br/><br/><br/> hier die "logic" von der registration <?php if(!isset($_POST['submit'])) return; if(isset($_POST['username']) || !isset($_POST['pass']) || !isset($_POST['email']) || empty($_POST['username']) || empty($_POST['pass']) || empty($_POST['email'])) { $error_msg = "Das Formular wurde nicht vollständig ausgefüllt."; return; } // EMAIL if($_POST['email'][0] !== $_POST['email'][1]) { $error_msg = "Die E-Mail-Adressen stimmen nicht überein."; return; } // PASSWORT if($_POST['pass'][0] !== $_POST['pass'][1]) { $error_msg = "Die Passwörter stimmen nicht überein."; return; } if(strlen($_POST['pass']) > 30) { $error_msg = "Das Passwort ist zu lang."; return; } if(strlen($_POST['pass']) < 8) { $error_msg = "Das Passwort ist zu kurz."; return; } $_POST['pass'] = hash('sha256', $_POST['pass'][0].$salt); //USERNAME if(strlen($_POST['username']) > 20) { $error_msg = "Der Benutzername ist zu lang."; return; } if(strlen($_POST['username']) < 3) { $error_msg = "Der Benutzername ist zu kurz."; return; } $_POST['username'] = trim($_POST['username']); if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $error_msg = "Die E-Mail-Adresse ist ungültig."; return; } $user_ip = ip2long ($_SERVER['RENOTE_ADDR']); $sql = ' INSERT INTO user (Username, Password, Email, IP, date) VALUES (?, ?, ?, ?, NOW())'; $stmt = $db->prepare($sql); $stmt->bind_param('sssi', $_POST['username'], $_POST['pass'], $_POST['email'], $user_ip); if(!$stmt->execute()) { if(strpos($db->error, 'Duplicate') !== false) { $error_msg = "Der Benutzername oder die E-Mail wurde bereits verwendet."; } else { $error_msg = "Es ist ein Fehler aufgetreten."; } return; } $stmt->close(); $success_msg = "Das Benutzerkonto ".htmlspecialchars($_POST['username'])." wurde erfolgreich angelegt"; ?> Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ocame Geschrieben 28. Juni 2012 Teilen Geschrieben 28. Juni 2012 Bei logic fehlt ein ! vor dem isset am Punkt if(isset($_POST['username']). Aber das dürfte nicht das Problem sein. Ich stelle mal eine Vermutung auf. Du hast die registration.php nicht so wie im ersten Video gemacht, sprich die PHP mit der Logik per require_once vor dem ganzen Code zeug eingebunden? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
JND3004 Geschrieben 28. Juni 2012 Autor Teilen Geschrieben 28. Juni 2012 wenn ich beim if(isset($_POST['username']) ein ! vor das isset setze bringt mir das soweit eigentlich noch nichts. und die registration.php habe ich mit den beiden auch verbunden, ist doch klar. sieh selber <?php $db = new mysqli('localhost', '********', '*********', 'db1873530-dbloginregis'); $salt = "**********************************"; require_once('registration_markup.php'); require_once('registration_logic.php'); ?> ich seh auch das er neue fehler meint 1. Warning: strlen() expects parameter 1 to be string, array given in /data/multiserv/users/703938/projects/1873530/www/phpinclude/db/registration_logic.php on line 26 2. Warning: strlen() expects parameter 1 to be string, array given in /data/multiserv/users/703938/projects/1873530/www/phpinclude/db/registration_logic.php on line 31 der code dazu if(strlen($_POST['pass']) > 30) { $error_msg = "Das Passwort ist zu lang."; return; } if(strlen($_POST['pass']) < 8) { $error_msg = "Das Passwort ist zu kurz."; return; } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ocame Geschrieben 28. Juni 2012 Teilen Geschrieben 28. Juni 2012 das logic muss vor markup eingebunden sein und bei dem Problem mit $_POST['pass'] muss du noch ein [0] dahinter setzten also $_POST['pass'][0] Wenn das ! fehlt kommt immer die Meldung wenn ein Benutzername angeben ist. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
JND3004 Geschrieben 28. Juni 2012 Autor Teilen Geschrieben 28. Juni 2012 also die fehlermeldungen werden schonmal angezeigt danke aber er meint das meine email adresse ungültig wäre. warum? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.
Wende dich an einen Admin, wenn du in diesem Thema etwas posten möchtest.