PHP | bericht posten in txt bestand

Pagina: 1
Acties:

  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

Topicstarter
De bedoeling:
bezoeker maakt (klein) berichtje in formpje en deze wordt door gestuurd. De bedoeling dat 't ($)bericht wordt weg geschreven in 'berichten.txt' en dat deze achter de al bestaande berichten wordt geplakt:

bericht 1 bla blaat | 2e bericht yippy | bericht 3 whooot | >nieuw bericht<

Probleem is; 't gebeurd niet.
als ik m'n berichten.txt open en die 'text' / 'onzin' berichten er in typ en vervolgens naar 'berichten.php' ga laat ie de berichten mooi zien.
maar als ik dan 'bijvoorbeeld': berichten.php?bericht=test_bericht_blaat_etc doe
gaat alles goed (zo lijkt het).

Maar als ik het berichten.txt document of berichten.php open in m'n browser staat er alleen test_bericht_blaat_etc in en die overige (al eerder ingevoerde) berichten zijn er uit.

Ik kom er niet uit wat ik fout doe.
PHP:
1
<?$data = "bericht.txt";$fp = fopen($data, "r");while ( ! feof ($fp) ) {    $berichten = fgets ($fp,1024);}$actueel=$hoeveel . "$bericht";fclose($fp);$fp2 = fopen($data, "w");fwrite($fp2,$actueel);fclose($fp2);echo ("$berichten");?>

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


Verwijderd

Je opent bij het schrijven de file met als optie "w", probeer "a" eens.

  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

Topicstarter
Op vrijdag 31 mei 2002 17:18 schreef TheGentleman het volgende:
Je opent bij het schrijven de file met als optie "w", probeer "a" eens.
bedankt voor het mee denken, maar als ik "a" gebruik gooit ie m'n berichten.txt helemaal leeg en wordt er geen 'nieuw' bericht (bij) geschreven

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


Verwijderd

volgens mij moet fwrite() fput() zijn

  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

Topicstarter
Op vrijdag 31 mei 2002 17:27 schreef robbinh het volgende:
volgens mij moet fwrite() fput() zijn
Fatal error: Call to undefined function: fput() in c:\apache\htdocs\lycos\new\berichten.php on line 10

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


Verwijderd

Op vrijdag 31 mei 2002 17:24 schreef Scarecrow het volgende:

[..]

bedankt voor het mee denken, maar als ik "a" gebruik gooit ie m'n berichten.txt helemaal leeg en wordt er geen 'nieuw' bericht (bij) geschreven
Nou, daar snap ik niets van... "a" staat toch echt voor Append en dat is volgens mij wat je wilt... fout zit 'em dan ergens anders lijkt me.

  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

Topicstarter
probleem is gewoon dat ie niet 'bij' schrijft, of 't hele berichten.txt bestand wordt leeg gegooid en gevuld met '' (nix dus) of het laatste 'bericht' komt er in te staan maar de 'oude' berichten die d'r in staan worden verwijderd :s
// edit
moet wat minder msn'en :s moet :? zijn

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


Verwijderd

En wat doe je eigenlijk met die While-lus... zo krijg je altijd de laatst 1024 ... of wil je dat... ik snap niets van je code... maar misschien komt het omdat het vrijdag is :?

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Forum bouwen zou ik sowieso met MySQL doen, maar goed :)

En volgens mij kan die 'w' of 'a' ook nog wel eens 'r+' zijn oid, want dat staat me zo bij...

  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

Topicstarter
Op vrijdag 31 mei 2002 17:48 schreef Osiris het volgende:
Forum bouwen zou ik sowieso met MySQL doen, maar goed :)

En volgens mij kan die 'w' of 'a' ook nog wel eens 'r+' zijn oid, want dat staat me zo bij...
is geen form joh, alleen een 'scroller' waar korte brichtjes achter elkaar langs komen. althans dat is de opzet

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Op vrijdag 31 mei 2002 17:52 schreef Scarecrow het volgende:

[..]

is geen form joh, alleen een 'scroller' waar korte brichtjes achter elkaar langs komen. althans dat is de opzet
Oww, dat zal toch niet zo heel erg moeilijk zijn...

Ik las ipv 'formpje' 'forumpje' |:( :P

Ik zal wel ff proberen een random scroller te maken met een formpje if you don't mind :D

Doe ik ook weer eens wat aan PHP :)

  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

Topicstarter
Op vrijdag 31 mei 2002 17:58 schreef Osiris het volgende:

[..]

Oww, dat zal toch niet zo heel erg moeilijk zijn...

Ik las ipv 'formpje' 'forumpje' |:( :P

Ik zal wel ff proberen een random scroller te maken met een formpje if you don't mind :D

Doe ik ook weer eens wat aan PHP :)
ik zou 't zeer op prijs stellen, kan ik kijken wat jij anders doet dan mij.

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


Verwijderd

Probeer dit eens, en stop in je HTML een include voor de berichten.txt. Dit moet goed gaan.
PHP:
1
<?$data = "bericht.txt";$fp2 = fopen($data, "a");fwrite($fp2,$bericht);fclose($fp2);?>

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Zo...

Naar lekker kloten zoals ik van mezelf gewend ben kom ik op dit uit:
PHP:
1
<?$bericht = $_GET["bericht"];$action = $_GET["action"];$data = file('lines.txt');$aantal_lines = count($data);if ($action == "add") {    $Temp = fopen('lines.txt','r+');    ftruncate($Temp,0);    fseek($Temp,0);    fwrite($Temp,$data[0]."|".$bericht);    fclose($Temp);    echo "'$bericht' is suc6-vol toegevoegd";} else {$lines = explode("|", $data[0]);if ($bericht == "") { Die("Fout"); }echo $lines[$bericht-1];}?>

Gebruik:
Om een bericht X te gebruiken gebruik dan als URL 'http://adres/index.php?bericht=X'

Om een berichtje toe te voegen doe je: 'http://adres/index.php?action=add&bericht=Berichtjuh'

Is zoiets goed? Of heb nou jouw verhaal niet goed gelezen :P

  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

Topicstarter
TheGentleman en Osiris beide hartelijk bedankt, ik zal 't zo menteen uitproberen

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

Topicstarter
PHP:
1
<?$data = "bericht.txt";$fp2 = fopen($data, "a");fwrite($fp2,$bericht);fclose($fp2);?>

Het werschrijven gaat dus zo ver goed, alleen zijn er twee dingen die ik niet gefixed krijg;
het 'uitlezen' van het berichten bestand en dat dan op 't scherm dumpen.
En dat ieder bericht gescheiden wordt door en ' ][ ' of zo iets

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Werkte dat van mij weer niet goed genoeg :{

:P

Volgens mij doet die het wel voldoende, dacht ik zo :)

Of nie

  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

Topicstarter
Op vrijdag 31 mei 2002 22:07 schreef Osiris het volgende:
Werkte dat van mij weer niet goed genoeg :{

:P

Volgens mij doet die het wel voldoende, dacht ik zo :)

Of nie
denk van wel, maar als ik doe wat er staat komt er de tekst 'fout' in beeld te staan als ik naar osirisversie.php ga.
leuk, heb dat lines.txt aan gemaakt.
maar mijn 'bedoeling' is zeg maar anders.
ik wil dat als ik naar osirisversie.php ga, dat ie alle berichten die in 'lines.txt' staan weer geeft.
en niet een enkel bericht zoals hier:

Om een bericht X te gebruiken gebruik dan als URL 'http://adres/index.php?bericht=X'

(snap 't ook nie helemaal wat je precies bedoeld met het bekijken van een bericht :?' wil gewoon de hele content van lines zien.

maar nogmaals bedankt voor je hulp

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

Topicstarter
help / kick

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


Verwijderd

ik heb niet helemaal opgelet het hele topic, maar als ik het goed begrijp wil je de volledige inhoud van lines.txt weergeven?
code:
1
2
3
4
5
6
<?php
$lines = file("lines.txt");
foreach($lines as $regel){
    print $regel;
}
?>

not tested

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Ipv 'if ($bericht == "") { Die("Fout"); ' kun je natuurlijk ook gewoon 'if ($bericht == "") { Die($data[0]); ' doen...

En dan geeft ie alles wel weer, als je geen parameters opgeeft...
Pagina: 1