Gästebuch ohne Datenbank?

Die Scriptsprache PHP für die Gestaltung von dynamischen Websites.

Gästebuch ohne Datenbank?

Beitragvon AgnethaFältskog » Sa 26 Nov, 2005 16:02

Hi!
Ich habe schon öfters gehört, dass man ein PHP - Gästebuch auch ohne Datenbank mittles einer einfachen Text Datei machen kann. Da stellt sich die Frage: ist das genau so schnell wie mit einer DB?
AgnethaFältskog
Board-Mitglied
Board-Mitglied
 
Beiträge: 161
Registriert: So 16 Okt, 2005 13:42
Wohnort: Traun

Beitragvon lordpeng » Sa 26 Nov, 2005 16:10

kommt wohl drauf an wie komplex das ganze wird bzw. wieviele einträge gemacht werden, mit ein paar millionen einträgen wirst wohl eher probleme haben, bei ein paar hundert wirst vermutlich keinen grossartigen unterschied feststellen, wenn du's geschickt angehst, allerdings haben text-dateien noch andere nachteile ...

eventuell gibts für php ein modul mit dem man eine csv datei gleich wie eine sql datenbank ansprechen kann, das wär dann eine kompromisslösung, da du einige vorteile hättest ...

für perl gibts jedenfalls ein solches cpan modul ...
lordpeng
Moderator
Moderator
 
Beiträge: 10183
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon superracer » So 27 Nov, 2005 14:21

wenn du auf jegliche flexibilität sch**ßt, sprich es werden nur neue einträge gemacht, nie welche gelöscht oder geändert, und sämtliche formatierungen sind statisch, dann ist die textdatei definitiv schneller: neuer eintrag = append ans file, fertig. guestbook anzeigen = textfile ausgeben, fertig. für alle komplexeren anwendungen würd ich ne db vorziehen, es muß aber keine full blown relational db sein, sondern kann ja auch was einfacheres sein, zb. sqlite.
superracer
Board-User Level 3
Board-User Level 3
 
Beiträge: 1073
Registriert: So 04 Jul, 2004 11:18

Beitragvon foreach(:) » Di 17 Jan, 2006 00:23

welche geschwindigkeit meinst du?

lesen
oder
schreiben

die geschwindigkeit hängt stark von der auslastung des servers ab,
wenn DatenBank und filesystem nicht am selben server sind könntest du mit file-speicherung schneller sein falls die anderen 199 websites, die dein provider am gleichen server laufen hat, hauptsächlich die DatenBank zum speichern benutzen.
es soll immer noch leute geben die glauben ohne computer haben sie keine probleme
foreach(:)
Neu im Board
Neu im Board
 
Beiträge: 2
Registriert: Mo 16 Jan, 2006 12:26

Beitragvon codec » Di 17 Jan, 2006 07:48

Naja, ich glaube das interessiert nun jetzt weniger mehr gg
codec
Board-User Level 1
Board-User Level 1
 
Beiträge: 553
Registriert: Di 28 Okt, 2003 12:48

Beitragvon Neptunus » Di 17 Jan, 2006 08:16

Hi,

es gibt da so ein Ding namens SQLite. Bei PHP5 sollte diese Extension bereits integriert sein, bei PHP 4 müsstest du es nachträglich installieren.

http://www.php.net/manual/de/ref.sqlite.php

Mit SQLite kannst du ganz normal auf eine DB zugreifen, nur dass du eben keine DB hast, sondern alles in einem File irgendwo auf dem Server liegt.

Das hätte dann den Vorteil, dass du auf deine Gästebuchinhalte zugreifst, als wären sie in einer DB (also mit select, insert und update), auf dem Server liegt aber alles in einem File. Und bei großen Datenmengen ist es sicher schneller, als du schreibst selbst die Daten in ein File.
Neptunus
Board-User Level 1
Board-User Level 1
 
Beiträge: 691
Registriert: Do 26 Jun, 2003 16:43

Beitragvon al » Di 17 Jan, 2006 09:49

AgnethaFältskog hat geschrieben:Ich habe schon öfters gehört, dass man ein PHP - Gästebuch auch ohne Datenbank mittles einer einfachen Text Datei machen kann. Da stellt sich die Frage: ist das genau so schnell wie mit einer DB?


Die klassische Antwort: das kommt drauf an.

Solange dieses Textfile so klein ist, daß es problemlos als Ganzes in den Speicher geladen werden kann, solange wird auch ein darauf basierendes Gästebuch schnell sein.

Aber es stellen sich, wenn mal mehrere Benutzer gleichzeitig drauf zugreifen, schnell Probleme ein...

Nachdem ja jeder bessere Hoster eh eine DB automatisch mit anbietet, wird sich die Frage wohl eh selten stellen...

/al
Wer entbündelt wo? - http://entbuendelt.at
al
Board-User Level 3
Board-User Level 3
 
Beiträge: 1091
Registriert: Sa 13 Nov, 2004 11:59
Wohnort: Hawei

Beitragvon max_payne » Di 17 Jan, 2006 16:51

neuer eintrag = append ans file, fertig.

dann müsstest immer alles lesen, ums auszugeben
sobalds dann mehrseitig wird, gibts probleme
max_payne
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4982
Registriert: Mo 30 Aug, 2004 12:25

Beitragvon CoreOil » Do 19 Jan, 2006 09:49

Hatte hier mal ein Scripts. Schaus dir an und überlege ob es passt, bzw. wie schnell das ist.

form action="<?php echo $PHP_SELF ?>" method="post">Ihr Kommentar(Bitte alle Felder ausf&uuml;llen):<br>
<textarea cols="30" rows="4" wrap="soft" name="comment"></textarea>
<br>
Ihr Name:<br>
<input type="text" name="name">
<br>Ihre E-Mail-Adresse:<br>
<input type="text" name="email"><br>Ihre Website(mit http://):<br>
<input name="website" type="text" value="http://">
<br>Der Name der Website:<br><input type="text" name="webname">
<br><br><input type="submit" value=
"Eintragen" class="button">
</form>
<b>Beiträge</b>
<?php

$datei="comment.txt";

if (isset($comment) && $name != "" && $email != "") {

$zeiger=fopen($datei,"r+");

$alt=fread($zeiger,filesize($datei));

$email="<a href=\"mailto:$email\">Send Mail</a>";

$website="<a target=\"_blank\" href=\"$website\">$webname</a>";

$webname="$webname";

$datum=date("j.n.Y");

$comment=htmlspecialchars($comment);
$comment=stripslashes(nl2br($comment));

$meinung="

<table width=\"410\" height=\"1\" border=\"0\" align=\"center\" cellpadding=\"1\" cellspacing=\"1\" bgcolor=\"#000000\">
<tr>
<td height=\"1\" bgcolor=\"#cccccc\"><b>$name ($email) , ($website) schrieb am
<i>$datum</i>:</b></td>
</tr>
<tr>
<td height=\"1\" valign=\"top\" bgcolor=\"#ffffff\">$comment</td>
</tr>
</table>

<br><br>\n";

rewind($zeiger);

fputs($zeiger,"$meinung \n $alt");

fclose($zeiger);
}

readfile($datei);

?>



Einfach eine Comments.txt im gleichen Ordner anlegen und 777-Rechte vergeben! ;)
Hab ich immer auf meinen HP´s ohne Datenbank gemacht!
CoreOil
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 27
Registriert: Mo 16 Jan, 2006 22:36
Wohnort: Graz

Beitragvon Black Knight » Fr 20 Jan, 2006 00:07

ist eigentlich ganz einfach...

zuerst erstellst du n' Formular mit den Eingabefeldern ...

und in PHP brauchts du dann:
fopen (öffnet die textdatei)
fwrite (schreibt dann in die Datei)
fclose (..)

http://www.schattenbaum.net/php/datei.php
Black Knight
Neu im Board
Neu im Board
 
Beiträge: 19
Registriert: Sa 14 Jan, 2006 22:15

Beitragvon Marcus_77 » Do 09 Feb, 2006 15:38

Meins ist mit TXT Dateien un dfunzt super

hab noch keinen Unterscgied zu DB GB´s geshen

Für Hilfe, meld dich einfach
Marcus_77
Neu im Board
Neu im Board
 
Beiträge: 3
Registriert: Do 09 Feb, 2006 15:34

Beitragvon AgnethaFältskog » Fr 10 Feb, 2006 20:32

Danke für eure Tipps ;)
Na ja, inzwischen hab ich mich in MySQL schon so versiert, dass ich das Gästebuch ohne Probleme mit DB hingebracht habe! :ok:

Würde mich über zahlreiche Einträge freuen :D (einfach auf meine HP schauen)

Lg.
AgnethaFältskog
Board-Mitglied
Board-Mitglied
 
Beiträge: 161
Registriert: So 16 Okt, 2005 13:42
Wohnort: Traun


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 35 Gäste