Variabelen opslaan

Status
Niet open voor verdere reacties.

bartbh

Gebruiker
Lid geworden
1 jun 2001
Berichten
543
Ik heb via een formuliertje de volgende variabelen
$datum
$naam
$mail
$website
$bericht

Die wil ik toevoegen aan het bestand gegevens.txt

<?php
$file = fopen ("gegevens.txt","a" );
fputs ($file,

Zo ver ben ik. Hoe zorg ik ervoor dat ze worden opgeslagen? Bijvoorbeeld op deze manier
$datum=10-01-2003 $naam=henk
en dat dan in het bestand komt te staan
Op 10-01-2003 zei henk: (en dan het bericht)

Dus wie helpt mij
 
lukt niet

Het lukt niet
Ik heb een formuliertje (formulier.html) dat de gegevens doorstuur naar gegevens.php (method=post)

Met dit stukje
<?php
$filename = 'gegevens.txt';
$somecontent = "Voeg dit toe aan het bestand\n";

// Laten we eerst controleren of het bestand bestaat en of we er in kunnen schrijven.
if (is_writable($filename)) {

// In ons voorbeeld openen we $filename in 'toevoeg' modus.
// De bestands pointer is aan het einde van het bestand
// en daar gaat $somecontent naar toe als we het fwrite()'en.
if (!$handle = fopen($filename, 'a')) {
print "Kan het bestand niet openen ($filename)";
exit;
}

// Schrijf $somecontent naar ons bestand dat we geopend hebben.
if (!fwrite($handle, $somecontent)) {
print "Kan niet schrijven naar bestand ($filename)";
exit;
}

print "Succes, geschreven ($somecontent) naar bestand ($filename)";

fclose($handle);

} else {
print "Het bestand $filename is niet schrijfbaar";
}
?>

Nu komt de variabele $somecontent in het bestand

Als ik de rode $somecontent vervang door bijvoorbeeld $naam (van het formuliertje) dan geeft hij aan dat hij het bestand niet kan schrijven. Hoe kan ik dat oplossen?
 
Geplaatst door chrisgeerdink
Stel je CHMOD in op 777.

755 is meer aan te raden, 777 stelt de gebruiker teveel open voor dingen. Kwaadwillenden zouden dingen kunnen doen die de host niet zo leuk zal gaan vinden :D...

Over die fout, ik vind het een beetje raar dat je if(!handle = ...) doet. Ik ken deze volgorde niet, het zou best kunnen dat het ook werkt. Maar zo maak je een if constructie die alleen controleert of hij true of false (1 of 0, waar of niet waar) teruggeeft en in het geval van false geeft hij een foutmelding. Verder niet. Hij voert hem opzich niet uit, alleen als hij fout gaat doet ie er iets mee.
 
ander

Of heeft iemand nog een ander script? Zonder de controle of het bestaat en beschrijfbaar is?
 
Het gaat er niet zo zeer om dat je er geen controle in mag hebben maar gewoon de manier waarop je het doet. Chris zegt dat het van php.net komt nou oke dan zal het wel kloppen maar de logica zie ik er nog steeds niet van...

Ik zou controle en het werkelijk wegschrijven van elkaar splitsen. Dus een if constructie maken waarin je eerst alles controleert en als hij dan nog geen fout heeft gegeven kun je gaan schrijven.
 
anders

Ik heb het nu veranderd. Het verzenden van de gegevens uit het formulier gaan nu met GET in plaats van POST. Dus wordt het zo

$naam=HTTP_GET_VARS['naam']<BR>$mail=HTTP_GET_VARS['mail']
enz

En nu lukt het opslaan wel (in het bestand gegevens.txt en in mijn nieuwe probeersel in de MySQL database)
 
Als het simpeler kan, doe dat dan ook. HTTP_GET_VARS is echt heel erg oud en hulde voor de php staff dat ze die er nog steeds in hebben (voor dit soort mensen). Want $_GET is veel korter en doet precies hetzelfde. Gebruik het op dezelfde manier als get vars alleen nu met minder moeite :)
 
OKE

Oke, bedankt, ik had dat HTTP_GET_VARS gebruikt omdat ik er nog maar net mee bezig ben. Ik heb dat in mijn "1e" les geleerd, ik wist niet dat het ook zo kon duz!
 
Geeft niks, kan gebeuren. Doe dit ook voor de overige systeem variabelen:

$_POST
$_SESSION
$_SERVER
$_COOKIE
$_ENV
$_FILES
$_REQUEST
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan