petermedien
Mitglied
Hallo Leute,
Eigentlich sollte dies ja ein Tutorial werden, aber irgend wie schaffe
ich es nicht, diesen dort zu plazieren, deshalb stelle ich diesen
Beitrag einfach mal hier ein.
Zur Sache:
Die untenstehenden Scripte ergeben ein einfaches Gästebuch.
Bestehend aus folgenden Dateien:
gaestebuch.php
ausWertung.php
Grundgeruest.inc.php
ausGabe.php
eintraege.php
Nachfolgendes Script bitte unter
gaestebuch.php ablegen:
Eigentlich sollte dies ja ein Tutorial werden, aber irgend wie schaffe
ich es nicht, diesen dort zu plazieren, deshalb stelle ich diesen
Beitrag einfach mal hier ein.
Zur Sache:
Die untenstehenden Scripte ergeben ein einfaches Gästebuch.
Bestehend aus folgenden Dateien:
gaestebuch.php
ausWertung.php
Grundgeruest.inc.php
ausGabe.php
eintraege.php
Nachfolgendes Script bitte unter
gaestebuch.php ablegen:
PHP:
<?php
// Aufrufen der Verweisdateien für Kopf/Fuss und Funktionen
include("Grundgeruest.inc.php");
include("ausWertung.php");
Kopf("Das Gästebuch");
$Rahmen="0"; // interne RahmenStärke für TabellenRahmen Kontrolle Aufbau
$hinterGrundFarbe="#c0c0cc"; // gibt die Hintergrundfarbe für alle Tabellen
$rahmenFarbe="#808080"; // gibt die Farbe für äusseren Rahmen um die Tabellen und gest.
$rahmenDicke="3"; // gibt die Rahmendicke für äusseren Rahmen
$dateiName="eintraege.csv"; // gibt .csv mit den Herkunftsdaten
$dateiName2="eintraegeTemp.csv"; // Datei zur Zwischenspeicherung der Daten
// **********************************************************************************************************************************
//
// Generierung des HTML-Codes mittels PHP
// Das gesamte Gästebuch ist in eine Positionierungstabelle eingebettet aus zwei Cols.
// Links Eingabe der Einträge, rechts Ausgabe der Einträge in iframe, oder gelistet für no iframe
// Eingabe und Ausgabe sind jeweils von einem Rahmen mit $rahmenFarbe und $rahmenDicke umgeben
// Die Bezeichnungen der Eingabefelder liegen als erste Zeile in der $dateiName als .csv
// und werden automatisch generiert, wobei das Feld Nr. 5 und 6 in einer Zeile dargestellt wird.
// Der letzte Eintrag bezeichnet den Commentar und wird nicht im "input", sondern im "textarea" aufgenommen.
//
// **********************************************************************************************************************************
// Positionierungs-Tabellenfeld über ganze Seite zur Positionierung
echo "\n\t".'<table border="'.$Rahmen.'" width="100%" height="100%" cellpadding="10" cellspacing="10" bgcolor="'.$hinterGrundFarbe.'">';
echo '<tr><td align="right" valign="top">';
// Angabe des Übertragungsmodus
echo "\n\t".'<form method="post">';
// Tabelle zur Vergabe des Rahmens
echo "\n\t".'<table border="'.$Rahmen.'" bgcolor="'.$rahmenFarbe.'" cellpadding="'.$rahmenDicke.'" cellspacing="0"><tr><td>';
// innere Tabelle zur Ausgabe der gewünschten Eingabemaske
echo "\n\t".'<table border="'.$Rahmen.'" bgcolor="'.$hinterGrundFarbe.'">';
// erstellung der Eingabefelder für gewünschte Eingaben
// aus den Einträgen der Zeile 0 aus .csv Datei
$zeiger3 = fopen($dateiName,"r");
$ausgabeDaten = fgetcsv ($zeiger3,4096,"#");
// Abfrage der Anzahl der Einträge der Zeile
for ($i=1;$i<sizeof($ausgabeDaten);$i++)
{
// Wenn $i == 6 also Ort ist in meinem Beispiel
// schreibe den Folgeabsatz bis endif nicht
if ($i!=6):
echo "\n\t\t".'<tr>';
// wenn $i==5 also PLZ in meinem Beispiel
if ($i==5)
// schreibe PLZ und Ort in eine Tabellenzelle
echo "\n\t\t\t".'<td>'.$ausgabeDaten[$i].', '.$ausgabeDaten[$i+1].':</td>';
else
// sonst schreibe nur einen Eintrag in die Tabellenzelle
echo "\n\t\t\t".'<td>'.$ausgabeDaten[$i].':</td>';
echo "\n\t\t\t".'<td>';
// ab hier wieder für alle Einträge
endif;
// wenn der letzte eintrag erreicht ist, Message in meinem Beispiel
if ($i==sizeof($ausgabeDaten)-1)
// nehme ein textarea
echo '<textarea '; //>
else
// sonst nehme ein Textfeld
echo '<input type="text" ';//>
// Der Name für alle Textfelder, erzeugt durch multible Textfeld,
// somit werden alle Inhalte in ein Array mit Namen textFeld[] geschrieben
echo 'name="textFeld[]" multible ';
// Spezifikationen für das textarea
if ($i==sizeof($ausgabeDaten)-1)
echo 'cols="30" rows="6" size="18"></textarea>';
else
// Spezifikationen für das PLZ Feld
if ($i==5)
echo 'maxlength="5" size="3">';
// Spezifikationen für das Ort Feld
elseif ($i==6)
echo 'maxlength="40" size="15">';
// Spezifikationen für das alle anderen Eingabe Felder
else
echo 'maxlength="50" size="22">';
// Wenn $i == 5 also PLZ ist in meinem Beispiel
// schliesse das Tabellenfeld und Tabellenzeile nicht
if ($i!=5)
echo "\n\t\t".'</td></tr>';
// Nach den Eintragspositionen 1 für Firma, 3 für Vorname und 6 für Ort einen Trennstrich
if ($i==1 || $i==3 || $i==6)
echo "\n\t\t".'<tr><td colspan="4"><hr color="'.$rahmenFarbe.'" size="'.$rahmenDicke.'"></td></tr>';
}
// schliesse den Dateizeiger/ die Datei
fclose ($zeiger3);
// Submit, reset und hidden Button
echo "\n\t\t".'<tr>';
echo "\n\t\t\t".'<td> </td>';
echo "\n\t\t\t".'<td colspan="3" align="left">';
echo "\n\t\t\t\t".'<input type="submit" name="eintrag" value="Hinzufügen">';
echo "\n\t\t\t\t"." ";
echo "\n\t\t\t\t".'<input type="reset" value="zurücksetzen">';
echo "\n\t\t\t\t".'<input type="hidden" value=1 name="abgeschickt">';
echo "\n\t\t\t".'</td>';
echo "\n\t\t".'</tr>';
// Ende innere Tabelle Datenausgabe
echo "\n\t</table>";
// Ende Tabelle Rahmen
echo "\n\t".'</td></tr></table>';
// Ende Form Bereich
echo "\n\t".'</form>';
// Ende erste Spalte Positionierung
echo "\n\t".'</td>';
// **********************************************************************************************************************************
//
// wenn Button "eintrag" gedrückt wurde
// ermitteln der Aktuellen Zeit mit time()
// Zusammensetzen der $aktZeit mit Tag: Monat: Jahr; Stunde: Minute, Secunde
// Zusammensetzen des neuen Eintrages in $neueMessage
//
// **********************************************************************************************************************************
// ist button gedrückt worden
if(isset($HTTP_POST_VARS[eintrag]))
{
// unix timestamp ermitteln
$idx_time = time();
// aktuelle Zeit für Eintrag ermitteln
$aktZeit = date("d", $idx_time).":".date("m", $idx_time).":".date("Y", $idx_time)."; ".date("H", $idx_time).":".date("i", $idx_time).",".date("s", $idx_time);
// fügt Zeitangabe als ersten Eintrag in String ein
$neueMessage = $aktZeit;
// schreibt POST übergabe Array aus multible Eingabefeld in $textFeld
$textFeld = $HTTP_POST_VARS[textFeld];
// Abfrage der Textfelder, ob Eintrag bei nichtEintrag wird "Kein Eintrag vorgenommen" geschrieben
for ($i=0;$i < sizeof($textFeld);$i++) //>
{ if($textFeld[$i]=="" || $textFeld[$i]==" ") $textFeld[$i]= "Kein Eintrag vorgenommen";
// fügt Inhalte $textFeld an String, wenn letzter Eintrag, dann abschliessend mit Zeilenschaltung
if($i==sizeof($textFeld)-1) $neueMessage .= "#".$textFeld[$i]."\n";
else $neueMessage .= "#".$textFeld[$i]; }
// ruft Funktion datenErsetzen mit Übergabevariable auf
datenErsetzen("2",$neueMessage,$dateiName,$dateiName2);
}
// Zweite Spalte Positionierung
echo "\n\t".'<td align="left" valign="top">';
// *************************************************************************************************************************************************
//
// Ausgabe der GästebuchEinträge
// in iFrame mit Rahmen aussenrum
//
// *************************************************************************************************************************************************
// Tabelle zur Vergabe des Rahmens für Eintrag
echo "\n\t".'<table border="'.$Rahmen.'" bgcolor="'.$rahmenFarbe.'" cellpadding="'.$rahmenDicke.'" cellspacing="0"><tr><td>';
// Erstellen eines iframe zur Ausgabe der Gästebucheinträge
echo "\n\t".'<iframe src="ausGabe.php" name="ausgabeEintraege" width="416" height="500" align="left"
scrolling="yes" marginheight="0" marginwidth="0" frameborder="0">';
// Alternativeintrag für keine iframe
echo "\n\t".'<table border="'.$Rahmen.'" bgcolor="'.$hinterGrundFarbe.'" cellpadding="'.$rahmenDicke.'" cellspacing="0" width="400">';
eintraegeAusgeben($dateiName,"5",$rahmenFarbe,$rahmenDicke);
echo "\n\t".'</table>';
echo '</iframe>';
// ende Tabelle für Rahmen
echo "\n\t".'</td></tr></table>';
// Ende Tabelle Positionierung
echo "\n\t".'</td></tr></table>';
// Aufruf der Funktion Fuss() für Ende HTML Seite
Fuss();
// *************************************************************************************************************************************************
?>
weiter geht es im folgenden Beitrag