[PHP] Bestand wegschrijven werkt niet

Pagina: 1
Acties:
  • 55 views sinds 30-01-2008

  • KoRnboy112
  • Registratie: Februari 2004
  • Laatst online: 31-03 16:20
Ik moet voor school een opdracht met PHP maken, alleen er kopt iets niet, hij schrijft niets weg in de FILE.
Ik heb XAMPP 1.5.1 onder Fedora Linux 4 draaien.

Ik heb de volgende bestanden:
form.htm:
<form method="post" action="http://localhost/DBTEST/verwerk.php" name="formuliertje">
Geef uw naam:
<input type="text" name="naam"><br />

Het bericht:
<textarea name="bericht" cols="35" rows="10"></textarea><br />

<input type="submit" value="Submit" name="submit">
</form>

Dit is de hoofdpagina, waar je de gegevens moet invoeren.

verwerk.php:

<?php
ob_start();
$fp = fopen("gb.dat", "a");

$bericht = nl2br($_POST['bericht']);
$bericht = ereg_replace("\n", "", $bericht);
//$bericht = ubb($bericht);

$gegevens = $_POST['naam'] ."___". $bericht ."\n";

fwrite($fp, $gegevens);

fclose($fp);

header("location: http://localhost/DBTEST/lezen.php");
?>

Hier in moeten de gegevens verwerkt worden, alleen hij schrijft niets weg in het .dat file.

lezen.php:

<?php

$file = "gb.dat";

if(file_exists($file)){
$fp = fopen($file, "r");

$inhoud = fread($fp, filesize($file));

$inhoud = explode("\n", $inhoud);

foreach($inhoud as $gegevens){
$gegevens = explode("___", $gegevens);

?>

<table border="1">
<tr>
<td valign="top">
NAAM:
</td>
<td valign="top">
<?php
echo $gegevens['0'];
?>
</td>
</tr>
<tr>
<td valign="top">
Bericht:
</td>
<td valign="top">
<?php
echo $gegevens['1'];
?>
</td>
</tr>
</table>
<?php
}
fclose($fp);
echo "<a href=\"form.htm\">Schrijf iets</a>";
}
else{
echo "<a href=\"form.htm\">Schrijf iets</a>";
}
?>

Hier kun je het lezen, dit werkt goed, ik heb bestand met de hand bewerkt en toen werkte het wel.

Iemand enig idee wat er niet goed aan is, ik kom er zelf niet uit.
Alvast bedankt :)

Verwijderd

Zet je code eens tussen [ php ][ /php ] tags..
Wat heb je zelf al geprobeerd? Wat voor melding krijg je?
Wat gaat er precies mis?

Kijk eens goed naar je form action attribute.

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
ob_start();
$fp = fopen("gb.dat", "a");

$bericht = nl2br($_POST['bericht']);
$bericht = ereg_replace("\n", "", $bericht);
//$bericht = ubb($bericht);

$gegevens = $_POST['naam'] ."___". $bericht ."\n";

fwrite($fp, $gegevens);

fclose($fp);

header("location: http://localhost/DBTEST/lezen.php");
?> 

Hier in moeten de gegevens verwerkt worden, alleen hij schrijft niets weg in het .dat file. 

lezen.php:

<?php

$file = "gb.dat";

if(file_exists($file)){
$fp = fopen($file, "r");

$inhoud = fread($fp, filesize($file));

$inhoud = explode("\n", $inhoud);

foreach($inhoud as $gegevens){
$gegevens = explode("___", $gegevens);

?>

<table border="1">
<tr>
<td valign="top">
NAAM:
</td>
<td valign="top">
<?php
echo $gegevens['0'];
?>
</td>
</tr>
<tr>
<td valign="top">
Bericht:
</td>
<td valign="top">
<?php
echo $gegevens['1'];
?>
</td>
</tr>
</table>
<?php
}
fclose($fp);
echo "<a href=\"form.htm\">Schrijf iets</a>";
}
else{
echo "<a href=\"form.htm\">Schrijf iets</a>";
}
?> 

  • Tjeemp
  • Registratie: Januari 2005
  • Laatst online: 03-01-2015

Tjeemp

BEER N TEA

kan het niet ook liggen aan de properties... (CHMOD of heet dat)

dus, execute en write voor iedereen beschikbaar maken (minimaal write)

www.timovanderzanden.nl | Beer 'n' Tea


  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Ik zou de foutmelding die je krijgt even posten anders loopt dit uit op giswerk.

Zet display errors op on in je php.ini en bovenaan je script error_reporting( E_ALL );

Systeem | Strava


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-03 14:33

NMe

Quia Ego Sic Dico.

Sorry, maar je code debuggen mag je zelf doen, daar zijn wij niet voor. Dat kunnen we immers niet omdat we niet over de gehele testomgeving beschikken, en sowieso is dat iets wat een programmeur zelf moet kunnen doen. Zie ook Programming FAQ - Debuggen: hoe doe ik dat?. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hoi,

Zoals je in PRG FAQ - de "quickstart" kunt lezen voldoet je topic niet echt aan de eisen die we hier in PRG stellen. Zo zet je je code niet duidelijk in code-tags, maar nog veel belangrijker: je plempt je code hier maar gewoon neer met de verwachting dat wij het oplossen. Sorry, maar debuggen mag je helemaal zelf doen, dat gaan wij niet voor je doen :). Probeer je variabelen te outputten om de waarden te controleren om zo je probleem te isoleren, en controleer de returnwaarden van de verschillende functies die mogelijk een fout kunnen gaan (zie de documentatie van de functies die je gebruikt daarvoor). Je zal zien dat als je dat allemaal gedaan hebt je zelf al snapt waarom het niet werkt. Mocht dat niet zo zijn dan mag je alsnog een topic openen, mits hij voldoet aan de eisen in de quickstart (dus relevante code tussen codetags (en dus niet je complete code), een duidelijke omschrijving van je probleem, wat er fout gaat, waarom jij denkt dat dat fout gaat en hoe het volgens jou zou moeten gaan en wat je allemaal al hebt geprobeerd om het op te lossen). Succes :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.