![]() |
Anzeige:
|
|
|||||||
| PHP/MySQL Alles rund um die Programmiersprache PHP sowie MySQL. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 16.11.2006
Beiträge: 20
|
Hallo Gemeinde,
ich möchte auf meiner Webseite einen einfachen Loginbereich erstellen und hoffe, dass mich jemand unterstützen kann, da ich im Bereich SQL und PHP nicht firm bin und mir die Suche zu komplizierte Ergebnisse liefert Also ich möchte einen einfachen Login mit 2 Feldern, Name und Passwort. Diese Daten möchte ich vorab festlegen ohne dass sich Besucher selbst anmelden können. Nur auf Anfrage werden die Daten dann mir weitergegeben. Ich habe bereits eine DB angelegt und nun stehe ich vor einem großen Berg. Wie muss die Tabelle mit den 2 Feldern definiert sein? Wie binde ich diese DB dann in meine Loginseite ein? Wer kann mir Hinweise zur PHP-Seite geben – kennt jemand einen einfaches, deutsches Tutorial? Danke schon mal für Eure Zeit, LG dennis |
|
|
|
|
|
|
#2 (Direktlink) |
|
Dauergast
Registriert seit: 28.11.2008
Beiträge: 1.197
|
da ....jede Menge Tips
|
|
|
|
|
|
#3 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 30.07.2010
Ort: An der Nordseeküste... ^^
Beiträge: 132
|
Also der Google tipp ist schon mal nicht schlecht
Also es ist nicht weiter schwer ein paar kleine befehle reichen dir da schon. Aber erstmal hier ein paar Seiten die dich weiter bringen könnten: Alles was mit MYSQL selber zu tun hat: MySQL :: Developer Zone Alles rund im PHP: PHP: Hypertext Preprocessor Zunächst baust du eine Verbindung zu deinem MYSQL-Server auf. Befehl: mysql_connect() Danach stellst du eine verbindung zu deiner Datenbank her (da du ja mehrere haben kannst) Befehl: mysql_select_db() So nun noch die passenden Daten einsetzen und die Verbindung steht! PHP-Code:
Befehl: mysql_query() Die dort gewonnenen Daten musst du nun ich eine Variable laden. (Variablen beginnen in PHP immer mit einem $) Befehl: mysql_fetch_array() oder mysql_fetch_row() (mysql_fetch_array() ist jedoch gemütlicher) Wenn du also dein Formular schon hast (in HTML)... HTML-Code:
<form action="login.php" method="post"> <input type="text" name="login_name"> <input type="password" name="login_pass"> <input type="submit" value="Login"> </form> Eine Abfrage mit mysql_query ist recht einfach PHP-Code:
FROM sagt wie die Tabelle heißt. (ich habe sie user getauft) WHERE filtert den/die Datensatz raus den/die du haben willst. In diesem Fall willst du nur einen Datensatz erhalten da es einen Benutzernamen nur einmal gibt. Bei WHERE nutzt du Logische operatoren. also = oder <= usw. ungleich schreibt man != und Identisch == (wobei Identisch bei MYSQL nicht vorhanden ist) Also kann deine abfrage wie folgst aussehen wenn deine Datenbank folgende Spalten hat: id_user, nick, passwort, real_name PHP-Code:
Das war die abfrage. Nun musst du nur noch überprüfen ob der User existiert und das Passwort richtig war. Dies geht recht einfach mit mysql_num_rows() und einer if abfrage ob der wert == 1 ist. Dann setzt du am besten noch eine Session oder einen COOKIE damit du auch eingeloggt bleibst. Ansonsten musst du dich nach jedem weiteren Klick neu einloggen. Da helf ich dir nun gerade aber nicht. Versuch das mal selber herraus zu finden. Wenn du nicht weiter kommst kannst du dich ja immernoch mal melden. Nächstest mal schickst du aber bitte deinen schon vorhandenes Script und dienen Tabellenaufbau mit. So kann man einfacher helfen ohne raten zu müssen mysql_close(); ob_start (); session_start (); $_SESSION[] setcookie(); $_COOKIE[] Achja diese Methode ist wirklich sehr simpel und auch sehr unsicher also für just4fun ok aber für sensiblere Daten solltest du dies nicht verwenden! Viel spaß beim Bastellen |
|
|
|
|
|
#4 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 16.11.2006
Beiträge: 20
|
Hallo,
Danke vielmals für die Hilfe! Ich habe jetzt folgendes gesucht-gefunden-kopiert-angepasst.... aber es klapp nicht so ganz. Nach der Eingabe von Benutzer und Kennwort gelange ich zu der Folgeseite, wo mir allerdings, nach Klick auf die "testseite" angezeigt wird, dass ich nicht angemeldet sei Dies dürfte ja nicht passieren - wo liegt der Fehler? Logindaten sind ausge-xt Anbei meine Codes der 4 PHP-Seiten: PHP-Code:
Geändert von Frabbing (14.02.2011 um 19:03 Uhr) Grund: Codetags gesetzt |
|
|
|
|
|
#5 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 30.07.2010
Ort: An der Nordseeküste... ^^
Beiträge: 132
|
hi also erstmal bitte ich dich dein Script in einen PHP Tag hier im Form zu laden!
Öffne mit [PHP ] und schließe mit[/PHP ] (Ohne das leerzeichen) Oder nutze diesen Button im Editor: ![]() Dann haben wir auch eine Formatierung und es ist einfacher zu sehen was evtl. falsch ist! Ehrlich gesagt habe ich nicht die lust das teil neu zu formatiren wenn das eig. schon formatiert ist Ich habe das script mal überflogen. Ich weiß nciht ob das nicht evtl ein bissel überzogen ist für deine zwecke aber naja ^^ Versuchs mal so: login.php PHP-Code:
Wenn JA dann klick auf deinen Link. In deiner (geschützten Datei) legst du unter session_start(); das gleiche Echo wie oben und schaust dir die nummer an. So grenzen wir den Fehler immer weiter ein bis wir wissen an welcher Funktion es evtl. liegen kann oder an welcher Abfrage! |
|
|
|
|
|
|
#6 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 16.11.2006
Beiträge: 20
|
Hallo ruNN0r,
mit Deiner login.php funzt es nun, cool!!! Habe auch die Nummer angezeigt bekommen!!! Mal eine andere Frage: ist diese Art des Logins sicher? welche Mängel bzw. Sicherheitshinweise gibt es dabei? LG |
|
|
|
|
|
#7 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 30.07.2010
Ort: An der Nordseeküste... ^^
Beiträge: 132
|
jaein. also für dich ausreichend denke ich.
Aber du speicherst lediglich die session id in der Datenbank! Man kann dieses Sessionid jedoch "klauen". Wenn ich also deine SessionID kenne (deine aktuelle ODER du hast dich nicht ausgeloggt) dann kann ich mich mit deiner SessionID theoretisch einloggen. Sessions sind echt eine verzwickte geschichte!!! Ich bin kein Profi in der PHP Programmierung und verstehe es auch noch nicht 100%ig! Aber Tatsache ist: Man kann diese ID klauen und sich für einen anderen ausgeben! Da du jedoch deine Daten nicht per URL übergibst (deine ID) findet man die sooo einfach auch keiner raus. Wenn du deine register_globals nun noch auf OFF hast und immer schon mit $_GET[] und $_POST[] arbeitest sollte es für dich reichen. Ansonsten musst du die SessionID verschlüssel! Dazu findest du hier einige Infos: Session Sicherheit - PHP Forum: phpforum.de kleine Tip: Leg ein weiteren Tupel (Spalte) in deiner Tabelle an! Dort schreibst du die Browser infos rein Befehl: $_SERVER['HTTP_USER_AGENT']; (pack den einfach mal so in eine datei: echo $_SERVER['HTTP_USER_AGENT']; Dann siehst du was ich meine) Dieses Feld überprüfst du zusammen mit der SID (sessionid). Das bietet dir schon ein bissel mehr sicherheit! Wenn dann einer sich einloggen will MUSS er auch diese Werte fälschen. Ist aber auch keine Prikelnde Lösung nur eine einfache! Geändert von ruNN0r (14.02.2011 um 20:20 Uhr) |
|
|
|
|
|
#8 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 16.11.2006
Beiträge: 20
|
Servus,
ich muss bezüglich der Funktionalität doch etwas zurückrudern. Der Login hat beim ersten Test funktioniert, jedoch "spinnt" das Skriot etwas herum, wenn ich es mal so formulieren darf. Im IE beispielsweise geht esüberhaupt nicht und im FF nur noch sporadisch. Dabei habe ich nichts weiter getan, als den PHP-Code in den Body meiner Seiten engebaut. Ich verzweifel... Desweitern würde mich interessieren, wie ich direkt auf den geschützen Bereich nach Login weiterleiten kann, anstatt diesen noch einmal zu verlinken. Danke vielmals im Voraus!! |
|
|
|
|
|
#9 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 30.07.2010
Ort: An der Nordseeküste... ^^
Beiträge: 132
|
hmm also direkt nach dem Login weiterleiten ist einfach:
PHP-Code:
WICHTIG: Bei der headerweiterleitung darf zuvor KEINE ausgabe stattfinden. Also kein Echo! Was eh keinen sinn machen würde da er direkt weiterleiten würde bevor man das lesen kann ;D Also sieht deine LoginPHP so aus: PHP-Code:
Liegt deine "zu schützende Seite" auf dem Server? oder einer anderen Domain? Ich weiß die Frage klingt doof aber das Problem hatte schon mal jemand ansonsten wüsste ich so auch nicht weiter! |
|
|
|
|
|
#10 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 16.11.2006
Beiträge: 20
|
Hallo,
Cookies werden alle akzeptiert und dir zu schützende seite liegt auf dem selben Server, gleiche Domain. LG |
|
|
|
|
|
|
#11 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 04.11.2010
Beiträge: 110
|
Also, ich würde an deiner Stelle ein paar Grundlagen von Php lernen, am Ende hast du noch irgend einen Code den du nicht kapierst und voller Fehler bzw. Sicherheitslücken ist. Für den Einstieg ist so ein kleines Loginscript perfekt als Übung geeignet.
Ich kann dir eigentlich 2 Tutorials empfehlen: Quakenet/#php Tutorial - de - Einleitung -> einfach erklärt ist aber schon mehr als du brauchst (obwohl es nichts schadet wenn du mehr weißt Nützliche Funktionen für Arrays - PHP-Kurs.com - PHP programmieren lernen -> nicht so ganz gut erklärt, reciht aber völlig für deine Bedürfnisse |
|
|
|
|
|
#12 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 01.06.2011
Ort: München
Beiträge: 23
|
Hallo,
Würde es denn auch ohne MySQL gehen? Wäre nämlich um vieles einfacher Liebe grüße, Kurt |
|
|
|
|
|
#13 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 30.07.2010
Ort: An der Nordseeküste... ^^
Beiträge: 132
|
Es basiert schon auf MySQL. Jedoch hat Dennis77 die anderen Seiten, seines Scriptes, aus seinem Post entfernt.
__________________
Die deutsche Rechtschreibung ist Freeware, Du darfst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen. |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| einfacher Visitenkartendruck | horsthorn | Helfer & Tools | 4 | 12.11.2010 12:20 |
| Alt + F4 ...geht es einfacher ? | joke | Windows XP | 5 | 16.07.2009 00:29 |
| einfacher counter mit 24h sperre | K. R. Eyden | PHP/MySQL | 5 | 31.12.2007 15:33 |
| mit windows xp ist alles einfacher | Haraldzzz | Windows XP | 8 | 06.05.2005 16:08 |
| Einfacher Internet-PC | chill20 | Linux | 3 | 28.05.2003 13:32 |