Toon posts:

[php] Gastenboek

Pagina: 1
Acties:
  • 198 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo, Ik newbie is de PHP heb 2 vraagjes heb het al opgezocht en geprobeert maar krijg het niet aan de praat.

Ik wil in dit script:
PHP:
1
<?$datum = date("d-m-Y H:i:s");$file=fopen("gastenboek.txt","a+");fputs($file,"Naam: $naam");fputs($file,"<br>\r\n");fputs($file,"Datum: $datum");fputs($file,"<br>\r\n");fputs($file,"Email: $email");fputs($file,"<br>\r\n");fputs($file,"Bericht: $bericht\r\n");fputs($file,"<hr>");fclose($file);?><form method="post" action="gastenboek.php">Naam:<br><INPUT TYPE="text" NAME="naam"><br><br>Email:<br><INPUT TYPE="text" NAME="email"><br><br>Bericht:<br><TEXTAREA NAME="bericht" ROWS=6 COLS=20></TEXTAREA><br><INPUT TYPE="submit" NAME="Submit" VALUE="Submit"><INPUT TYPE="reset" NAME="Reset" VALUE="Reset"></FORM><hr><?include 'gastenboek.txt';?>

een limiet stellen van 8 berichjes per pagina en ik wik een controle aan het eind er over heen laten gaan of de naam email en brichten vakjes wel ingevuld zijn. Wie kan mij weer even op weg helpen met mijn 2de php script:)?

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

dan moet je een loop hebben:
code:
1
2
3
for(int = i;i>8;i++){
gooi text op je beeldscherm.
}

en als je dan op pagina 2 komt, wat je dus met een variabele aangeeft in je link... (ff zoeken is dat :)) dan kun je daar in zeggen van ga naar regel 8 * pagina ofzo, en dan weer alles op je schermpje plakken.

maar je kunt beter ff www.google.com en dan free guestbook intikken :)

disjfa - disj·fa (meneer)
disjfa.nl


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

disjfa:
dan moet je een loop hebben:
code:
1
2
3
for(int = i;i>8;i++){
gooi text op je beeldscherm.
}

en als je dan op pagina 2 komt, wat je dus met een variabele aangeeft in je link... (ff zoeken is dat :)) dan kun je daar in zeggen van ga naar regel 8 * pagina ofzo, en dan weer alles op je schermpje plakken.
ehmmm ja, zeg dan niks ...

Een loopje wat nooit uitgevoerd wordt en uberhaupt niet werkt in php en daarbij "regel 8 * pagina" is natuurlijk ook informatie van 3x niks.

AndyZanting.nl >
Er zijn een aantal mogelijkheden:
  1. Je migreert je gastenboek naar een database, bijvoorbeeld MySQL. Dan ben je wat betreft onderhoud en controle op je data veel flexibeler.
  2. Je leest alleen x aantal regels per keer in, en houd in een sessie of in je url (url.php?offset=x) bij, op welke offset je je bevindt. Lees dan elke regel van het gastenboek in met de functie file ()
  3. Je slaat geen HTML meer op in je textbestand, maar andersoortig opgeslagen data, bijvoorbeeld elke regel 1 gastenboek-entry, waarbij je elk veld scheidt door puntkomma's of een andere marker:
    code:
    1
    2
    
    AndyZanting;13-mar-2002;andy@aol.com;Mijn eigen guestbook
    drm;13-mar-2002;;Fijn guestbook zo!

    waarbij je de regels wederom inleest met file (), en de regels split met de functie implode ()
    Natuurlijk moet je dan voor de punt-komma en de newline-character een escape-character hebben, voor het geval mensen meerdere regels invullen, of mensen punt-komma's invullen in hun naam en/of bericht. Dat zou je gewoon met een slash ervoor kunnen doen, en dan ipv. splitten met implode, splitten met split () waarbij je als criterium stelt dat er geen \ voor de ; mag staan, om te splitten. ( split ( "[^\\];", $str ) )
    Bij invullen zet je dan alle ; om naar \; met de functie str_replace ()
Er zijn nog veel meer mogelijkheden, maar misschien dat je hier iets mee kunt. kauw 'r ff op zou 'k zeggen

edit: ff iets toegevoegd

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

Op woensdag 13 maart 2002 19:07 schreef drm het volgende:

[..]

ehmmm ja, zeg dan niks ...
daar zat ik idd ook aan te denken ja....
ow vergeten erbij te zetten dat ik geen php ken :)

disjfa - disj·fa (meneer)
disjfa.nl


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

disjfa:
daar zat ik idd ook aan te denken ja....
ow vergeten erbij te zetten dat ik geen php ken :)
Ik ken ook geen andere talen waarin met
code:
1
2
for ( int a = 0; a > 8; a ++ )
   blaat ();

blaat () ook maar 1 keer uitgevoerd wordt, hoor ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Dus als ik het goied begrijp moet ik hem met Mysql koppelen?
Of begrijp ik dit verkeerd?

en wat is een code om de naam email en bericht vakken tecontroleren of die wel ingevuld zijn?

Zeg het nog een keer ben een groentje in de php:)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

heb je mijn reply eigenlijk wel gelezen :?
Stel na dat je dat gedaan hebt ff gerichte vragen ajb

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

if ($email == "") {
echo "Oeps, geen e-mail ingevuld!";
}

if ($naam == "") {
echo "Oeps, geen naam ingevuld!";
}

Zoiets wordt het dan. Kijk anders maar op PHP Freakz, daar heb ik dit ook allemaal geleerd.

Verwijderd

Topicstarter
Oke hij controleerd nu alles goed. Maar nu zit ik met het laaste probleem. Elk nieuws bericht die iemand post komt onderaan testaan kan ik dit ook om laten draaien met een code dat hij een nieuwe bericht altijd boven de ouwdere berichten testaan?

Alvast bedankt

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-09 18:58
Ja, dat kan. :z

Verwijderd

Topicstarter
Op vrijdag 15 maart 2002 00:16 schreef MarcoTC het volgende:
r+ i.p.v. a+?

http://www.php.net/manual/en/function.fopen.php
ja maar hij moet allee oude berichten ook nog wel laten zien maar de nieuwe moeten er boven komen testaan.

Snap je mij?
Pagina: 1