Gegen Bilderklau - Das Original

Registrierung Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Statistik Chat Karte Zur Startseite

Gegen Bilderklau - Das Original » Design, Website, Copyright » Homepagehilfe » Tutorials und FAQ » [PHP & MySQL] Login mit PHP und Sessions v.2 | Extra: Login mittels WBB-Forum-Accounts » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen
Seiten (2): [1] 2 nächste » Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Login mit PHP und Sessions v.2 | Extra: Login mittels WBB-Forum-Accounts
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
brain_surgery brain_surgery ist weiblich
skype: energon-soup


images/avatars/avatar-52044.png

Dabei seit: 09.02.2005
Beiträge: 973
Herkunft: austria
Name: Nathalie

Login mit PHP und Sessions v.2 | Extra: Login mittels WBB-Forum-Accounts Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe einen Fehler im Skript ausgebessert, der dazu führte, dass das Einloggen nicht möglich war! Es sollte jetzt einwandfrei funktionieren. smile

@Mods: Bitte verschieben!
Login mit PHP und Sessions - Tutorial

Hallo Leute!

Vorwort:
So, hier nun die überarbeitete Version meines Login-Tutorials. Ich habe den Code reichlich mit Kommentaren versehen, das Anpassen sollte also ein Kinderspiel sein. Außerdem habe ich den ganzen Loginprozess auf eine Datei zusammengeschrumpft, das heißt login.php und login_action.php sind nun nicht mehr seperat.
Das Skript läuft noch ungetestet, also bitte sagt bescheid, wenn etwas nicht funktioniert und traut euch ruhig, Fragen zu stellen!

Ich habe außerdem beschlossen, das neue Tutorial in einen neuen Thread zu packen, damit das alte erhalten bleibt, das wesentlich genauer auf den Code eingeht. Dieses hier ist eher eine Plug&Play-Version, das heißt man lädt sich den Code runter und ersetzt ein paar Variablen, dann ist das Ganze auch schon einsatzbereit.

Ganz unten findet ihr auch einen Extra-Teil, der kurz erklärt, was ihr an diesem Skript abändern müsst, damit ihr eure Homepage mit einem WBB-Forum verbinden könnt - und die User sich nur auf dem Forum registrieren müssen damit sie sich auch auf der Homepage einloggen können!

Vorraussetzungen:
Um dieses Tutorial umzusetzen benötigst du einen PHP- und MySQL-fähigen Webspace mit FTP und Datenbank. Beispiele dafür sind funpic, square7 oder bplaced (<-mein persönlicher Favorit). Außerdem ein Programm, dass Dateien mit der Endung .php speichern kann. (Das klingt jetzt vll aufregend und ungewohnt, aber im Grunde kannst du jede Datei mit der Endung .html oder .htm genausogut mit .php abspeichern. Das ist sogar vorteilhaft und für dieses Tutorial unbedingt nötig!) Im Normalfall reicht dafür der normale Standard-Editor, den Windows von Werk ab mitbringt. Auch solltest du wissen, wie man Dateien auf einen Webserver lädt (also FTP verwendet)!

Benötigte Dateien:
Ich hänge alle Dateien am Ende des Posts an, damit ihr sie gleich fertig herunterladen könnt. Der Code wird hier im Tutorial aber besprochen! Einige Daten müssen auch abgeändert und angepasst werden, damit die Codes funktionieren!

Los gehts!

1.: Die Vorbereitung der Datenbank


Ganz unten in der Übersicht deiner Datenbank in phpMyAdmin findest du das Feld zum Erstellen neuer Tabellen. Fülle es aus wie im Screenshot gezeigt und klicke auf "OK".
Beim Erstellen der neuen Tabelle muss es also so aussehen (Ich habe hier nur die nötigsten Felder erstellt. Im Laufe der Zeit wirst du vielleicht noch weitere Felder hinzufügen wollen):

Die Felder können bei dir auch horizontal angeordnet sein, in dem Fall ist es aber genau das Selbe! Wenn du alles wie im Bild ausgefüllt hast, klicke auf "Speichern". (Nicht auf "OK"!)

Wir haben jetzt die nötigen Felder angelegt. Der Login würde nun aber noch nicht funktionieren, weil die Tabelle ja noch leer ist und keine Informationen zu Mitgliedern enthält! Darum wollen wir zu Testzwecken einmal dich selbst quasi als Administrator manuell eintragen.
Dazu klickst du nun ganz links, wo die Übersicht deiner Datenbank ist, auf den Namen deiner neu angelegten Tabelle. (In diesem Fall vermutlich "mitglieder".)
phpMyAdmin zeigt dir jetzt die Struktur der Tabelle an. Um einen neuen Datensatz einzufügen, klicke auf die Registerkarte "Einfügen" über der Tabellenstruktur.

Du füllst nun einfach die Felder mit den gewünschten Daten aus. "id" kann freigelassen werden, da wir vorhin beim Erstellen mit der Eigenschaft "auto_increment" bestimmt haben, dass die Datenbank diesem Feld automatisch einen steigenden Wert zuweisen soll. Klicke auf "OK" und der Datensatz wird gespeichert. (Wenn du willst, kannst du nun auf die Registerkarte "Anzeigen" klicken, um dir den Inhalt der Tabelle anzusehen.

Das wars soweit von Seiten der Datenbank! Jetzt gehts ans Programmieren.

2.: Die login.php

Damit sich der User einloggen kann, braucht er ein Formular, in das er seine Daten eingeben kann. Das kann ganz simpel gestaltet oder aufwändig mit Tabellen und Grafiken verziert sein, aber die Datenbank interessiert das nicht wirklich.

Die login.php besteht dabei grob aus zwei Teilen:
Dem Formular und dessen Verarbeitung.

Ihr könnt den HTML-Teil beliebig verzieren, wichtig ist aber, dass ihr folgendes im Code ersetzt (Zeile 5 bis 12 in der Datei):

php:
1:
2:
3:
4:
5:
6:
7:
8:
//////////////////////
//Hier müssen die Links zu deinen Seiten eingetragen werden!
//////////////////////

$loginseite "DEINEADDY"//URL zu deiner Loginseite
$internseite "DEINEADDY"//URL zu deiner internen Seite

//////////////////////


Wie schon in den Kommentaren erwähnt musst du hier die (relativen) Adressen eintragen, über die die jeweiligen Seiten auf deinem Webspace erreichbar sind. Den Rest macht das Skript für dich!

3.: Die datenbank.php

Die nächsten Dateien, die wir erstellen wollen, müssen mit der Datenbank interagieren. Damit das möglich ist, muss die Datei sich zuerst einmal mit jeder verbinden. Das geschieht in einer eigenen Datei, auf die dann immer wieder zugegriffen wird.
php:
1:
2:
3:
4:
5:
// Verbindungsdaten
$sqlhost "localhost";  //bei funpic, bplaced etc. ansonsten musst du den Host bei deinem Anbieter nachschauen!
$sqluser "DEINBENUTZERNAME";
$sqlpassword "DEINPASSWORT";
$sqldb "DEINEDATENBANK";


Du musst nur DEINBENUTZERNAME, DEINPASSWORT und DEINEDATENBANK einfüllen. Es sind die selben Werte, mit denen du dich auch mit phpmyadmin verbindest und sie können in der Regel bei deinem Webspace Anbieter nachgelesen werden.
Wenn alle Verbindungsinformationen ermittelt sind, werden sie im zweiten Teil des Codes dafür verwendet, die Verbindung zu öffnen. Hier brauchst du nichts abzuändern!

Die Datei alleine bewirkt noch nicht viel. Sie stellt ja nur eine Verbindung her. Darum wird sie von unseren anderen Dateien sozusagen als "Helferlein" verwendet, damit du die Daten nicht jedesmal neu eingeben musst.

Damit hätten wir den Loginprozess abgeschlossen! Wenn alles so weit geklappt hat, kann sich der User jetzt einloggen. Aber wir sind noch nicht ganz fertig. Denn woher weiß die Seite nun, welche Seite nur für eingeloggte Mitglieder ist und welche nicht?

Hierfür brauchen wir eine weitere Datei.

4.: Die checkuser.php

Wir verwenden die Sessions nicht zum Spaß. Mithilfe von ihnen und eines ganz simplen Tricks kann man mit nur einer Zeile Code eine Seite logingeschützt machen.

Aber damit das funktioniert, müssen wir die Datei "checkuser.php" aufrufen.
Hier muss wie auch schon in login.php nur ein Pfad zu einer Seite, in diesem Fall dem Loginformular, angepasst werden:

php:
1:
$loginseite "DEINEADDY"//URL zu deiner Loginseite

In dieser Datei prüfen wir, ob die Sessionvariable "name" gesetzt ist. (Das passiert wenn sich der User einloggt.) Ist dies der Fall, dann tun wir einfach nichts, lassen den User also passieren.
Ist sie nicht gesetzt, dann bedeutet dass, das jemand, der nicht eingeloggt ist, versucht auf die Seite zuzugreifen. In diesem Fall tritt dieses kleine Skript in Aktion und gibt eine Meldung mit dem Link zur Loginseite aus. Außerdem blockiert es mit "exit;" dass ab diesem Punkt irgendein weiterer Code verarbeitet wird. Platzieren wir also dieses Skript auf einer internen Seite, und ein uneingeloggter User will zugreifen, dann wird die Seite nicht geladen sondern nur diese Meldung angezeigt!

Du könntest nun theorethisch diesen Code nehmen und auf jede deiner internen Seiten kopieren. Weil Programmierer aber bekanntlich faul sind, machen wir es wie zuvor schon, indem wir ganz oben auf allen Seiten, die geschützt sein sollen, per "include("...")" diese Datei einfügen.

Eine interne Seite könnte also zum Beispiel so aussehen:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<?php
include("checkuser.php");
?>
<html>
<head>
<title>Interne Seite</title>
</head>
<body>
Diese Seite ist nur für Mitglieder zugänglich!
</body>
</html>


5.: Letzter Schritt: Die logout.php
Wir sind nun so gut wie fertig. Wir haben eine Login-Seite und die Prüfung. Jetzt fehlt nur mehr eines: Die Möglichkeit, dass sich der User auch wieder ausloggen kann!

Das wird auf der Seite "logout.php" erledigt, die ganz normal über einen Link aufgerufen werden kann.
Diese Seite kann wieder nach Herzenslust angepasst werden, unbedingt müssen aber wieder die URLs eingetragen werden:
php:
1:
2:
$loginseite "DEINEADDY"//URL zu deiner Loginseite
$indexseite "DEINEADDY"//URL zu deiner Startseite


Geschafft!

Hast du bis hierher alles richtig gemacht und eine gewogene Glücksfee, dann sollte nun alles einwandfrei funktionieren. Wenn nicht, dann versuche ich natürlich gerne zu helfen!

Was in diesem Tutorial nicht behandelt wurde, ist wie neue Mitglieder dynamisch in die Datenbank eingetragen werden können. Mit etwas Fantasie lassen sich aber andere Tutorials leicht abwandeln!

Im Anschluss hier noch ein paar nützliche Links, die bei eventuellen Fragen hilfreich sein können:
Datenbank aufsetzen - Bezüglich dem Erstellen von Tabellen und Datenbankeinträgen
Referenz für Formulare
Der SELECT-Befehl
Der echo-Befehl
Umfassendes PHP Tutorial von mir - Wie der Name schon sagt
User-Registration - ebenfalls von mir, passend zu dem Login


Extra-Teil: Login mit WBB-Forum-Accounts
Wenn ihr zusätzlich zu eurem WBB-Forum auch eine Homepage auf eurer Seite haben wollt, wäre es umständlich, wenn die Mitglieder sich dort extra noch einmal registrieren müssten. Im Folgenden habe ich deswegen eine kleine Anleitung zusammengestellt, wie ihr mein Login-Skript ganz leicht anpassen könnt, um so ein Vorhaben zu verwirklichen. (Sogar im Stil einer Hack-Anleitung! Whee! :D)
Diese Version ist getestet mit WBBLite 1.2, ob es mit anderen funktioniert weiß ich leider nicht, aber mit ein wenig Glück müssten die Datenbankeinträge die selben sein.

1. config.inc.php
Diese Datei findet ihr bei den Dateien eures Forums im Verzeichnis acp/lib/.
Sie ersetzt bei dieser Version die datenbank.php.
Füge am Ende der Datei (vor ?>) ein:
php:
1:
2:
mysql_connect($sqlhost,$sqluser,$sqlpassword) or die ("Fehler beim Verbinden mit der Datenbank!");
mysql_select_db($sqldb) or die ("Die Datenbank existiert nicht");


2. login.php
Suche:
php:
1:
include("datenbank.php");

Ersetze mit:
php:
1:
include ("config.inc.php");


Suche:
php:
1:
$passwort $_POST["password"];

Ersetze mit:
php:
1:
passwortmd5($_POST["passwort"]);


Suche:
php:
1:
$query mysql_query("SELECT name, passw FROM mitglieder WHERE name = '".$username."' AND passw = '".$passwort."' LIMIT 1");

Ersetze mit:
php:
1:
$query mysql_query("SELECT userid, username, password, groupid FROM bb".$n."_users WHERE username = '".$username."' AND password = '".$passwort."'");


Suche:
php:
1:
$_SESSION["name"] = $username;

Ersetze mit:
php:
1:
2:
3:
4:
5:
$_SESSION["login"] = array (
                                    'id' => $login["userid"],
                                    'username' => $login["username"],
                                    'gruppe' => $login["groupid"]
                                   );

Statt einem Wert wird jetzt in die Sessionvariable gleich ein ganzes Array von Werten gespeichert.
Die ID des Users, abrufbar über $_SESSION["login"]["id"]
Der Name des Users, abrufbar über $_SESSION["login"]["username"]
Die ID der Gruppe des Users (zB. Admin), abrufbar über $_SESSION["login"]["gruppe"]

3. checkuser.php
Suche:
php:
1:
if(!isset($_SESSION["name"]))

Ersetze mit:
php:
1:
if(!isset($_SESSION["login"]))


Das wars! Jetzt ladet die Dateien (login.php, config.int.php, checkuser.php, logout.php) noch wie gewohnt auf den Webspace. Zumindest login.php und config.inc.php sollten dabei im selben Verzeichnis liegen.

4. Problemlösungen
Es können einige Fehler auftreten, je nach Aufbau der Seite.
Zitat:
Warning: session_start() [function.session-start]: Cannot send session cookie

Das passiert, wenn die Zeile session_start(); nicht als allererstes gleich nach <?php auf der Seite steht.
1. Fall:
Wenn ihr das Skript für eine Seite, in der der Header erst bei der Ausgabe hinzugefügt wird übernehmt, dann müsst ihr aus den Dateien checkuser.php, login.php und logout.php das session_start(); herauslöschen und ganz zuerst in die Datei, die euren Header beinhaltet, einfügen.
2. Fall:
Ansonsten kann nur sein, dass etwas vor dieser Zeile steht. Sogar ein Zeilenumbruch ist zuviel! Kontrolliert ganz genau euren Code, dann sollte der Fehler auffindbar sein.


lg und bis zum nächsten Mal, brain

Dateianhang:
zip login_by_brain_surgery.zip (3 KB, 40 mal heruntergeladen)


__________________
Da ich selten bis gar nie sehe, wenn man mir PNs schreibt, bitte über Skype melden, wenn es ein Anliegen gibt! smile

Dieser Beitrag wurde 12 mal editiert, zum letzten Mal von brain_surgery: 30.01.2012 23:23.

03.04.2011 15:00 brain_surgery ist offline E-Mail an brain_surgery senden Homepage von brain_surgery Beiträge von brain_surgery suchen Nehmen Sie brain_surgery in Ihre Freundesliste auf
Kimi. Kimi. ist weiblich
Freak <3


images/avatars/avatar-53491.jpg

Dabei seit: 05.07.2005
Beiträge: 7.811
Herkunft: Hannover
Name: Kim

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallöchen,

ich habe mal eine Frage dazu, ich habe den Login jetzt passend zu der Registrierung gemacht, so nun kommt dort aber diese Fehlermeldung:

php:
1:
Parse errorsyntax errorunexpected '=' in /users/spztalbach/www/login.php on line 29


Die Meldung kommt wenn ich

php:
1:
$passwort $_POST["password"];


zu

php:
1:
passwortmd5($_POST["passwort"]);


ändere.
Kannst du mir vielleicht helfen ? ISt das ein Fehler von dir oder habe ich irgendetwas falsch gemacht ?

Mein login.php
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
<?php                        //   Vor diesen beiden Zeilen darf nichts stehen!
session_start();             //   Vor diesen beiden Zeilen darf nichts stehen!
include("datenbank.php");    //   Bindet die Datenbank ein

//////////////////////
//Hier müssen die Links zu deinen Seiten eingetragen werden!
//////////////////////

$loginseite "DEINEADDY"//URL zu deiner Loginseite
$internseite "DEINEADDY"//URL zu deiner internen Seite

//////////////////////

?>
<!-- Ab hier kann angepasst werden -->
<html>
<head>
 <link rel="stylesheet" type="text/css" href="style.css">
 </head>
 <body>
 
<!-- Hier nichts verändern! -->
<?php
if ($_POST["sent"])  //Überprüfe, ob Formular abgeschickt wurde
{
   if(!empty($_POST["username"]) && !empty($_POST["password"])) //Alle Felder ausgefüllt?
   {
      //Verarbeite Formular
      passwortmd5($_POST["passwort"]);
      $username addslashes(htmlspecialchars($_POST["username"]));
   
          

      $query mysql_query("SELECT * FROM mitglieder WHERE name = '".$username."' AND passwort = '".$passwort."' LIMIT 1");
      $login mysql_fetch_array($query);    //Für WBBLite

       if(@mysql_num_rows($query) != 0)
       {
           $_SESSION["name"] = $username;   //Session speichern
           $_SESSION["funktion"] = $login["funktion"];
           echo "Login erfolgreich! <br> <b><a href=\"".$internseite."\" target=\"_self\">Weiterleitung</a></b>";
       }
       else
       {
          echo "Benutzername und/oder Passwort waren falsch. <br><a href=\"".$loginseite."\">Login</a>";
       }
   }
   else
   {
    echo "Bitte fülle alle Felder aus! <br><a href=\"".$loginseite."\">Zurück</a>";
   }
   

} else { //Zeige Formular an
?>

<!-- Der HTML-Teil kann angepasst werden. Die Namen der Formularfelder müssen aber gleich bleiben! -->

<form action="" method="post">
<table id="Login">

  <td>  Username:<br>
  <td>  <input type="text" size="24" maxlength="50" name="username"><br><br>

  <td>  Passwort:<br>
  <td>  <input type="password" size="24" maxlength="50" name="password"><br> <br>

  <td>  <input type="hidden" name="sent" value="sent">
  <td>  <input type="submit" value="Login">
</form>
</table>

<!-- Die Klammer unbedingt stehen lassen! -->
<?php
}
?>
<!-- Ab hier kann wieder angepasst werden -->
</body>
</html>


__________________
    hinfallen . aufstehen . krone richten . weitergehen

07.06.2011 18:23 Kimi. ist offline E-Mail an Kimi. senden Homepage von Kimi. Beiträge von Kimi. suchen Nehmen Sie Kimi. in Ihre Freundesliste auf Fügen Sie Kimi. in Ihre Kontaktliste ein
Oli
Server-Administrator


Dabei seit: 13.06.2010
Beiträge: 1.540

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi,

achte auf die $-Zeichen, die eine Variable kennzeichnen, dann findest du den Fehler selbst Augenzwinkern .

Zitat:
Original von Kimi.
php:
1:
$passwort $_POST["password"];
php:
1:
passwortmd5($_POST["passwort"]);


LG
07.06.2011 18:36 Oli ist offline Beiträge von Oli suchen Nehmen Sie Oli in Ihre Freundesliste auf
Kimi. Kimi. ist weiblich
Freak <3


images/avatars/avatar-53491.jpg

Dabei seit: 05.07.2005
Beiträge: 7.811
Herkunft: Hannover
Name: Kim

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ah okay supi ^^ Habs hinbekommen großes Grinsen War ja wirklich nicht schwer.
Nun habe ich aber leider noch ein weiteres Problem :s

Wenn ich auf meine Hauptseite gehe also index.php
kommt (das Login ist im Menü) diese Meldung:

php:
1:
Warningsession_start() [function.session-start]: Cannot send session cache limiter headers already sent (output started at /users/spztalbach/www/index.php:10in /users/spztalbach/www/login.php on line 2


wenn ich aber auf die seite Registrierung gehe ist die Meldung weg oO

EDIT// Mit ist nun auch aufgefallen das wenn ich auf der Registrierungsseite bin mich einloggen will das meine Benutezrdaten garnicht funkitonieren obwohl alles richtig ist. Zudem kommt auch noch das dann beide Formulare reagieren, Loginformular und Registrierungsformular O.O
Kann ja irgendwas nicht stimmen.

registrier.php
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
<?php
session_start();
///////////////////////////////////////////////////
// SKRIPT: User-Registration mit MySQL und PHP
// ERSTELLER: brain surgery
// VERSION: 1.0.4
// BESTANDTEILE: datenbank.php, register.php, tabelle.sql, readme.txt
//////////////////////////////////////////////////
//
//  Bei Fragen und Unklarheiten helfe ich gerne!
//  Skript bitte nicht unerlaubt auf anderen Seiten
//  als einseinself.net und gegenbilderklau.net
//  zum Download anbieten!
//
///////////////////////////////////////////////////
//
// REGISTRATIIONS-SKRIPT, prüft automatisch, ob alle
// Felder ausgefüllt sind, ob ein User mit dem
// selben Namen bereits existiert, ob das Passwort
// zweimal richtig eingegeben wurde und loggt einen
// bei erfolgreichem Anmeldungs-Vorgang ein.
//
///////////////////////////////////////////////////

include ("datenbank.php");

///////////////////////////////////////////////////
// ANZUPASSENDE VARIABLEN
///////////////////////////////////////////////////

$fehler "<h1>Fehler!</h1>";
$fehler1 "Bitte fülle alle Felder vollständig aus!<br><b><a href=\"javascript:history.back()\">Zurück </a></b>";
$fehler2 "Die Passwörter stimmen nicht überein!<br><b><a href=\"javascript:history.back()\">Zurück </a></b>";
$fehler3 "Der Username existiert bereits!<br><b><a href=\"javascript:history.back()\">Zurück </a></b>";
$fehler4 "Problem beim Eintragen in die Datenbank! Bitte versuche es später oder setze dich mit dem Webmaster in Verbindung!<br><b><a href=\"javascript:history.back()\">Zurück </a></b>";
$erfolg "<h1>Registrierung erfolgreich!</h1><br><br>";
$internlink "<a href = 'Intern/index.php'>internen Bereich</a>";
$loginmeldung ", du wurdest bereits eingeloggt und kannst nun den ".$internlink." betreten!<br>Viel Spaß!";
?>

<html>
<head>
<title>SPZ Talbach</title>
<BODY>
<link rel="stylesheet" href="CSS/style.css">



<div="DesignBild">
<? include ("DesignBild.php"); ?>
</div>

<div="Header">
<? include ("header.php"); ?>
</div>

<div id="Menue">
<? include ("menue.php"); ?> 
</div>

<div id="Login">
<? include ("login.php"); ?> 
</div>



<div id="Main">

<!-- Platz für sonstiges HTML (/PHP), das vor dem Formular stehen soll -->

<?php

///////////////////////////////////////////////////
// CODE
///////////////////////////////////////////////////


if ($_POST["sent"]) // Überprüfe, ob auf Senden geklickt wurde
{
    // Formular wurde abgeschickt, verarbeite die Daten
    if (!empty($_POST["name"]) && !empty($_POST["passwort"]) && !empty($_POST["passwort2"])
             && !empty($_POST["email"]))                           // Prüfe, ob alle Felder ausgefüllt wurden
    {
        // Alle Felder sind ausgefüllt
        if ($_POST["passwort"] == $_POST["passwort2"])  // Prüfe, ob Passwort mit Wiederholung übereinstimmt
        {
           // Passwort stimmt mit Wiederholung überein
           $username htmlspecialchars(addslashes($_POST["name"])); // Username wird von Sonderzeichen etc befreit
           $query mysql_query("SELECT id FROM mitglieder WHERE name = '".$username."'");
           if (@mysql_num_rows($query) == 0)  // Prüfe, ob Username bereits vorhanden
           {
               // Username noch frei
               // Neuer User kann angelegt werden!
               $passwort_neu md5($_POST["passwort"]); // Passwort verschlüsseln
               $query mysql_query("INSERT INTO mitglieder (name, passwort, email, regdatum)
                                                     VALUES ('$username', '$passwort_neu', '".$_POST["email"]."', '".time()."')") or die (mysql_error());
               if ($query)  // Prüfe, ob Eintragen erfolgreich war
               {
                   // Eintragen erfolgreich, User wurde erstellt!
                   // Logge den User ein
                   $check mysql_query("SELECT * FROM mitglieder WHERE id = '".mysql_insert_id()."'");
                   $user mysql_fetch_assoc($check);
                   $_SESSION["name"] = stripslashes($username);
                   $_SESSION["funktion"] = $user["funktion"];
                   echo $erfolg.$_SESSION["name"].$loginmeldung;

               } else {
                   // Etwas ging schief
                   echo $fehler.$fehler4;
               }
           } else {
               // Username bereits vorhanden
               echo $fehler.$fehler3;
           }
        }  else {
           // Passwort stimmt mit Wiederholung nicht überein
           echo $fehler.$fehler2;
        }
    } else {
        // Nicht alle Felder wurden ausgefüllt
        echo $fehler.$fehler1;
    }

} else {
    // Formular wurde noch nicht abgeschickt
    // -> Zeige Formular an
?>

<!-- Dieser Teil kann angepasst werden. -->
<h1>Registrierung</h1>
<br><br>
<form name = "anmeldung" action = "" method = "post">
<table id="Registrierungstabelle">
<tr>
   <td>  Username: 
   <td>  <input type = "text" name = "name"><br>
<tr>
   <td>   Passwort: 
   <td>   <input type = "password" name = "passwort"><br>
<tr>
   <td>  Passwort (Wiederholung): 
   <td>  <input type = "password" name = "passwort2"><br>
<tr>
   <td>  E-Mail: 
   <td>  <input type = "text" name = "email"><br>
<tr>
   <td>  <br><input type = "hidden" name = "sent" value = "sent">
   <td>  <br><input type = "submit" value = "Registrieren">

</form>
<!-- Platz für sonstiges HTML (/PHP), das nach dem Formular stehen soll -->
</table>
</div>



</body>
</html>
<!-- Anpassbarer Teil Ende -->

<?php
// Klammer nicht entfernen!
?>
<!-- Platz für sonstiges HTML (/PHP) -->
</body>
</html>



und login.php
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:

<?php                        //   Vor diesen beiden Zeilen darf nichts stehen!
session_start();             //   Vor diesen beiden Zeilen darf nichts stehen!
include("datenbank.php");    //   Bindet die Datenbank ein

//////////////////////
//Hier müssen die Links zu deinen Seiten eingetragen werden!
//////////////////////

$loginseite "index.php"//URL zu deiner Loginseite
$internseite "index.php"//URL zu deiner internen Seite

//////////////////////

?>
<!-- Ab hier kann angepasst werden -->
<html>
<head>
 <link rel="stylesheet" type="text/css" href="CSS/style.css">
 </head>
 <body>
 
<!-- Hier nichts verändern! -->
<?php
if ($_POST["sent"])  //Überprüfe, ob Formular abgeschickt wurde
{
   if(!empty($_POST["username"]) && !empty($_POST["password"])) //Alle Felder ausgefüllt?
   {
      //Verarbeite Formular
      $passwortmd5($_POST["passwort"]);
      $username addslashes(htmlspecialchars($_POST["username"]));
   
          

      $query mysql_query("SELECT * FROM mitglieder WHERE name = '".$username."' AND passwort = '".$passwort."' LIMIT 1");
      $login mysql_fetch_array($query);    //Für WBBLite

       if(@mysql_num_rows($query) != 0)
       {
           $_SESSION["name"] = $username;   //Session speichern
           $_SESSION["funktion"] = $login["funktion"];
           echo "Login erfolgreich! <br> <b><a href=\"".$internseite."\" target=\"_self\">Weiterleitung</a></b>";
       }
       else
       {
          echo "Benutzername und/oder Passwort waren falsch. <br><a href=\"".$loginseite."\">Login</a>";
       }
   }
   else
   {
    echo "Bitte fülle alle Felder aus! <br><a href=\"".$loginseite."\">Zurück</a>";
   }
   

} else { //Zeige Formular an
?>

<!-- Der HTML-Teil kann angepasst werden. Die Namen der Formularfelder müssen aber gleich bleiben! -->

<table id="Login">

<form action="" method="post">
  <td>  Username:<br>
  <td>  <input type="text" size="20" maxlength="50" name="username">
<tr>
  <td>  Passwort:<br>
  <td>  <input type="password" size="20" maxlength="50" name="password">
<tr>
  <td>  <input type="hidden" name="sent" value="sent">
  <td>  <input type="submit" value="Login">
</form>
</table>


<!-- Die Klammer unbedingt stehen lassen! -->
<?php
}
?>
<!-- Ab hier kann wieder angepasst werden -->
</body>
</html>


__________________
    hinfallen . aufstehen . krone richten . weitergehen

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Kimi.: 08.06.2011 11:35.

07.06.2011 18:51 Kimi. ist offline E-Mail an Kimi. senden Homepage von Kimi. Beiträge von Kimi. suchen Nehmen Sie Kimi. in Ihre Freundesliste auf Fügen Sie Kimi. in Ihre Kontaktliste ein
brain_surgery brain_surgery ist weiblich
skype: energon-soup


images/avatars/avatar-52044.png

Dabei seit: 09.02.2005
Beiträge: 973
Herkunft: austria
Name: Nathalie

Themenstarter Thema begonnen von brain_surgery
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Huhu =)
Das Problem mit der login.php sollte ganz leicht zu lösen sein:
Bei dem geposteten Code sieht man, dass über dem session_start(); in Zeile 2 davor noch eine leere Zeile ist. Die muss weg.

Bei der Registrierung wäre mir jetzt auf den ersten Blick nichts aufgefallen, aber ich seh mir das eben mal genauer an. ;)

__________________
Da ich selten bis gar nie sehe, wenn man mir PNs schreibt, bitte über Skype melden, wenn es ein Anliegen gibt! smile
10.06.2011 18:54 brain_surgery ist offline E-Mail an brain_surgery senden Homepage von brain_surgery Beiträge von brain_surgery suchen Nehmen Sie brain_surgery in Ihre Freundesliste auf
Ichigo
Mitglied


images/avatars/avatar-53531.png

Dabei seit: 18.01.2011
Beiträge: 419

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Bei mir wir immer angezeigt:
Bitte fülle alle Felder aus!

index.php (ich hab das login oben im header d.h. es ist auf jeder seite)
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
<?php
session_start();
include("datenbank.php");

$loginseite = "index.php";
$internseite = "intern/test.php";

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
	 <head>
	  	<title>Solestro</title>
	  	<link href="css/style.css" rel="stylesheet" type="text/css" />
	 </head>
<body>
	<div id='header'>
		<table>
			<tr>
				<td><img src="design/Willkommen.png"></td>
				<td width='40px'></td>
				<td>
                <?php
if ($_POST["sent"])  //Überprüfe, ob Formular abgeschickt wurde
{
   if(!empty($_POST["username"]) && !empty($_POST["password"])) //Alle Felder ausgefüllt?
   {

      $passwort = $_POST["password"];
      $username = addslashes(htmlspecialchars($_POST["username"]));

      $query = mysql_query("SELECT name, passw FROM mitglieder WHERE name = '".$username."' AND passw = '".$passwort."' LIMIT 1");
      $login = mysql_fetch_array($query);

       if(@mysql_num_rows($query) != 0)
       {
           $_SESSION["name"] = $username;
           echo "Login erfolgreich! <br> <b><a href=\"".$internseite."\" target=\"_self\">Weiterleitung</a></b>";
       }
       else
       {
          echo "Benutzername und/oder Passwort waren falsch. <br><a href=\"".$loginseite."\">Login</a>";
       }
   }
   else
   {
	echo "Bitte fülle alle Felder aus! <br><a href=\"".$loginseite."\">Zurück</a>";
   }


} else {
?>

       <table><form action="" method="post">
	                    <tr>
	                    <td><input type='text' value='Benutzername' OnClick="this.value='' name='username'"></td>
                        <td><input type='password' value='Passwort' OnClick="this.value='' name='password'"></td>
						<td><input type="hidden" name="sent" value="sent"></td>
						<td><input type='submit' value='Login'></td>
					</tr>
				</table>
				</td>
			</tr>
		</form></table>

<?php
}
?>
	</div>
	<div id='navi'>
			<center><table align='center' style='position: absolute; top: -20px;'>
				<tr>
		<td><a href=index.php><img src="design/start.png"></a></td><td><a href=extern/erklarungen.php><img src="design/erklarungen.png"></a></td><td><a href=extern/statistiken.php><img src="design/statistiken.png"></a></td>
		 <td><a href=extern/team.php><img src="design/team.png"></a></td><td><a href=extern/gastebuch.php><img src="design/gb.png"></a></td>
		 		</tr>
		 	</table></center>
		 	<table align='center' style='position: absolute; top: 10px; left: 130px;'>
				 <tr>
		   <td><a href=extern/registrierung.php><img src="design/regestrierung.png"></a></td><td><a href=extern/links.php><img src="design/links.png"></a></td>
		   <td><a href=extern/impressum.php><img src="design/impressum.png"></a></td>

		  		</tr>
		  	</table>
	</div>
	<div id='content'>
	Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

	Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

	Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

	Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

	Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.

	At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur
	Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

	Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

	Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

	Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

	Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.

	At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur
	</div>
</body>
</html>


__________________

27.07.2011 13:48 Ichigo ist offline E-Mail an Ichigo senden Beiträge von Ichigo suchen Nehmen Sie Ichigo in Ihre Freundesliste auf
tonilein tonilein ist weiblich
Keksdieb


images/avatars/avatar-53855.jpg

Dabei seit: 18.07.2011
Beiträge: 87

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Mmhhh...habe schon viel mit deinen Tuts gearbeitet (sind wirklich klasse!!) aber jetzt verzweifle ich...

Habe alle Codes kontrolliert - alles richtig, allerdings kann ich mich probehalber nicht einloggen ("Name/Passwort falsch") und in der Datenbank erscheint kein vernüftiges PW.

Schonmal vielen Dank!

login.php
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
<?php                        //   Vor diesen beiden Zeilen darf nichts stehen!
session_start();             //   Vor diesen beiden Zeilen darf nichts stehen!
include("datenbank.php");    //   Bindet die Datenbank ein

//////////////////////
//Hier müssen die Links zu deinen Seiten eingetragen werden!
//////////////////////

$loginseite = "http://holtenhof.bplaced.net/filemanager/php/login.php"; //URL zu deiner Loginseite
$internseite = "http://holtenhof.bplaced.net/filemanager/php/intern.htm"; //URL zu deiner internen Seite

//////////////////////

?>
<!-- Ab hier kann angepasst werden -->
<html>
<head>
 <link rel="stylesheet" type="text/css" href="style.css">
 </head>
 <body>
 
<!-- Hier nichts verändern! -->
<?php
if ($_POST["sent"])  //Überprüfe, ob Formular abgeschickt wurde
{
   if(!empty($_POST["username"]) && !empty($_POST["password"])) //Alle Felder ausgefüllt?
   {
      //Verarbeite Formular
      $passwort= md5($_POST["passwort"]);
      $username = addslashes(htmlspecialchars($_POST["username"]));
   
      $query = mysql_query("SELECT * FROM mitglieder WHERE name = '".$username."' AND passwort = '".$passwort."' LIMIT 1");
      $login = mysql_fetch_array($query);    //Für WBBLite

       if(@mysql_num_rows($query) != 0)
       {
           $_SESSION["name"] = $username;   //Session speichern
           $_SESSION["funktion"] = $login["funktion"];
           echo "Login erfolgreich! <br> <b><a href=\"".$internseite."\" target=\"_self\">Weiterleitung</a></b>";
       }
       else
       {
          echo "Benutzername und/oder Passwort waren falsch. <br><a href=\"".$loginseite."\">Login</a>";
       }
   }
   else
   {
	echo "Bitte fülle alle Felder aus! <br><a href=\"".$loginseite."\">Zurück</a>";
   }
   

} else { //Zeige Formular an
?>

<!-- Der HTML-Teil kann angepasst werden. Die Namen der Formularfelder müssen aber gleich bleiben! -->
<h3>Login</h3>
<form action="" method="post">
Username:<br>
<input type="text" size="24" maxlength="50" name="username"><br><br>

Passwort:<br>
<input type="password" size="24" maxlength="50" name="password"><br> <br>

<input type="hidden" name="sent" value="sent">
<input type="submit" value="Login">
</form>

<!-- Die Klammer unbedingt stehen lassen! -->
<?php
}
?>
<!-- Ab hier kann wieder angepasst werden -->
</body>
</html>


und register.php
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
 <?php
session_start();
///////////////////////////////////////////////////
// SKRIPT: User-Registration mit MySQL und PHP
// ERSTELLER: brain surgery
// VERSION: 1.0.4
// BESTANDTEILE: datenbank.php, register.php, tabelle.sql, readme.txt
//////////////////////////////////////////////////
//
//  Bei Fragen und Unklarheiten helfe ich gerne!
//  Skript bitte nicht unerlaubt auf anderen Seiten
//  als einseinself.net und gegenbilderklau.net
//  zum Download anbieten!
//
///////////////////////////////////////////////////
//
// REGISTRATIIONS-SKRIPT, prüft automatisch, ob alle
// Felder ausgefüllt sind, ob ein User mit dem
// selben Namen bereits existiert, ob das Passwort
// zweimal richtig eingegeben wurde und loggt einen
// bei erfolgreichem Anmeldungs-Vorgang ein.
//
///////////////////////////////////////////////////

include ("datenbank.php");

///////////////////////////////////////////////////
// ANZUPASSENDE VARIABLEN
///////////////////////////////////////////////////

$fehler = "<h1>Fehler!</h1>";
$fehler1 = "Bitte fülle alle Felder vollständig aus!<br><b><a href=\"javascript:history.back()\">Zurück </a></b>";
$fehler2 = "Die Passwörter stimmen nicht überein!<br><b><a href=\"javascript:history.back()\">Zurück </a></b>";
$fehler3 = "Der Username existiert bereits!<br><b><a href=\"javascript:history.back()\">Zurück </a></b>";
$fehler4 = "Problem beim Eintragen in die Datenbank! Bitte versuche es später oder setze dich mit dem Webmaster in Verbindung!<br><b><a href=\"javascript:history.back()\">Zurück </a></b>";
$erfolg = "<h1>Registrierung erfolgreich!</h1>";
$internlink = "<a href = 'DEINE INTERNE SEITE'>internen Bereich</a>";
$loginmeldung = ", du wurdest bereits eingeloggt und kannst nun den ".$internlink." betreten!<br>Viel Spaß!";
?>

<html>
<head>
<title>Registrierung</title>
<!-- Platz für CSS-Datei -->
</head>
<body>
<!-- Platz für sonstiges HTML (/PHP), das vor dem Formular stehen soll -->

<?php

///////////////////////////////////////////////////
// CODE
///////////////////////////////////////////////////


if ($_POST["sent"]) // Überprüfe, ob auf Senden geklickt wurde
{
    // Formular wurde abgeschickt, verarbeite die Daten
    if (!empty($_POST["name"]) && !empty($_POST["passwort"]) && !empty($_POST["passwort2"])
             && !empty($_POST["email"]))                           // Prüfe, ob alle Felder ausgefüllt wurden
    {
        // Alle Felder sind ausgefüllt
        if ($_POST["passwort"] == $_POST["passwort2"])  // Prüfe, ob Passwort mit Wiederholung übereinstimmt
        {
           // Passwort stimmt mit Wiederholung überein
           $username = htmlspecialchars(addslashes($_POST["name"])); // Username wird von Sonderzeichen etc befreit
           $query = mysql_query("SELECT id FROM mitglieder WHERE name = '".$username."'");
           if (@mysql_num_rows($query) == 0)  // Prüfe, ob Username bereits vorhanden
           {
               // Username noch frei
               // Neuer User kann angelegt werden!
               $passwort_neu = md5($_POST["passwort"]); // Passwort verschlüsseln
               $query = mysql_query("INSERT INTO mitglieder (name, passwort, email, regdatum)
                                                     VALUES ('$username', '$passwort_neu', '".$_POST["email"]."', '".time()."')") or die (mysql_error());
               if ($query)  // Prüfe, ob Eintragen erfolgreich war
               {
                   // Eintragen erfolgreich, User wurde erstellt!
                   // Logge den User ein
                   $check = mysql_query("SELECT * FROM mitglieder WHERE id = '".mysql_insert_id()."'");
                   $user = mysql_fetch_assoc($check);
                   $_SESSION["name"] = stripslashes($username);
                   $_SESSION["funktion"] = $user["funktion"];
                   echo $erfolg.$_SESSION["name"].$loginmeldung;

               } else {
                   // Etwas ging schief
                   echo $fehler.$fehler4;
               }
           } else {
               // Username bereits vorhanden
               echo $fehler.$fehler3;
           }
        }  else {
           // Passwort stimmt mit Wiederholung nicht überein
           echo $fehler.$fehler2;
        }
    } else {
        // Nicht alle Felder wurden ausgefüllt
        echo $fehler.$fehler1;
    }

} else {
    // Formular wurde noch nicht abgeschickt
    // -> Zeige Formular an
?>

<!-- Dieser Teil kann angepasst werden. -->
<h1>Registrierung</h1>
<form name = "anmeldung" action = "" method = "post">
Username: <input type = "text" name = "name"><br>
Passwort: <input type = "password" name = "passwort"><br>
Passwort (Wiederholung): <input type = "password" name = "passwort2"><br>
E-Mail: <input type = "text" name = "email"><br>
<input type = "hidden" name = "sent" value = "sent">
<input type = "submit" value = "Registrieren">
</form>
<!-- Platz für sonstiges HTML (/PHP), das nach dem Formular stehen soll -->
<!-- Anpassbarer Teil Ende -->

<?php
} // Klammer nicht entfernen!
?>
<!-- Platz für sonstiges HTML (/PHP) -->
</body>
</html>


__________________

05.08.2011 14:11 tonilein ist offline E-Mail an tonilein senden Beiträge von tonilein suchen Nehmen Sie tonilein in Ihre Freundesliste auf
brain_surgery brain_surgery ist weiblich
skype: energon-soup


images/avatars/avatar-52044.png

Dabei seit: 09.02.2005
Beiträge: 973
Herkunft: austria
Name: Nathalie

Themenstarter Thema begonnen von brain_surgery
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Oh, ich sehe gerade, in Zeile 25 von login.php steht statt "passwort" die englische Variante "password". Wenn du das umänderst sollte es klappen.
Das Selbe gilt für Ichigo!

Sorry, ich werd den Fehler gleich im Download ausbessern.

__________________
Da ich selten bis gar nie sehe, wenn man mir PNs schreibt, bitte über Skype melden, wenn es ein Anliegen gibt! smile
05.08.2011 14:36 brain_surgery ist offline E-Mail an brain_surgery senden Homepage von brain_surgery Beiträge von brain_surgery suchen Nehmen Sie brain_surgery in Ihre Freundesliste auf
tonilein tonilein ist weiblich
Keksdieb


images/avatars/avatar-53855.jpg

Dabei seit: 18.07.2011
Beiträge: 87

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ja, genau das war der Fehler smile

...dann erscheint allerdings "Bitte alle Felder ausfüllen!" - also noch unten im Formular in "passwort" ändern, dann läufts!

Vielen, vielen Dank für die schnelle Hilfe!!

__________________

05.08.2011 14:48 tonilein ist offline E-Mail an tonilein senden Beiträge von tonilein suchen Nehmen Sie tonilein in Ihre Freundesliste auf
Menoug
Mitglied


images/avatars/avatar-15492.gif

Dabei seit: 15.02.2009
Beiträge: 186

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Okay... ich hab keinen Plan! XD

Also ich bin noch glaub ich weit davon entfernt, dass das funktioniert mit dem einloggen.

Mitlerweile habe ich mein Log in so hinbekommen, dass es wenigstens auch auf der seite angezeigt wird und nicht einfach der code... allerdings wird trotz allem noch ein teil des codes angezeigt und einloggen kann man sich auch nicht:

login.php
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="style1.css">
</head>
<?php                       
session_start();             
include("datenbank.php");   
$loginseite "login.php";
$internseite "Interne Seite/InternIndex.html";
?>
</head>
<body>
<?php
if ($_POST["sent"])  //Überprüfe, ob Formular abgeschickt wurde
{
   if(!empty($_POST["username"]) && !empty($_POST["password"])) //Alle Felder ausgefüllt?
   {
      //Verarbeite Formular
      $passwort $_POST["password"];
      $username addslashes(htmlspecialchars($_POST["username"]));
   
      $query mysql_query("SELECT name, passw FROM mitglieder WHERE name = '".$username."' AND passw = '".$passwort."' LIMIT 1");
      $login mysql_fetch_array($query);    //Für WBBLite

       if(@mysql_num_rows($query) != 0)
       {
           $_SESSION["name"] = $username;   //Session speichern
           echo "Login erfolgreich! <br> <b><a href=\"".$internseite."\" target=\"_self\">Weiterleitung</a></b>";
       }
       else
       {
          echo "Benutzername und/oder Passwort waren falsch. <br><a href=\"".$loginseite."\">Login</a>";
       }
   }
   else
   {
    echo "Bitte fülle alle Felder aus! <br><a href=\"".$loginseite."\">Zurück</a>";
   }
   

} else { //Zeige Formular an
?>

<h3>Login</h3>

<form action="" method="post">
Username:<br>
<input type="text" size="24" maxlength="50" name="username"><br><br>

Passwort:<br>
<input type="passwort" size="24" maxlength="50" name="passwort"><br> <br>

<input type="hidden" name="sent" value="sent">
<input type="submit" value="Login">
</form>

<?php
}
?>
</body>
</html>


Was generell die ganze Zeit angezeigt wird dann auf der Login Seite im Internet und eigentlich nicht so hin gehört:

Zitat:
Weiterleitung"; } else { echo "Benutzername und/oder Passwort waren falsch. Login"; } } else { echo "Bitte fülle alle Felder aus! Zurück"; } } else { //Zeige Formular an ?>

(und hier ist dann das LogIn Formular!)


Also ich sehe nicht wirklich nen Fehler... und wenn er hier nicht liegt, wo kann er sonst sein? XD

Danke schonmal. smile

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Menoug: 15.08.2011 15:54.

15.08.2011 15:48 Menoug ist offline E-Mail an Menoug senden Beiträge von Menoug suchen Nehmen Sie Menoug in Ihre Freundesliste auf
Oli
Server-Administrator


Dabei seit: 13.06.2010
Beiträge: 1.540

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von Menoug
Also ich sehe nicht wirklich nen Fehler... und wenn er hier nicht liegt, wo kann er sonst sein? XD


Da ist, wie es aussieht, auch keiner. Dann bedeutet das wohl, der Server führt das PHP gar nicht aus. Möglicherweise wird PHP nicht unterstützt.

Wenn du in den Quelltext der Seite schaust, wirst du feststellen, dass der PHP-Code noch drin steht, was nicht der Fall wäre, wenn es ausgeführt worden wäre - dann würde der Server nämlich nur das Ergebnis des PHP-Codes zurückliefern.


LG
15.08.2011 20:53 Oli ist offline Beiträge von Oli suchen Nehmen Sie Oli in Ihre Freundesliste auf
Menoug
Mitglied


images/avatars/avatar-15492.gif

Dabei seit: 15.02.2009
Beiträge: 186

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hmmm aber square7 unterstützt eigentlich php... nun ja ich werde mich einfach mal weiter daran versuchen und vielleicht finde ich irgendwann den Grund dafür! XDXD
trotzdem danke!^^

Edit: aaarg.. okay.. mitlerweile hab ichs soweit, dass kein code oder so mehr zu sehen ist... also es funktioniert in der Hinsicht dass da steht: "Datenbank existiert nicht!"
-.- Na supa... aber die Datenbank existiert und ist auch wie im Tutorial beschrieben verlinkt usw.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Menoug: 15.08.2011 22:56.

15.08.2011 21:48 Menoug ist offline E-Mail an Menoug senden Beiträge von Menoug suchen Nehmen Sie Menoug in Ihre Freundesliste auf
Oli
Server-Administrator


Dabei seit: 13.06.2010
Beiträge: 1.540

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von Menoug
hmmm aber square7 unterstützt eigentlich php... nun ja ich werde mich einfach mal weiter daran versuchen und vielleicht finde ich irgendwann den Grund dafür! XDXD
trotzdem danke!^^


Die Datei heißt auch tatsächlich "login.php" und nicht versehentlich z.B. "login.php.html"? Du könntest uns außerdem mal einen Link zur Seite geben. Achso: Du rufst die Seite schon per http:// auf - nicht per ftp:// , oder? Per ftp:// wird PHP nämlich auch niemals ausgeführt Augenzwinkern

Edit (15.08.2011, 22:59):
Auf dein Edit:
Stimmen die Daten in der datenbank.php ?
15.08.2011 22:57 Oli ist offline Beiträge von Oli suchen Nehmen Sie Oli in Ihre Freundesliste auf
Menoug
Mitglied


images/avatars/avatar-15492.gif

Dabei seit: 15.02.2009
Beiträge: 186

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

okay.. also hier gehts zur seite:
*klick*
Mitglieder-> Login

Und soweit ich das sehe, stimmen die Daten.
15.08.2011 23:04 Menoug ist offline E-Mail an Menoug senden Beiträge von Menoug suchen Nehmen Sie Menoug in Ihre Freundesliste auf
SchatZzii <3 SchatZzii <3 ist weiblich
Mitglied


images/avatars/avatar-12341.jpg

Dabei seit: 22.05.2009
Beiträge: 104
Name: Sabrina

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

http://gb.wbbhilfe.eu/epona/279.PNG

ich hab bplaced
aber das unter extras gibt es bei mir nich o.o

__________________
    Wenn dir das Wasser bis zum Hals steht,
    Kopf nicht hängen lassen!

15.08.2011 23:54 SchatZzii <3 ist offline E-Mail an SchatZzii <3 senden Beiträge von SchatZzii <3 suchen Nehmen Sie SchatZzii <3 in Ihre Freundesliste auf MSN Passport-Profil von SchatZzii <3 anzeigen
+Debbie+
Schon immer +Debbie+


images/avatars/avatar-54324.jpg

Dabei seit: 26.08.2006
Beiträge: 5.874
Herkunft: Hamburg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Bei blaced gibt es ein extra Feld wo Du AUTO_INCREMENT auswählen kannst.



__________________

16.08.2011 01:27 +Debbie+ ist offline E-Mail an +Debbie+ senden Homepage von +Debbie+ Beiträge von +Debbie+ suchen Nehmen Sie +Debbie+ in Ihre Freundesliste auf
SchatZzii <3 SchatZzii <3 ist weiblich
Mitglied


images/avatars/avatar-12341.jpg

Dabei seit: 22.05.2009
Beiträge: 104
Name: Sabrina

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

nee, das mein ich nicht
ich mein die icons darunter

__________________
    Wenn dir das Wasser bis zum Hals steht,
    Kopf nicht hängen lassen!

16.08.2011 08:02 SchatZzii <3 ist offline E-Mail an SchatZzii <3 senden Beiträge von SchatZzii <3 suchen Nehmen Sie SchatZzii <3 in Ihre Freundesliste auf MSN Passport-Profil von SchatZzii <3 anzeigen
SchatZzii <3 SchatZzii <3 ist weiblich
Mitglied


images/avatars/avatar-12341.jpg

Dabei seit: 22.05.2009
Beiträge: 104
Name: Sabrina

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

?

__________________
    Wenn dir das Wasser bis zum Hals steht,
    Kopf nicht hängen lassen!

21.08.2011 12:27 SchatZzii <3 ist offline E-Mail an SchatZzii <3 senden Beiträge von SchatZzii <3 suchen Nehmen Sie SchatZzii <3 in Ihre Freundesliste auf MSN Passport-Profil von SchatZzii <3 anzeigen
SUMMER* SUMMER* ist weiblich
Mitglied


images/avatars/avatar-54210.png

Dabei seit: 07.06.2011
Beiträge: 398

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

//

__________________
the vampire diaries
»I’m one hundred and sixty two years old and I’m going to a homecoming dance. I need better ties.«

icon von mir

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von SUMMER*: 26.08.2011 17:02.

21.08.2011 12:49 SUMMER* ist offline Beiträge von SUMMER* suchen Nehmen Sie SUMMER* in Ihre Freundesliste auf
Tasteless_Candy Tasteless_Candy ist weiblich
Mitglied


images/avatars/avatar-15506.gif

Dabei seit: 26.11.2005
Beiträge: 747
Herkunft: Schweiz

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi, ich hab ne frage. Ist es richtig, dass mit diesem Login, alle auf die gleiche Seite kommen?
Hast du per zufall ein Tut oder kannst mir erklären, wie ich es machen kann, dass jeder User seine eigene userseite hat. Verstehst du wie ich meine?

Besten Dank und liebe Grüsse
26.08.2011 16:02 Tasteless_Candy ist offline E-Mail an Tasteless_Candy senden Homepage von Tasteless_Candy Beiträge von Tasteless_Candy suchen Nehmen Sie Tasteless_Candy in Ihre Freundesliste auf
Seiten (2): [1] 2 nächste » Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Gegen Bilderklau - Das Original » Design, Website, Copyright » Homepagehilfe » Tutorials und FAQ » [PHP & MySQL] Login mit PHP und Sessions v.2 | Extra: Login mittels WBB-Forum-Accounts

Impressum

Forensoftware: Burning Board, entwickelt von WoltLab GmbH