PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mini PHP-Tut



Crash-Override
23.07.2004, 01:41
So, Hier mal ein Mini-PHP Tut von mir, das die Verwendung,
die Funktionsweise und einige andere PHP-Themen aufzeigen
soll.

________________________________________________
PHP-Tut by Crash-Override

1. Kleine Einleitung

PHP ist eine Serverseitige Webbasierende Programmiersprache.
Das heißt die PHP Befehle werden schon auf dem Webserver interpretiert. Dies erfolgt indem der Server eine Kopie
der auf dem Server liegenden PHP-Datei erstellt, diese interpretiert, das heißt die Befehle ausführt und diese
in HTML formatiert.
Dazu ein einfaches Beispiel:


<?php
Echo “Hello World“;
?>


Dies ist ein PHP-Skript. Mit <?php wird dem Server
ausgerichtet das er ab hier PHP interpretieren soll.
Und mit ?> wird dem server mitgeteilt „Ab hier kein
PHP mehr bitte“.
Echo ist ein PHP Befehl und er sagt „Gib den Text
der in “ “ dahinter folgt auf dem Bildschirm aus.
Der Webserver wandelt das ganze dann in HTML um
sprich:


<html>
<body>
Hello World
</body>
</html>


Diese HTML-Befehle werden dann an den Browser des Users weitergesendet, der Sie wieder umwandelt und schließlich
sieht der User nur noch

Hello World

Auf seinem Bildschirm, genauer im Browser-Fentser. Dies
war aber auch nur ein einfacher PHP test.

Mit PHP kann man von Foren, über Gästebücher bis hin zu
Chats alles programmieren, wenn man nur weis wie.

2. Vorrausetzungen

Um mit PHP zu arbeiten benötigen Sie nur dreierlei Dinge,
die es alle kostenlos gibt. Erst einmal benötigen sie
einen Browser, wobei dafür auch Billig-Browser-IE oder
andere Browser (auch Linux Browser ;)) genügen. Zweitens
benötigen Sie einen Texteditor wie Notepad (oder ähnliche
Programme für Linux). Und zu guter letzt noch einen PHP-Untersützenden Webserver. Denn können sie sich entweder
zu Hause an ihrem PC einrichten oder einen Hoster aus
dem Internet wählen. Ich empfehle für den Anfang
letzteres (gut ist zum Beispiel www.funpic.de).

3. Aller Anfang ist…

.. in diesem Fall gar nicht so schwer…

Um zu überprüfen ob ihr Host PHP unterstützt erstellen
sie mithilfe ihres Textprogramms eine Datei namens
PHP-Test.php in der Folgendes steht:


<?php
phpinfo();
?>


Laden sie die Datei auf ihren Server und führen
Sie sie aus.

Unterstützt ihr Server PHP müssten sie ein
ähnliches Ergebnis bekommen wie ich hier:

[sorry Bild noch nicht online...
Hier sieht man etwas über die Aktuelle PHP Version
und vieles mehr]

Herzlichen Glückwunsch! Sie haben gerade PHP geschrieben.



Der Befehl “phpinfo( );“
Dieser Befehl fragt den server alle Informationen
über den aktuellen PHP Status ab.


4. if und else.

Vielleicht erinnert ihr euch noch an den Befehl “echo“



Der Befehl “ echo “ “; “
Der Echo befehl gibt Text auf dem Bildschirm aus.
Variabeln oder HTML-Befehle können ebenfalls in
echo Befehlen stehen und werden ordnungsgemäß
ersetzt, bzw. ausgeführt.


Schaut euch mal dieses Beispiel an:


<?php
$user = ’Crash-Override’;
$passwort = ’abc123’;

If($user == ‘Anna’)
{
If ($passwort = ‘abc123’)
{
Echo “Erfolgreich eingelogt”;
}
Else
{
Echo “Falsches Passwort!“;
}
}
Else
{
Echo “Falscher Benutzername!“;
}
?>


Mit $ wird eine Variable Bezeichnet.
(ACHTUNG: PHP unterscheidet zwischen Groß und
Kleinschreibung.)

If-Befehle werden wie folgt deklamiert:



If(X == Y)
{
Anweisung
}


Satt == könnte man auch folgendes einsetzen:

== Ist das selbe
>= Linkes ist größer
<= Rechtes ist größer
!= Ist nicht das selbe

Statt X bzw. Y irgendwelche Variabeln, Strings
(Zeichenketten in “ “) oder Zahlen.

Fortsetung folgt...
_____________________________________________
Ach ja, hier hab ich eine PDF-Offline-Version
zum Downlaod gemacht.

(Bitte Rechts klicken und Speichern unter benutzen)
http://ihrname.funpic.de/PHP.exe
_____________________________________________
edit:
Juhuu, dann wird daraus ein Fortsetzungs tut. Ich mach immer ein Update der PDF-Datei...

dadie
23.07.2004, 04:30
mmmm. recht schon fehl aber was.Trotz meiner
tollen rechtschreibung schreib ich was dazu.

5. F-open and co.

Also wir fangen was wir wollen ?

Daten Speichern ohne mysql.

Wie machen wir das ?


In dem wir alle Informationen in eine anderre datei rein schreiben.

wir fangen an :

wir haben ein formular mit folgenden feldern :

1.Name
2.Email
3.Wohnort
4.Homepage
5.Datum
6.Text

und wollen diese daten in eine datei schreiben.

Also bauen wir ein formular mit


<form name="Formular" action="leer-abfrage.php" method="post">

<input type="submit" value="Abschicken">
<input type="reset" value="Leeren" name="reset">

da muss aber noch was rein undzwar eben

1.Name
2.Email
3.Wohnort
4.Homepage
5.Datum
6.Text

also siht es so aus :



<form name="Formular" action="abfrage.php" method="post">
Name:
<input type="text" size="20" name="name">
<br>
<br>
Ihre eMail - Adresse:
<input type="text" size="20" name="email">
<br>
<br>
Wohnort:
<input type="text" size="20" name="home">
<br>
<br>
Homepage:
<input type="text" size="20" name="homepage">
<br>
<br>
Ihr Text:
<textarea cols="50" rows="10" name="text" id="text"></textarea>
<br><br>Smiley Einf&uuml;gen:<br>

<br>
<input type="submit" value="Abschicken">
<input type="reset" value="Leeren" name="reset">

so dann müssen aber die daten auch weiter gegeben werden.
Das macht der <form> dieser <form> fürt zu einer datei und behält dabei die Variablen.

so wie soll die afrage.php aussehn ?

so soll sie aussehn :



<?php



$datei = fopen("./test.txt","r");
//#############################
//mit fopen öffen wir daten.
// man kann jenach dem was man will fopen
//anderre Rechte geben
//
//r = Öffnet die Datei nur zum Lesen und positioniert den
// Dateizeiger auf den Anfang der Datei.
//
//r+ = Öffnet die Datei zum Lesen und Schreiben und setzt
//den Dateizeiger auf den Anfang der Datei.
//
//w = Öffnet die Datei nur zum Schreiben und setzt den
// Dateizeiger auf den Anfang der Datei sowie die Länge der
//Datei auf 0 Byte. Wenn die Datei nicht existiert wird
//versucht sie anzulegen.
//
//w+ = Öffnet die Datei zum Lesen und Schreiben und setzt
//den Dateizeiger auf den Anfang der Datei sowie die Länge
// der Datei auf 0 Byte. Wenn die Datei nicht existiert,
// wird versucht sie anzulegen.
//
//a = Öffnet die Datei nur zum Schreiben. Positioniert den
// Dateizeiger auf das Ende der Datei. Wenn die Datei nicht
// existiert, wird versucht sie anzulegen.
//
//a+ = Öffnet die Datei zum Lesen und Schreiben.
//Positioniert den Dateizeiger auf das Ende der Datei. Wenn
// die Datei nicht existiert, wird versucht sie anzulegen.

echo " $datei "
//wir haben r zum lesen genommen und können
// dann per echo die datei ausgeben.
//
//

?>


Um daten reinschreiben zulassen siht das so aus :



<?php



$datei = fopen("./test.txt","w");

$datum = date("j F, Y, H:i:s");
// mit date gibt man das datum aus

$input= "

<table border=\"0\">
<tr>
<td WIDTH=\"100%\" HEIGHT=\"3\" BGCOLOR=\"#000000\" >
</td>
<tr>
<td><strong>Von $name am $datum </strong><br> $homepage </td>
</tr>
<tr>
<td WIDTH=\"500\">$text</td>
</tr>
</table>
<br>

$datei "

// wir dürfen nicht fergessen " immer mit "\" zu escapen wenn
// wir es z.b. per echo wieder geben wollen.

// um die bestehenden daten nicht zu überschreiben muss das
// fwrite so aussehn

fwrite($datei,$input);

?>


und schon haben wir daten in eine tyt datei geschreiben udn können uns schnell und einfach ein Chat oder ein gäste buch bauen.

Ich hoffe das hat wer verstanden :D :D :D

chinmoku
23.07.2004, 17:35
Ey, cool ^^
Der Threadtitel hätte jetzt bei mir zwar kein Tutorial vermuten lassen, aber der post/thread könnte mir trotzdem zu Gute kommen.

Ich wollte eigentlich über google ein Tutorial suchen, aber so gehts schneller ^^'

dadie
23.07.2004, 18:51
mmmmmm.

Also mir ist noch was eingefallen.
Etwas für N00bs um PHP besser Verstehn zu können.

6. PHP Allgemein 2

Was ist PHP ?

PHP ist eine Serverseitige Script Sprache.Im
weitestens sinnne ist PHP eine Programmier sprache
(nur im weittesten sinne)

Was ist eine Variable ?

Das hat mir früher viel kopf weh gemacht.
Was sind den Variablen ?

Im grunde sind sie platz halter.
Um zahlen oder buchstaben auszugeben.

Man kann alles in Variablen speichern.
Jedoch ist der Speicher nur temporer.Was so viel heist wie.
Wenn ich auf seite A gehe udn dort die Variable $var1 den wert 1 hat und ich auf den Link zu seite B klicke ist dann auf seite B $var1 nicht 10 sondern nichts (leerzeichen).

Was bedeutet das $ ?

Mit dem $ sagt man dies ist eine Variable.
Variablen können jeden namen haben den es gibt.


7. Switches (TABS)

Ich kenne mich mit dem RPG maker aus da gibt es solche Switches (tabs) gibt es sowas auch in PHP ?

Jein.Ein Switch (tab) in php siht so aus




switch ($Variable) {
case "1":
echo "1";
break;
case "2":
echo "2";
break;

}




Hier die Erklärung :

Mit dem befehl switch ($Variable) {}
lesen wir eine Variable aus und prüffen sie ab.

Mit dem Befehl case "1": geben wir eine bedingung auf
die diese Variable haben muss um den folgenden quell text darzustellen.In diesem fall muss $Variable 1 sein um 1 auszugeben.

Das passier per echo "1"; das muss ich nicht erklähren oder ?

Dann kommt aber was Neues undzwar break;
break; heist soviel ENDE von case .
Bzw. mit break; beended man ein case Befehl.

Wozu brauch man das ?
Naja es siht einfach übersichtlicher aus als die if fariante die so aussehn würde :




if($Variable == "1")
{
echo "1"
}

if($Variable == "2")
{
echo "2"
}



dazukommt das so die datei manchmal unnötich in die grösse gezogen wird.Was ja nicht so gut ist für die ladezeit.

Manni
23.07.2004, 20:34
Original geschrieben von dadie
7. Switches (TABS)

Ich kenne mich mit dem RPG maker aus da gibt es solche Switches (tabs) gibt es sowas auch in PHP ?

Jein.Ein Switch (tab) in php siht so aus


switch ($Variable) {
case "1":
echo "1";
break;
case "2":
echo "2";
break;

}


Das ist aber net gut erklärt -_-
wegen diesem
switch ($Variable) könnte man auf falsche Gedanken kommen :D
Aber ansonsten nett... Aber wirklich nur für Noobs...

Manni

Crash-Override
23.07.2004, 20:57
Nun gut, jetzt ein Praxisbeispiel eines Gästebuchs (das sich wirklich alle zu wünschen) -.-"

8. PHP in der Praxis 1 (Crash-Override)

Heute wollen wir mal PHP in der Praxis anhand eines Beispiels benutzen.

Heute programmieren wir ein Gästebuch mithilfe einer Textdatei.

Zuerst benötigen wir eine HTML-Datei zum eingeben von Einträgen.

Diese hat folgenden Aufbau:

<html>
<head>
<title>Crash’s kleines GB</title>
</head>
<body>
<form method="post" action="schreibe.php">
Name: <input type="text" name="name"><br>
E-Mail: <input type="text" name="email"><br>
Text: <textarea name="text"></textarea><br>
<input type="submit" name="Button" value="Absenden">
</form>
</body>
</html>

Wie ihr seht: Kein PHP in dieser Datei.

Diese Datei sichern wir jetzt unter dem Namen eintrag.html.

Mit „<form method="post" action="schreibe.php">“ wird
festgelegt was mit den Einträgen passiert, in diesm Fall
werden sie an schreibe.php weitergeleitet.

Nun schreiben wir mal diese schreibe.php …

<html>
<head>
<title>Crash’s kleines GB</title>
</head>
<body>
<?php
$_POST['text'] = nl2br ( $_POST['text'] );
$daten=$_POST['text']."<br>von <a href=mailto:".$_POST['email'].">".$_POST['name']."</a> <br><hr />";
$datenbank = "eintraege.dat";
$datei = fopen($datenbank,"a");
fwrite($datei, $daten);
?>
Danke das Sie sich in mein Gästebuch eingetragen haben.
<a href="Anzeige.php">Zurück zum Gästebuch</a>
</body>
</html>

Die an diese Datei gesendeten Daten können nun mittels der Variabeln abgefragt werden (Die Variable trägt den Namen den das Eingabefeld trug.
D.H:
Sendet man

E-Mail: <input type="text" name="email">
An eine andere Datei kann man sie mittels $email abfragen.

So, nun brauchen wir noch die Datei Anzeige.php die alle bisherigen Einträge anzeigt.

Diese sieht so aus:

<html>
<head>
<title>Crash’s kleines GB</title>
</head>
<body>
<center><h2>Paddy’s Gästebuch</h2><br>
<a href="eintrag.htm">In mein Gästebuch eintragen</a></center>
<br>
<?php
$datenbank = "eintraege.dat";
$datei = fopen($datenbank,"r");
fpassthru($datei);
?>
</body>
</html>
<?php

Tja, mit ein paar HTML-Kenntnissen und dem Wissen aus den Vorherigen Teilen müsstet ihr alles verstanden haben.

edit: Danke nochmal an mitaki der mir jetzt endlich meien fehler gezeigt hat...

mitaki
23.07.2004, 21:12
nein, nein, bitte ... nicht ... Was hast du nur getan?

Eure Arbeit in allen Ehren, aber ich denke, dass dieses Tutorial nur den wenigsten helfen kann (falls überhaupt).

Crash-Override, manche Informationen sind schlicht falsch, andere zu kurz angeschnitten.

dadie, auch bei dir gibt es das Problem der unvollständigkeit, was z.B. wenn register_globals auf Off steht (gilt auch für dich Crash-Override), oder eine Variable $123 heißt?
Logikfehler: was hat z.B. $datum mit fopen() zu tun? Nebenbei ist der HTML Code in einem schlechtem Stil.
Wäre ich nicht in diesem Forum unterwegs würde mich der Begriff RPG Maker nur noch mehr verwirren, d.h. bei einem Tutorial sollte man sich auf das wesentliche konzentrieren.

Ich werde mal eine Liste von Tutorials zusammenstellen, die ich für wirklich hilfreich halte.

dadie
24.07.2004, 03:39
@mitaki

Sorry habe mich verschreiben.Das sagt mir auch keiner.

:rolleyes: :rolleyes: :rolleyes:

9. THE FINAL GB MIT TXT (ist im aufbau)

Hi ,

Wir bauen Heute ein GB mit allem Drum und dran.
(leider Ohne admin Menu)

Mit Smillies und eine recht tollen Optik.

Was brauchen wir ?

legt folgende leer datein an :

ausgabe.php
leer-abfrage.php
eintrag.html
schreiben.php
daten.txt
popup.txt
styl.txt


Was soll die ausgabe.php machen ?

Sie soll Oben udn unten einen Link haben um sich in das GB
einzutragen udn in der mitte solleb die einträge stehn.

Wie machen wir das ?

wir fangen an :


<?php

$filename = "daten.txt";
//in die Variable kommt der name der datei in die
//geschreiben werden soll.Wichitg ist dabei
//das diese datei per FPT programm die zugriff nummer 777
//bekommt !!!!!!!!!

$fp = fopen ($filename, "r");
//Hiermit öffen wir die datei und speichern
//diesen öffnungs befehl in eine Variable ab
//um sie später aufzuruffen



echo "$fp" ;

?>

so was machen wir hier ?

Wir öffnen die datei per fopen udn speichern so den inhalt
der datei in die Variable $fp ab.Diesen inhalt geben wir dann per echo aus.Da aber bsiher die datei leer ist bringt das reichlich wennich.

Was nun ?

Als zweiten schritt kommen die Links zum eintragen


zu erst schreiben wir folgenden quelltext in die datei popup.txt




<br>
<script LANGUAGE="JavaScript">
<!--
function newwin(win, title, w, h, resize, scrollbars, toolbar)
{ // Neues Fenster anzeigen
var param = "height=" + h + ",width=" + w + ",resizable=" + resize + "scrollbars=" + scrollbars + ",toolbar=" + toolbar;
neues = window.open(win,title,param);
}
// -->
</script>

<script LANGUAGE="JavaScript1.1">

<!--
function newwin(win, title, w, h, resize, scrollbars, toolbar)
{ // Neues Fenster anzeigen
var param = "height=" + h + ",width=" + w + ",resizable=" + resize + "scrollbars=" + scrollbars + ",toolbar=" + toolbar;
if (window.neues) {
if (neues.closed == 0) {
neues.focus();
}
}
neues = window.open(win,title,param);
neues.focus();
}
// --></script>


<a href="javascript:newwin('./eintrag.html','',350,350,'yes')"><h5>[Eintrag erstellen...]</h5></a>



<br>





<?php

$filename = "daten.txt";
$filenamepopup = "popup.txt";


$fp = fopen ($filename, "r+");
$popup = fopen ($filenamepopup, "r+");

$fp = fread ($fp, filesize ($filename));
$popup = fread ($popup, filesize ($filenamepopup));


echo $popup;

echo $fp;

echo $popup;

?>



so nun ist die ausgabe.php fürst erste fertig.

Nun fangen wir an die datei eintragen.html
zu beschreiben.

Was soll diese datei machen ?

Man soll daten ein tragen können.

Welche daten ?

1.Name
2.E-mail
3.HP
4.Text

Also brauchen wir 4 schreib felder.

Also schreiben wir los dann siht die datei so aus :


<html>
<head>
</head>
<body>
<input type="text" size="20" name="name"><br>

<input type="text" size="20" name="email"><br>

<input type="text" size="20" name="home"><br>


<textarea cols="50" rows="10" name="text" id="text"></textarea>
</body>
</html>

so nun weiss aber der User noch nicht wo er was eintragen soll.Also geben wir ihnen Namen.
Dann siht der code so aus :



<html>
<head>
</head>
<body>
Ihr Name :<input type="text" size="20" name="name"><br>

Ihre eMail - Adresse:<input type="text" size="20" name="email"><br>

Ihre Homepage :<input type="text" size="20" name="home"><br>


Ihr Text :<textarea cols="50" rows="10" name="text" id="text"></textarea>
</body>
</html>


so soweit so gut.Doch die daten muss ja auch ihrgentwie weiter gegeben werden.Das geht dann per <form> tag

Also siht alles am schluss so aus :



<html>
<head>
</head>
<body>
<form name="Formular" action="leer-abfrage.php" method="post">
Ihr Name :<input type="text" size="20" name="name"><br>

Ihre eMail - Adresse:<input type="text" size="20" name="email"><br>

Ihre Homepage :<input type="text" size="20" name="home"><br>


Ihr Text :<textarea cols="50" rows="10" name="text" id="text"></textarea>
<input type="submit" value="Abschicken">
<input type="reset" value="Leeren" name="reset">

</body>
</html>


so und somit ist die datei eintrag.html forerst fertig.

machen wir uns an die datei leer-abfrage.php.

Was soll diese datei machen ?

Sie soll prüffen ob die 2 wichtigen felder name und text
auch beschreiben sind.

Dem endsprechen sit sie recht kurz so siht sie aus :



<?php


$text = ereg_replace("<","",$text);
$text = ereg_replace(">","",$text);

$name = ereg_replace("<","",$name);
$name = ereg_replace(">","",$name);

$email = ereg_replace("<","",$email);
$email = ereg_replace(">","",$email);

$home = ereg_replace("<","",$home);
$home = ereg_replace(">","",$home);
$home = ereg_replace("http://","",$home);

// mit ereg_replace deactivieren wir html auf die einfachste
// art und weisse.In dem wir < und > in "" umwandeln
//(leerzeichen)


if (empty($name)) {
echo "gib bitte einen namen ein"; }
else {
if (empty($text)) {
echo "gib bitte einen text ein"; }

else
{
echo "<META HTTP-EQUIV=Refresh CONTENT=\"0 ;
URL=schreiben.php?name=$name&email=$email&home=$home&text=$text&an=1\"> ";
}
}
// wenn wir daten weiter geben wollen kann man das auch per
//also
//xyz.php?variablennamendendiesevariableaufder
//nägstenseitehabensoll=$variable

?>


so diese datei ist endgültich fertig.Und muss nur bei bedarv edirt werden z.b. um wörter zu zensieren.

machen wir uns an die datei

schreiben.php

sie ist das HERZ stück und auch das einzich schwere

Was soll diese datei machen ?

Sie soll die daten NUR einmal reinschreiben.
Dabei soll sie immer oben stehn , und es soll
der text kommen "Danke für den eintrag"

Wie machen wir das ?

Als erstes öffen wir daten.txt per fopen wie oben schon einmal dargestellt so siht der quelltext aus :



<?php
if($an == "1")
{
$filename = "daten.txt";

$fp = fopen ($filename, "r+");
}
else
{ echo "Fehler 001 Datei falsch geöffnet !";
}
?>


so was machen wir ?

Wir öffnen die datei mit fopen jedoch nutzen wir nun
r+

Was bringt r+ ?

r+ bedeutet soviel wie :
Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei.

Aber das steht da ganz oben schon in meinem Kapitel fopen

Was muss nun noch gemacht werden ?

Daten mussen geschreiben werden und der text
"Danke für den eintrag" soll kommen

das lösen wir so



<?php
if($an == "1")
{
$filename = "daten.txt";

$fp = fopen ($filename, "r+");

$fp2 = fread ($fp, filesize ($filename));

if ($email == "")
{ $name2 = $name ;
}
else {
$name2 = "<a href=\"mailto:$email\" >$name</a>"; }

//Also wenn die email leer ist ist name2 (das ist die
//Variable die später in die datei geschreiben wird)
//wenn sie jedoch beschreiben sit soll der name gleich
//zeitich als link zu der email dienen.
//Machen wir weiter

if ($home == "")
{ $homep = ""; }
else
{ $homep = "Homepage: <a href=\"http://$home\"; >$home</a>";}

//Hier ist das selbe wie bei der email

$text = wordwrap($text, 52);
$text = nl2br($text);

// Durch wordwrap machen wir nach 52 zeichen
//in der variable text automatisch ein <br>
//(einen zeilen umbruch)

//mit nl2br erhalten wir die schreib form
//des eintrags.
$datum = date("j F, Y, H:i:s");

//mit date geben wir ein datum aus und
//speichern es in eine Variable ab

$input= "

<table border=\"0\">
<tr>
<td WIDTH=\"100%\" HEIGHT=\"3\" BGCOLOR=\"#000000\" >
</td>
<tr>
<td WIDTH=\"500\"><strong>Von $name2 am $datum </strong><br> $homep </td>
</tr>
<tr>
<td WIDTH=\"500\">$text</td>
</tr>
</table>
<br>

$fp2

";


$del = fopen("daten.txt","w+");
fclose($del);

//hiermit löschen wir den inhalt der datei
//damit die Neuesten beiträge immer oben sind



//so die variable input wollen wir nun in die datei
//daten.txt schreiben.Dasmachen wir per fwrite
fwrite($fp,$input);
fclose($fp);
echo " Danke für den eintrag <br>bitte Schliessen sie dieses Popup Fenster.DANKE";

}
else
{ echo "Fehler 001 Datei falsch geöffnet !";
}
?>




So im Grobben ist das GB nun fertig.
Es siht nicht toll aus aber es funtzt.

So nun fehlt aber noch der styl oder ?

so dafür müssen wir die datei ausgabe.php
Edieren bisher sah sie so aus :



<?php

$filename = "daten.txt";
$filenamepopup = "popup.txt";


$fp = fopen ($filename, "r+");
$popup = fopen ($filenamepopup, "r+");
$fp = fread ($fp, filesize ($filename));
$popup = fread ($popup, filesize ($filenamepopup));

echo $popup;

echo $inhalt;

echo $popup;

?>


Hier fehlt noch die css Formatierung

also schreiben zuerst die css daten in die datei

styl.txt die wir bisher nicht beachtet hatten
wir nehmen folgenden css code :




<html>
<head>

<STYLE TYPE="text/css">

body{background:#6a8b5c url(http://) no-repeat;}

TD{font:11px Verdana,Arial,Geneva;color:#000000;text-decoration:None;}
A.wmlink:link,A.wmlink:visited,A.wmlink:active,A.wmlink:hover{font:11px

Verdana,Arial,Geneva;color:#0000FF;text-decoration:underline;}
A.b:link,A.b:visited,A.b:active{font:bold 11px

Verdana,Arial,Geneva;color:#0000FF;text-decoration:None;}
A.b:hover{font:bold 11px

Verdana,Arial,Geneva;color:#FF0000;text-decoration:None;}
TD.h{font:bold 13px Verdana,Arial,Geneva; color:#000000;

text-decoration:None;}
TD.b{font:bold 11px

Verdana,Arial,Geneva;color:#000000;text-decoration:None;}
INPUT.NL{font-family:monospace;font-size:12px;}
TD.MONO {font-family:monospace;font-size:14px;}

</STYLE>




</head>
</html>




um diese datei einzufüggen nutzen wir wieder fopen
dan siht die ausgabe.php so aus :



<?php

$filename = "daten.txt";
$filenamepopup = "popup.txt";
$filenamecss = "styl.txt";


$fp = fopen ($filename, "r+");
$popup = fopen ($filenamepopup, "r+");
$css = fopen ($filenamecss, "r+");

$fp = fread ($fp, filesize ($filename));
$popup = fread ($popup, filesize ($filenamepopup));
$css = fread ($css, filesize ($filenamecss));

echo $css;

echo $popup;

echo $fp;

echo $popup;

?>


10.Das GB sicherheits UPDATE+Smillis

Bisher haben wir eine leerabfrage gehabt.Leider
kann es zu BUG bzw. Null einträgen führen wenn jemand
anderer das GB kennt.Um den endgegen zu wirken
verbinden wir nun die leer-abfrage und die schreibeen.php

Also so sahen bisher ide beiden daten aus :

leer-abfrage.php



<?php


$text = ereg_replace("<","",$text);
$text = ereg_replace(">","",$text);

$name = ereg_replace("<","",$name);
$name = ereg_replace(">","",$name);

$email = ereg_replace("<","",$email);
$email = ereg_replace(">","",$email);

$home = ereg_replace("<","",$home);
$home = ereg_replace(">","",$home);
$home = ereg_replace("http://","",$home);

// mit ereg_replace deactivieren wir html auf die einfachste
// art und weisse.In dem wir < und > in "" umwandeln
//(leerzeichen)


if (empty($name)) {
echo "gib bitte einen namen ein"; }
else {
if (empty($text)) {
echo "gib bitte einen text ein"; }

else
{
echo "<META HTTP-EQUIV=Refresh CONTENT=\"0 ;
URL=schreiben.php?name=$name&email=$email&home=$home&text=$text&an=1\"> ";
}
}
// wenn wir daten weiter geben wollen kann man das auch per
//also
//xyz.php?variablennamendendiesevariableaufder
//nägstenseitehabensoll=$variable

?>


Schreiben.php



<?php
if($an == "1")
{
$filename = "daten.txt";

$fp = fopen ($filename, "r+");

$fp2 = fread ($fp, filesize ($filename));

if ($email == "")
{ $name2 = $name ;
}
else {
$name2 = "<a href=\"mailto:$email\" >$name</a>"; }

//Also wenn die email leer ist ist name2 (das ist die
//Variable die später in die datei geschreiben wird)
//wenn sie jedoch beschreiben sit soll der name gleich
//zeitich als link zu der email dienen.
//Machen wir weiter

if ($home == "")
{ $homep = ""; }
else
{ $homep = "Homepage: <a href=\"http://$home\"; >$home</a>";}

//Hier ist das selbe wie bei der email

$text = wordwrap($text, 52);
$text = nl2br($text);

// Durch wordwrap machen wir nach 52 zeichen
//in der variable text automatisch ein <br>
//(einen zeilen umbruch)

//mit nl2br erhalten wir die schreib form
//des eintrags.
$datum = date("j F, Y, H:i:s");

//mit date geben wir ein datum aus und
//speichern es in eine Variable ab

$input= "

<table border=\"0\">
<tr>
<td WIDTH=\"100%\" HEIGHT=\"3\" BGCOLOR=\"#000000\" >
</td>
<tr>
<td WIDTH=\"500\"><strong>Von $name2 am $datum </strong><br> $homep </td>
</tr>
<tr>
<td WIDTH=\"500\">$text</td>
</tr>
</table>
<br>

$fp2

";


$del = fopen("daten.txt","w+");
fclose($del);

//hiermit löschen wir den inhalt der datei
//damit die Neuesten beiträge immer oben sind



//so die variable input wollen wir nun in die datei
//daten.txt schreiben.Dasmachen wir per fwrite
fwrite($fp,$input);
fclose($fp);
echo " Danke für den eintrag <br>bitte Schliessen sie dieses Popup Fenster.DANKE";

}
else
{ echo "Fehler 001 Datei falsch geöffnet !";
}
?>


nun verbinden wir diese beiden das siht dann so aus :

wir nenen diese datei leer-abfrage.php
und können nun die datei schreiben.php Löschen
so siht dann die leer-abfrage.php aus :



<?php


$text = ereg_replace("<","",$text);
$text = ereg_replace(">","",$text);

$name = ereg_replace("<","",$name);
$name = ereg_replace(">","",$name);

$email = ereg_replace("<","",$email);
$email = ereg_replace(">","",$email);

$home = ereg_replace("<","",$home);
$home = ereg_replace(">","",$home);
$home = ereg_replace("http://","",$home);

// mit ereg_replace deactivieren wir html auf die einfachste
// art und weisse.In dem wir < und > in "" umwandeln
//(leerzeichen)


if (empty($name)) {
echo "gib bitte einen namen ein"; }
else {
if (empty($text)) {
echo "gib bitte einen text ein"; }

else
{

$filename = "daten.txt";

$fp = fopen ($filename, "r+");

$fp2 = fread ($fp, filesize ($filename));

if ($email == "")
{ $name2 = $name ;
}
else {
$name2 = "<a href=\"mailto:$email\" >$name</a>"; }

//Also wenn die email leer ist ist name2 (das ist die
//Variable die später in die datei geschreiben wird)
//wenn sie jedoch beschreiben sit soll der name gleich
//zeitich als link zu der email dienen.
//Machen wir weiter

if ($home == "")
{ $homep = ""; }
else
{ $homep = "Homepage: <a href=\"http://$home\"; >$home</a>";}

//Hier ist das selbe wie bei der email


$text = wordwrap($text, 52);
$text = nl2br($text);

// Durch wordwrap machen wir nach 52 zeichen
//in der variable text automatisch ein <br>
//(einen zeilen umbruch)

//mit nl2br erhalten wir die schreib form
//des eintrags.
$datum = date("j F, Y, H:i:s");

//mit date geben wir ein datum aus und
//speichern es in eine Variable ab

$input= "

<table border=\"0\">
<tr>
<td WIDTH=\"100%\" HEIGHT=\"3\" BGCOLOR=\"#000000\" >
</td>
<tr>
<td WIDTH=\"500\"><strong>Von $name2 am $datum </strong><br> $homep </td>
</tr>
<tr>
<td WIDTH=\"500\">$text</td>
</tr>
</table>
<br>

$fp2

";


$del = fopen("daten.txt","w+");
fclose($del);

//hiermit löschen wir den inhalt der datei
//damit die Neuesten beiträge immer oben sind



//so die variable input wollen wir nun in die datei
//daten.txt schreiben.Dasmachen wir per fwrite
fwrite($fp,$input);
fclose($fp);
echo " Danke für den eintrag <br>bitte Schliessen sie dieses Popup Fenster.DANKE";



}
}


?>



so siht doch schon recht ordentlich aus oder ?
Jedoch habe ich oben was von Smillis gefasselt oder nicht ?

Das kommt jetzt.

Mit dem code wie man smillis einbaut kann man auch bb code einbauen es sit eigentlich GANZ easy.

Zum testen nehmen wir nur 1 smilli
mit dem code [gg].

Wo müssen wir also rumbassteln ?

In 2 datein in der ausgabe.php datei und in der
eintrag.html datei.

Fangen wir mit der ausgabe.php an siht siht bsiher so aus :



<?php

$filename = "daten.txt";
$filenamepopup = "popup.txt";
$filenamecss = "styl.txt";


$fp = fopen ($filename, "r+");
$popup = fopen ($filenamepopup, "r+");
$css = fopen ($filenamecss, "r+");

$fp = fread ($fp, filesize ($filename));
$popup = fread ($popup, filesize ($filenamepopup));
$css = fread ($css, filesize ($filenamecss));

echo $css;

echo $popup;

echo $fp;

echo $popup;

?>


nun fügen wir einen neuen code ein zwischen den
beiden echo $popup; .

Hier der code :

$fp = str_replace("[gg]","<img src=\"http://forum.rpg-ring.com/forum/images/smilies/s_004.gif\">",$fp);
so siht dann die ausgabe.php aus :



<?php

$filename = "daten.txt";
$filenamepopup = "popup.txt";
$filenamecss = "styl.txt";


$fp = fopen ($filename, "r+");
$popup = fopen ($filenamepopup, "r+");
$css = fopen ($filenamecss, "r+");

$fp = fread ($fp, filesize ($filename));
$popup = fread ($popup, filesize ($filenamepopup));
$css = fread ($css, filesize ($filenamecss));

echo $css;

echo $popup;


$fp = str_replace("[gg]","<img src=\"http://forum.rpg-ring.com/forum/images/smilies/s_004.gif\">",$fp);

echo $fp;

echo $popup;

?>


so nun wird der code [gg] zwar als smilli dargestellt jedoch
weiss das kein User.Also müssen wir was an der eintrag.html
ändern wie oben schon gesagt.

also so sah die datei eintrag.html bisher aus :



<html>
<head>
</head>
<body>
<form name="Formular" action="leer-abfrage.php" method="post">
Ihr Name :<input type="text" size="20" name="name"><br>

Ihre eMail - Adresse:<input type="text" size="20" name="email"><br>

Ihre Homepage :<input type="text" size="20" name="home"><br>


Ihr Text :<textarea cols="50" rows="10" name="text" id="text"></textarea>
<input type="submit" value="Abschicken">
<input type="reset" value="Leeren" name="reset">

</body>
</html>


Wie machen wir das mit den smillis ?

Per java mit diesem script

<script language="JavaScript">
<!--
function setsmile(Zeichen) {
document.Formular.text.value = document.Formular.text.value + Zeichen;
}
//-->
</script>

<a href="javascript:setsmile(' [gg] ')"><center><img src="http://forum.rpg-ring.com/forum/images/smilies/s_004.gif" border=0></center></a>

und so siht das ganze eingebaut aus :



<html>
<head>
<script language="JavaScript">
<!--
function setsmile(Zeichen) {
document.Formular.text.value = document.Formular.text.value + Zeichen;
}
//-->
</script>
</head>
<body>
<form name="Formular" action="leer-abfrage.php" method="post">
Ihr Name :<input type="text" size="20" name="name"><br>

Ihre eMail - Adresse:<input type="text" size="20" name="email"><br>

Ihre Homepage :<input type="text" size="20" name="home"><br>


Ihr Text :<textarea cols="50" rows="10" name="text" id="text"></textarea>
<a href="javascript:setsmile(' [gg] ')"><center><img src="http://forum.rpg-ring.com/forum/images/smilies/s_004.gif" border=0></center></a>
<input type="submit" value="Abschicken">
<input type="reset" value="Leeren" name="reset">

</body>
</html>


11.Das ADMIN Menu

so nun ist das GB recht fertig.
eigentlihc sollte das tut hier zu ende sein aber
ich habe mir gedacht ein admin menu
währe sehr nutzlich darum kommt hier das Admin Menu.

Was wollen wir mit dem Admin Menu machen ?

1.Wir wollen den styl edierenkönnen
2.Wir wollen per mausklick Smillies hinzufügen können
3.Wir wollen beitrege edieren können.

Womit fangen wir an ? mit Punkt 2 fangen wir an

als erstes legen wir eine datei an smillies.txt
dann noch einen ordner für die smillies
wir nenen ihn mal "sm-img" (ohne ") .

also damit die einträge später in die datei smillies.txt
auch was bringt edieren wir zuerst die datei ausgabe.php

Sie sah bsiher so aus :



<?php

$filename = "daten.txt";
$filenamepopup = "popup.txt";
$filenamecss = "styl.txt";


$fp = fopen ($filename, "r+");
$popup = fopen ($filenamepopup, "r+");
$css = fopen ($filenamecss, "r+");

$fp = fread ($fp, filesize ($filename));
$popup = fread ($popup, filesize ($filenamepopup));
$css = fread ($css, filesize ($filenamecss));

echo $css;

echo $popup;


$fp = str_replace("[gg]","<img src=\"http://forum.rpg-ring.com/forum/images/smilies/s_004.gif\">",$fp);

echo $fp;

echo $popup;

?>



so aus
$fp = str_replace("[gg]","<img src=\"http://forum.rpg-ring.com/forum/images/smilies/s_004.gif\">",$fp);

soll ein fopen werden.Dann siht die datei so aus :



<?php

$filename = "daten.txt";
$filenamepopup = "popup.txt";
$filenamecss = "styl.txt";
$filenamesmimg = "smillies.txt";


$fp = fopen ($filename, "r+");
$popup = fopen ($filenamepopup, "r+");
$css = fopen ($filenamecss, "r+");
$sm = fopen ($filenamesmimg, "r+");


$fp = fread ($fp, filesize ($filename));
$popup = fread ($popup, filesize ($filenamepopup));
$css = fread ($css, filesize ($filenamecss));
$sm = fread ($sm, filesize ($filenamesmimg));

echo $css;

echo $popup;

$sm ;

echo $fp;

echo $popup;

?>





Zu testen sit es unter dieser URL

http://dlcc.funpic.de/1234GB/ausgabe.php

mitaki
24.07.2004, 04:48
Sorry habe mich verschreiben.Das sagt mir auch keiner.Nun, genau das sollte eben nicht passieren. Ich sage ja nichts, wenn sich hier und da Rechtschreibfehler im Text befinden (obwohl das auch manchen Eindruck hinterlassen kann), aber zumindest von Code erwartet man, dass der Autor ihn selbst testet bzw. wirklich weis, was er da schreibt (und ich denke, so leid es mir tut, bei dir ist das nicht der Fall).

Wir bauen Heute ein GB mit allem Drum und dran.
(leider Ohne admin Menu)Sehr wiedersprüchlich, oder?
echo "$fp" ; Gibt "Resource id #2" aus.

Was, wenn man schnell einen HTML Code per Gästebuch weitergeben möchte? Sieh dir mal die Funktion htmlspecialchars() an.

Wenn du auf die schreiben.php per meta verweist, bringt dir die ganze leer-abfrage nichts, ich schreibe einfach schreiben.php?name=&email=&home=&text=&an=1.


So im Grobben ist das GB nun fertig.
Es siht nicht toll aus aber es funtzt.Das nenn ich die Höhe. Versuch's.

Crash-Override
24.07.2004, 05:06
@mitaki
ok, das tut von dadie ist fehlerhaft...

http://ihrname.funpic.de/Neuer%20Ordner/

Aber fals du einen Fehler in meinem Tut siehst, dann sag mir bitte den Fehler und ich berichtige ihn gerne...

dadie
24.07.2004, 05:41
@Crash-Override

Ich habe meinen BUG gefunden (du anscheinend nicht)

ich musste noch den fopen befehl per fread
sichtbar machen oder so ka. hauptsache es funtzt.

@mitaki

Ich baue das Tut gerade auf es wir ein sehr sehr langes tut.

Crash-Override
24.07.2004, 05:55
Original geschrieben von dadie
@Crash-Override

Ich habe meinen BUG gefunden (du anscheinend nicht)

ich musste noch den fopen befehl per fread
sichtbar machen oder so ka. hauptsache es funtzt.

@mitaki

Ich baue das Tut gerade auf es wir ein sehr sehr langes tut.

Ja, hab ich nciht. Wenn du ihn sieht, dann zeig ihn mir...

Dein GB funzt nach wie vor net. Mit FireFox bekomm ich wnn ich n Eintarg machen will immer "Fehler. Zeitüberschreitung..."

edit: Hab auf meinem server upgedatet, funzt aber genauso wenig sry.

edit2:
1.Fehler im Popup läd net wenn man eintragen.html "manuell" öffnet und alles eingibt kommt das hier:


Warning: fwrite(): supplied argument is not a valid stream resource in /usr/export/www/vhosts/funnetwork/hosting/ihrname/Neuer Ordner/schreiben.php on line 63

Warning: fclose(): supplied argument is not a valid stream resource in /usr/export/www/vhosts/funnetwork/hosting/ihrname/Neuer Ordner/schreiben.php on line 64
Danke für den eintrag
bitte Schliessen sie dieses Popup Fenster.DANKE

Manni
24.07.2004, 20:38
Eine kleine Frage?
Warum macht ihr das so kompliziert und holt die entsprechenden Dateien nicht einfach mit include(); da rein?

@ dadie
Das mit den Smilies geht net -_-

dadie
24.07.2004, 20:42
es gibt einen grund warum ich kein include();
nutz ich will doch noch ein Admin menu nutzen in dem man alles verstellen kann.

Zu den smillies seid 5 Uhr morgen tüftel ich dran.

Ich suche dne bug doch finden kann ich ihn noch nicht.

EDIT BUG BEHOBEN