Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 21%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 13%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 3%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 3%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 687 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Lieber Besucher, herzlich willkommen bei: WebmasterWork. Falls dies dein erster Besuch auf dieser Seite ist, lese dir bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

JayT

Foren As

Dabei seit: 18.10.2002

Beiträge: 81

 

1 Zum Seitenanfang

Donnerstag, 3. Juni 2010, 23:03

[PHP] Forum Tutorial Teil 1 (Registrieren)

Oft wollen PHP-Newbies, sowie andere, ein eigenes Forum für die eigene Website schreiben. Dazu habe ich ein kleines Tutorial verfasst:


  • Schritt 1: Vorüberlegungen
  • Schritt 2: Das Formular
  • Schritt 3: Daten überprüfen und eintragen



Schritt 1: Vorüberlegungen

Auf was soll das Gästebuch basieren?
Es gibt zwei Möglichkeiten:


  • Datenbank
  • Textdatei

In diesem Fall habe ich mich für eine MySQL-Datenbank entschieden, da man damit die eingetragenen Daten einfacher zu verwalten sind.




Wieviele Dateien brauche ich?
Ich habe mich für vier Dateien entschieden:


  • config.inc.php MySQL- Datenbank Date
  • function.inc.php Funktionen
  • templates/action_ride.htm Weiterleitung, wenn Registrierung erfolgreich war
  • templates/action_error.htm Hier werden die Fehler angezeigt
  • templates/error1.htm Bitte alle Felder ausfüllen
  • templates/error2.htm Benutzername schon vorhanden
  • templates/note1.htm Weiterleitung, wenn Registrierung erfolgreich war
  • templates/register.htm Template Formular
  • register.php Formular anzeigen
  • action.php Hier wird die Registrierung überprüft und eingetragen



Die Tabellenstruktur
Die nächste, größere Frage ist die Struktur der Tabelle.
Da alle Daten Texte sind, benutzen wir auch als Feldtyp den Typen Text. Dann fügen wir noch eine eindeutige ID hinzu, damit wir jeden einzelnen Eintrag identifizieren können. Dies kann zB für ein späteres Adminpanel von Nutzen sein. Also ergibt sich folgendes Query:

MySQL-Abfrage(n)

1
2
3
4
5
6
CREATE TABLE user ( 
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 
`username` TEXT NOT NULL , 
`password` TEXT NOT NULL , 
`email` TEXT NOT NULL 
) ENGINE = MYISAM ;

Das muss nur noch in phpmyadmin eingefügt und ausgeführt werden und schon ist die Tabelle fertig. Natürlich muss vorher noch eine Datenbank erstellt werden.






Schritt 2.1: config.inc.php
Bevor wir irgendwelche Daten überprüfen und eintragen können, müssen wir erstmal eine Verbindung zum Datenbankserver aufbauen. Dies geschieht in der config.inc.php. Folgende Zeilen fügen wir dort ein:


PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<? 
// Hostname oder IP des MySQL-Servers 
$sqlhost "localhost"// Username und Passwort zum einloggen in den Datenbankserver 
$sqluser ""$sqlpassword ""// Name der Datenbank 
$sqldb ""// Hiermit wird eine Verbindung zur Datenbank hergestellt 
mysql_connect($sqlhost$sqluser$sqlpassword) or die("Konnte keine Verbinung aufbauen: ".mysql_error()); // Fehler ausgeben 
// Hiermit wird die Datenbank ausgewählt 
mysql_select_db($sqldb) or die("Fehler beim Datenbankauswählen: ".mysql_error()); 
?>






Schritt 2.2: function.inc.php
Bevor wir irgendwelche Daten überprüfen und eintragen können, müssen wir erstmal eine Template-System aufbauen. Dies geschieht in der function.inc.php. Folgende Zeilen fügen wir dort ein:

PHP-Quelltext

1
2
3
4
5
6
7
8
function gettemplate($template,$endung="htm") { 
$templatefolder "templates"; 
return str_replace("\"","\\\"",implode("",file($templatefolder."/".$template.".".$endung))); 
} 

function dooutput($template) { 
echo $template; 
}





Schritt 2.3: templates/action_ride.htm
Bevor wir irgendwelche Daten überprüfen und eintragen können, müssen wir erstmal eine Template aufbauen. Dies geschieht in der action_ride.htm. Folgende Zeilen fügen wir dort ein:

HTML

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
<style type="text/css"> 
.mainpage { 
background-color: #ffffff; 
} 

.tableoutborder { 
background-color: #000000; 
} 

.smallfont { 
font-size: 11px; 
font-family: Tahoma,Helvetica; 
} 

.normalfont { 
font-size: 13px; 
font-family: Tahoma,Helvetica; 
} 
</style> 
<meta http-equiv="refresh" content="5;URL=$ride"> 
</head> 

<div style="position:absolute; bottom:50%; top:50%; left:0px; right:0px; width: 100%" align="center"> 
<table style="width: 80%" cellpadding="4" cellspacing="1" border="0" class="tableoutborder"> 
<tr class="mainpage" valign="middle" align="center"> 
$output 
</tr> 
</table> 
</div>





Schritt 2.3: templates/action_error.htm
Bevor wir irgendwelche Daten überprüfen und eintragen können, müssen wir erstmal eine Template aufbauen. Dies geschieht in der action_error.htm. Folgende Zeilen fügen wir dort ein:

HTML

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
<style type="text/css"> 
.mainpage { 
background-color: #ffffff; 
} 

.tableoutborder { 
background-color: #000000; 
} 

.smallfont { 
font-size: 11px; 
font-family: Tahoma,Helvetica; 
} 

.normalfont { 
font-size: 13px; 
font-family: Tahoma,Helvetica; 
} 
</style> 

<div style="position:absolute; bottom:50%; top:50%; left:0px; right:0px; width: 100%" align="center"> 
<table style="width: 80%" cellpadding="4" cellspacing="1" border="0" class="tableoutborder"> 
<tr class="mainpage" valign="middle" align="center"> 
$output 
</tr> 
</table> 
</div>






Schritt 2.4: templates/register.htm
Bevor wir irgendwelche Daten überprüfen und eintragen können, müssen wir erstmal eine Template aufbauen. Dies geschieht in der templates/register.htm. Folgende Zeilen fügen wir dort ein:




HTML

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
<style type="text/css"> 
.tableinborder { 
background-color: #000000; 
} 

.tabletitle { 
color: #000000; 
background-color: #FF9933; 
background-image: url(images/cellpic.gif); 
} 

.smallfont { 
font-size: 11px; 
font-family: Tahoma,Helvetica; 
} 

.tableb { 
color: #000000; 
background-color: #CDCDCD; 
} 


.tableb_fc { 
color: #000000; 
} 


.tableb a:link, .tableb a:visited, .tableb a:active { 
color: #000000; 
text-decoration: underline; 
} 
.tableb a:hover { 
color: #000000; 
text-decoration: none; 
} 
.input { 
font-size: 12px; 
font-family: tahoma,helvetica; 
color: #000000; 
background-color: #cfcfcf; 
border:1px solid #000000; 
border-top-width : 1px; 
border-right-width : 1px; 
border-bottom-width : 1px; 
border-left-width : 1px; 
text-indent : 2px; 
} 
</style> 

<form method="post" action="action.php"> 
<table cellpadding="4" cellspacing="1" border="0" style="width:600" class="tableinborder"> 
<tr> 
<td class="tabletitle" align="left"><span class="smallfont"><b>Anmelden</b></span></td> 
</tr> 
<tr> 
<td class="tableb"><table cellpadding="0" cellspacing="5" align="center" class="tableb_fc"> 
<tr> 
<td><span class="smallfont">Benutzername:</span></td> 
<td><span class="smallfont"><input type="text" name="username" maxlength="50" size="20" class="input">&nbsp;&nbsp;&nbsp;&nbsp;</span></td> 
</tr> 
<tr> 
<td><span class="smallfont">Passwort:</span></td> 
<td><span class="smallfont"><input type="password" name="password" maxlength="10" size="20" class="input">&nbsp;&nbsp;&nbsp;&nbsp;</span></td> 
</tr> 
<tr> 
<td><span class="smallfont">E-Mail:</span></td> 
<td><span class="smallfont"><input type="text" name="email" maxlength="30" size="20" class="input">&nbsp;&nbsp;&nbsp;&nbsp;</span></td> 
</tr> 
<tr> 
<td><input type="submit" value="Registrieren" class="input"></td> 
</tr> 
</td> 
</tr> 
</table> 
<input type="hidden" name="action" value="reg"> 
</form>






Schritt 2.5: templates/error1.htm
Bevor wir irgendwelche Daten überprüfen und eintragen können, müssen wir erstmal eine Template aufbauen. Dies geschieht in der templates/error1.htm. Folgende Zeilen fügen wir dort ein:



HTML

1
2
3
4
5
6
7
8
9
<td> 
<span class="normalfont"> 
<b><b>Bitte f&uuml;llen sie alle Felder aus!</b> 
</span> 
<br> 
<span class="smallfont"> 
<a href="javascript:history.back();">Benutzen Sie den Zur&uuml;ck-Button Ihres Browsers oder klicken Sie hier!</a> 
</span> 
</td>






Schritt 2.6: templates/error2.htm
Bevor wir irgendwelche Daten überprüfen und eintragen können, müssen wir erstmal eine Template aufbauen. Dies geschieht in der templates/error2.htm. Folgende Zeilen fügen wir dort ein:



HTML

1
2
3
4
5
6
7
8
9
<td> 
<span class="normalfont"> 
<b><b>Der Benutzername ist leider schon vergeben!</b> 
</span> 
<br> 
<span class="smallfont"> 
<a href="javascript:history.back();">Benutzen Sie den Zur&uuml;ck-Button Ihres Browsers oder klicken Sie hier!</a> 
</span> 
</td>






Schritt 2.7: templates/note1.htm
Bevor wir irgendwelche Daten überprüfen und eintragen können, müssen wir erstmal eine Template aufbauen. Dies geschieht in der templates/note1.htm. Folgende Zeilen fügen wir dort ein:



HTML

1
2
3
4
5
6
7
8
9
<td> 
<span class="normalfont"> 
<b><b>$_REQUEST[username], vielen Dank f&uuml;r Ihre Anmeldung.</b> 
</span> 
<br> 
<span class="smallfont"> 
<a href="index.php">Falls die automatische Weiterleitung nicht funktioniert, klicken Sie bitte hier!</a> 
</span> 
</td>

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »JayT« (3. Juni 2010, 23:03)

 

JayT

Foren As

Dabei seit: 18.10.2002

Beiträge: 81

 

2 Zum Seitenanfang

Freitag, 4. Juni 2010, 22:36

Schritt 3.1: register.php
Nun kommen wir dort hin, dass das Template anzeigt wird, wo man seine Daten eintragen kann.
Folgende Zeilen fügen wir dort ein:

PHP-Quelltext

1
2
3
4
5
6
<?
require("function.inc.php");
require("config.inc.php");

eval("dooutput(\"".gettemplate("register")."\");");
?>




Schritt 3.2: action.php
Nun kommen wir dort hin, wo die Daten überprüft werden und eingetragen werden in der Datenbank.
Folgende Zeilen fügen wir dort ein:

PHP-Quelltext

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
<?
// Hiermit fügen wir die Dateien ein, damit eine Verbindung zur Datenbank hergestellt wird und das das Template angezeigt wird
require("config.inc.php");
require("function.inc.php");

if($_REQUEST[action] == "reg") {
    // Hiermit überprüfen wir ob die Felder alle ausgefüllt sind
    if(empty($_REQUEST[username]) or empty($_REQUEST[password]) or empty($_REQUEST[email])) {
        //Wenn nicht, dann wird angezeigt, dass die Felder vollständig ausgefüllt werden müssen
        eval ("\$output = \"".gettemplate("error1")."\";");
    }else{
        // Ansonsten ...
        // Jetzt wird überprüft ob der Benutzername schon vorhanden ist
        $user_query mysql_query("SELECT * FROM user WHERE username='$_REQUEST[username]'");
        if(mysql_fetch_object($user_query)) {
            // Wenn ja, wird angezeigt das er schon vorhanden ist
            eval ("\$output = \"".gettemplate("error2")."\";");
        }else{
            // Wenn nicht, wird der Benutzer in der Datenbank eingetragen
            mysql_query("INSERT INTO user (username, password, email) VALUES ('$_REQUEST[username]', '$_REQUEST[password]', '$_REQUEST[email]')");
            $ride "index.php";
            eval ("\$output = \"".gettemplate("note1")."\";");
        }
    }
}

if($ride) eval("dooutput(\"".gettemplate("action_ride")."\");");
else eval("dooutput(\"".gettemplate("action_error")."\");");
?>




Beim zweiten Teil geht es weiter mit dem Login und Logout!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »JayT« (4. Juni 2010, 22:36)

 

mantronik

Grünschnabel

Dabei seit: 01.08.2011

Beiträge: 0

 

3 Zum Seitenanfang

Montag, 1. August 2011, 18:06

da hat wohl einer angefangen und nicht weiter gemacht...
wäre gut wenn du das auch noch fortführen würdest, das käme mir zu gute!

erstma nen dank an das tut hoffe es kommt noch was! pls!!!
 

Ähnliche Themen