Webhilfe.info/board

Normale Version: Das erste große PHP Script
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

Ich möchte gerne mal mein erstes großes PHP Projekt beginnen. Ich habe mir gedacht, mach das mal online, dann haben alle was davon und du kannst auch gleich Fragen stellen.

Das bedeutet, es stellt praktisch ein Tut da, kann dann ja später verschoben werden.

Mein Ziel ist es, ein PHP Script zu erstellen, welches man auf Websites als Kommentarfunktion für die News einbinden kann. Ich kann keinen Gefallen an den Scripten von z.B. Fresh finden, sie sind mir zu umständlich. (Net falsch verstehn)

Also dachte ich nur ein ein Kommentar Script, welches via Klick auf "Kommentar-hinzufügen" in den News erreicht werden kann. Es soll erstma nix besonderes sein. Man soll nach dem klick ein Eingabefeld erhalten, mit "Name" Platzhalter. Mehr nicht. Die hinzugefügten Kommentare sollen in einer weiteren Datei gespeichert werden. (Oder in einer MySQL Datenbank)

Anschließend sollten sie via Klick in den News auf "Kommentare lesen" erreichbar sein.

Dürfte nicht soo schwer zu machen sein oder? Ich würde mich freuen wenn alle die einen Tip haben mitmachen, jedoch nicht wenn einer es an nem Nachmittag alleine hat. Ich fände es toll wenn jeder, der einen Tip abgibt, kurz beschreibt was er gemacht hat und auch warum. (auf die eingene Idee stolz sei Wink)

Ich fange mal klein an:

[php:1]
<table width="391" height="168" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="101">Name*</td>
<td width="290"><input type="text" name="name"></td>
</tr>
<tr>
<td>Kommentar*</td>
<td><textarea name="eingabefeld" cols="40" rows="10"></textarea></td>
</tr>
<tr>
<td>*muss ausgef&uuml;llt sein</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Kommentar absenden"></td>
</tr>
<?php
//Variablen
$fehler = "Du hast vergessen, deinen Namen anzugeben";
$fehler2 = "Du musst ein Kommetar schreiben";

if(empty($name)){ echo "$fehler"; }
if(empty($kommentar)){ echo "$fehler2"; }

//MySQL Teil
[/php:1]
So. Kleiner Anfang. Weiter komm ich erstmal nicht, da ich glaube dass jetzt der MySQL Teil kommen sollte und ich bin in meinem Buch noch nicht bei MySQL angekommen Wink

Auch auf die Gefahr hin dass eh jeder weis was das oben heißt, zuerst habe ich das Layout mit html gemacht. Dann habe ich mit PHP überprüft (empty() ob was in den Feldern steht. Ist das nicht der fall wird eine der oben festgelegten Variablen ausgeschrieben. (echo "")

Ich kann halt jetzt nicht mehr. Bin der Meinung praktisch arbeiten bringt mehr als nur zu lesen...

Gruß christian
Jaja so ist das, selber schreiben macht nunmal mehr Spaß.

Ich möchte jetzt noch nicht groß was dazu erzählen oder was dazu schreiben, aber ich will dir trotzdem einen Tipp geben. Wenn ich mir das Script so anschaue, weiß ich das die Fehlermeldungen ($fehler und $fehler2) jetzt zur Zeit immer ausgegeben werden, auch wenn du gerade mal die Seite betreten hast. Lass lieber noch abfragen, ob der Button betätigt wurde und dann siehts auch schöner aus. ansonsten erstmal viel Spaß und Erfolg mit deinem ersten großen Script.
So, erste Verbesserung. Habe mir erstmal Virus's Tip zu Herzen genommen. Mit dem isset() Befehl bewirke ich jetzt, dass die Fehlermeldungen nicht sofort beim Starten der Seite angezeigt werden.

Hier mal eben was zu empty() und isset()

Neben dem hier verwendeten isset(), mit dem man die Existenz einer Variable überprüft, gibt es in PHP noch die Funktion empty(), die ähnlich arbeitet, aber mitunter seltsame Nebeneffekte produziert. Mit dieser Funktion wird überprüft, ob eine Variable einen Inhalt besitzt oder nicht. Fatalerweise wird allerdings der Wert "0" als leer angesehen, sowohl als numerischer Wert ($a=0) als auch als Zeichenkette. ($a="0").
Also gilt: Vorsicht bei der Verwendung von isset() bzw. empty().


Außerdem habe ich noch das: <form action = "index.php" method = "post">
hinzugefügt. Hat Virus mir gesagt, weis nicht wofür das genau ist, kann das ev. nochmal jemand erklären?

[php:1]
<form action = "index.php" method = "post"> //Aktion
<table width="391" height="168" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="101">Name*</td>
<td width="290"><input type="text" name="name"></td>
</tr>
<tr>
<td>Kommentar*</td>
<td><textarea name="eingabefeld" cols="40" rows="10"></textarea></td>
</tr>
<tr>
<td>*muss ausgef&uuml;llt sein</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Kommentar absenden"></td>
</form>
</td>
<?php
//Variablen
$fehler = "Du hast vergessen, deinen Namen anzugeben";
$fehler2 = "Du musst ein Kommetar schreiben";
if(isset($_POST['Submit'])) //Isset überprüft
{
if(empty($name)){ echo "$fehler"; }
if(empty($kommentar)){ echo "$fehler2"; }}
?>[/php:1]
Wie mache ich jetzt weiter? Das ganze muss ja über ne MySQL Datenbank laufen da ja Texte gespeichert werden. Also mache ich mal ne config:
[php:1]
$db_server = ""; // Datenbank Server
$db_user = ""; // Username
$db_pw = ""; // Passwort
$db_db = ""; // Datenbankname

$connect = mysql_connect("$db_server","$db_user ","$db_pw") or die ("Konnte keine Verbindung zur Datenbank herstellen");
mysql_select_db("$db_db") or die ("Es konnte keine Datenbank gefunden werden");
[/php:1]

In der config connectet er mit der Datenbank welche jedoch erstmal installiert werden muss. Dies soll die install.php übernehmen. Da habe ich erstmal folgenden Inhalt reingeschrieben.

[php:1]
//Installation
mysql_query("CREATE TABLE `KommentarTabelle`
(`ID` INT(11) NOT NULL AUTO_INCREMENT, `Name` VARCHAR(50) NOT NULL, `TEXT NOT NULL, PRIMARY KEY (`ID`))");
mysql_close(); [/php:1]

Da ist sicher noch was ungeeignet oder fehlerhaft oder sinnlos, ich weis aber nicht was.

Kann mir jemand bei der Weiterschreibung helfen?
also die install würde ich wie folgt machen:
- in der config die variable $KommentarTabelle bestimmen ( ist geschickter falls du es mal ändern musst brauchst es nicht im ganzen script ändern)

[php:1]
include ("config.php");
$dbanfrage = "CREATE TABLE $kommentartabelle (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(60),
beitrag TEXT,
newsid INT (5)
)";
if (mysql_db_query ($db_db, $dbanfrage, $connect)) {
print ("Tabellenerzeugung erfolgreich.");
} else {
print ("Konnte Tabelle nicht erstellen.");
}[/php:1]

das wars so müsste die install klappen.
wenn du das hast würde ich mit dem eintragen von den kommentaren weitermachen!
beim eintragen ist wichtig das du die newsid speicherst weil du sonst nachher nicht weist welcher kommentar zu welcher news gehört!

lg rené
Wie soll ich die Kommentartabellenvariable definieren?

$kommentartabelle = "???";

Wie mache ich den nächsten Schritt? Also das eintragen der Kommentare ID etc.
die variable definierst du in deiner config.php
mit dem namen wo du willst
Denn nächsten schritt machst du indem du erst einmal ein Formular machst und das dann wieder an ein kleines Script übergibst- wenn du deine kommentare gleich zu ordnen willst- musst du dort schon die newsid haben!
Ich kann dem jetzt nicht ganz folgen. Was soll hinter das = Zeichen? Also wofür soll die Variable stehen?

Ein Layout habe ich ja bereits am Anfang entworfen. (S.o.)
Wie übergebe ich das an welches Script? Wie funktioniert das mit den IDs?

Irgendwie weis ich nicht so ganz wie ich das alles bewerkstelligen will. Diese Kommentar funktion soll etwa 250 mal in meine Seite eingebaut werden. Jedes mal an ne andere Stelle. Muss ich dann am ende etwa 250 mal die install.php ausführen und neu einbinden?
öhmn also erst mal für die 250 mal (wo soll den da überall kommentare hin?)
seh ich das richtig das du die kommentare nicht nur auf bei den news sondern komplett bei den ganzen Seiten machen willst?
kannst du dich da vielleicht etwas genauer ausdrücken?

lg
Ich habe eine vielzahl an Texten geschrieben. Es sind im Ganzen etwa 250 Stück. Diese sollen eine Kommentarfunktion haben. Das heißt der Besucher soll eines hinterlassen können. Da mir ein Newsscript zu umständlich ist, dachte ich ein Kommentarscript wäre besser. Außerdem will ich php lernen Wink

@rene, betreffs deiner Seite melde ich mich die Tage, ich hoffe du bist zufrieden mit dem Ergebnis, ich eigentlich schon. Wink

Gruß christian
Seiten: 1 2
Referenz-URLs