Toon posts:

[PHP] fopen()

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

Verwijderd

Topicstarter
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
<?php 

$name = htmlspecialchars($_GET['name']);
$website = htmlspecialchars($_GET['site']);        
$text = htmlspecialchars($_GET['text']);

if ($name) {
    if ($text) {
        $write = '<fieldset><legend>Name: '.$name.' (Website: '.$website.')</legend>'.$text.'</fieldset>';
        $filename = 'source/include/data/guestbook.txt';
        $guestbook = fopen($filename,'w');
        fputs($write,$guestbook);
        fclose($guestbook);

        echo 'You have succesfully signed my guestbook';
    }
    else {
        echo 'Please fill out the text form.';
    }
}
else {
    echo 'Please fill out the name form';
}
?>


hij geeft deze errors, maar ik gebruik bijna dezelfde manier van code voor mijn visitors counter.. wat is er mis?

Warning: fopen(source/include/data/guestbook.txt): failed to open stream: No such file or directory in /home/airliner/public_html/gijs/source/content/signgb.php on line 11

Warning: fputs(): supplied argument is not a valid stream resource in /home/airliner/public_html/gijs/source/content/signgb.php on line 12

Warning: fclose(): supplied argument is not a valid stream resource in /home/airliner/public_html/gijs/source/content/signgb.php on line 13
You have succesfully signed my guestbook


8)7

  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 17-02 19:31
Warning: fopen(source/include/data/guestbook.txt): failed to open stream: No such file or directory in /home/airliner/public_html/gijs/source/content/signgb.php on line 11
Lijkt me toch vrij duidelijk? Kijk eens of dat pad bestaat? Het is een relatief pad voor zover ik kan zien... waar je je php bestand hebt zitten, zit daar een source/include/data/ tree in?

En ik zou er nog een check bij doen ofzo

PHP:
1
2
3
4
5
6
$fd = fopen(...);

if  ($fd)
{ openen gelukt doe hier je ding }
else
{ error, openen mislukt }

[ Voor 19% gewijzigd door cavey op 26-04-2004 15:27 ]


  • GambitRS
  • Registratie: Juni 2001
  • Laatst online: 13-06-2013

GambitRS

w00t

je php code staat in source/content en je bestand staat in source/whatever dus zal je eerst een directory terug moeten gaan. Ik denk dat het dan ../include/data/guestbook.txt zal moeten zijn

MechWarrior || Monsters Game


Verwijderd

Topicstarter
hmm sorry vergeten te zeggen

de forms zijn included in de index.php

dus

bla.bla/index.php

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:04

Creepy

Tactical Espionage Splatterer

Heel simpel. PHP kan het bestand niet vinden.

Kijk eens of het bestand echt bestaat en of je de juiste rechten hebt om het bestand aan te maken en om in te schrijven. Let op het verschil met hoofd en kleine letters. En kijk eens of je het bestand kan openen als je een absoluut pad i.p.v. een relatief pad meegeeft.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 23-04 13:07
./source/include/data/guestbook.txt ?
edit:

GambitRS heeft waarschijnlijk de oplossing.

[ Voor 47% gewijzigd door stekkel op 26-04-2004 15:30 ]


Verwijderd

PHP:
1
2
3
4
5
<?php 
        $guestbook = fopen($filename,'w');
        fputs($write,$guestbook);
        fclose($guestbook);
?>


Moet het niet zijn : fputs($guestbook, $write) aangezien $guestbook hier de filepointer is

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Verwijderd schreef op 26 april 2004 @ 15:28:
PHP:
1
2
3
4
5
<?php 
        $guestbook = fopen($filename,'w');
        fputs($write,$guestbook);
        fclose($guestbook);
?>


Moet het niet zijn : fputs($guestbook, $write) aangezien $guestbook hier de filepointer is
Dat klopt :) Als de fopen pointer echter de fout in gaat, kan fputs er niets inzetten; dus je lost het originele probleem er niet mee op ;)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 17-02 19:31
Verwijderd schreef op 26 april 2004 @ 15:27:
hmm sorry vergeten te zeggen

de forms zijn included in de index.php

dus

bla.bla/index.php
Lijkt me duidelijk dan, doe eens ff heel snel dat pad aanmaken..

bla.bla/source/include/data

eventueel nog een lege guestbook.txt neer zetten ...

Verwijderd

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
10
<?php
$fd = fopen('source/include/data/guestbook.txt','w'); 

if  ($fd) { 
    echo 'openen gelukt doe hier je ding'; 
}
else { 
    echo 'error, openen mislukt';
}
?>


deze is positief, dus het bestand kan geopend worden..

[ Voor 82% gewijzigd door Verwijderd op 26-04-2004 15:44 ]


Verwijderd

Topicstarter
Ik heb nu even de complete code herschreven en heb nu een andere error, ik snap die errors allemaal niet meer ;(

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php 

$name = htmlspecialchars($_GET['name']);
$website = htmlspecialchars($_GET['site']);        
$text = htmlspecialchars($_GET['text']);

$filename = 'http://gijs.airliner.nl/source/include/data/guestbook.txt';
$write = '<fieldset><legend>Name: '.$name.' (Website: '.$website.')</legend>'.$text.'</fieldset>';

$guestbook = fopen($filename,'w');
if ($guestbook) {

    fputs($guestbook,$write);
    $fclose($guestbook);

}
else {
    echo 'Could not open the guestbook';
}


error:

Warning: fopen(http://gijs.airliner.nl/source/include/data/guestbook.txt): failed to open stream: HTTP wrapper does not support writeable connections. in /home/airliner/public_html/gijs/source/content/signgb.php on line 10
Could not open the guestbook

--

ok ik snap dat hij hem niet kan openen, maar waarom niet? .. wat heb ik nu fout in de code, aangezien het textbestand gewoon bestaat.. dat heb ik allemaal gechecked

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 22-05 10:11

blizt

Wannabe-geek

Je mag niet een file over http openen & dan beschrijven.
Anders kon ik nu bv. http://gathering.tweakers.net/forum/ openen en eens lekker legen/herschrijven ;)

United we stand, and divided we fall


  • Markieman
  • Registratie: December 2001
  • Laatst online: 15-05 12:16
Verwijderd schreef op 26 april 2004 @ 15:46:

Warning: fopen(http://gijs.airliner.nl/source/include/data/guestbook.txt): failed to open stream: HTTP wrapper does not support writeable connections. in /home/airliner/public_html/gijs/source/content/signgb.php on line 10
Could not open the guestbook

--

ok ik snap dat hij hem niet kan openen, maar waarom niet? .. wat heb ik nu fout in de code, aangezien het textbestand gewoon bestaat.. dat heb ik allemaal gechecked
Je kan met fopen geen http connecties openen, ofwel:

$filename = 'http://gijs.airliner.nl/source/include/data/guestbook.txt'

moet (waarschijnlijk) zijn:

$filename = '/home/airliner/public_html/gijs/source/include/data/guestbook.txt'

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


Verwijderd

Topicstarter
blizt schreef op 26 april 2004 @ 15:49:
Je mag niet een file over http openen & dan beschrijven.
Anders kon ik nu bv. http://gathering.tweakers.net/forum/ openen en eens lekker legen/herschrijven ;)
dan moet ik toch de chmod aanpassen? heb ik gedaan overigens

Verwijderd

Topicstarter
aangepast tot:

source/include/data/guestbook.txt

maar nogsteeds

Warning: fopen(source/include/data/guestbook.txt): failed to open stream: No such file or directory in /home/airliner/public_html/gijs/source/content/signgb.php on line 10

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 23-04 13:07
waarom niet: HTTP wrapper does not support writeable connections
Dus je moet, zoals reeds aangegeven in deze thread, de bestands locatie correct opgeven. Dat kan via een absoluut path (/var/www/html/source/include/data/guestbook.txt) of via een relatief path (../include/data/guestbook.txt of ./include/data/guestbook.txt afhankelijk van de locatie van het script dat op dat moment uitgevoerd wordt).
edit:

Volgens mij is de topicstarter een beetje eigenwijs.

[ Voor 9% gewijzigd door stekkel op 26-04-2004 15:54 ]


  • Markieman
  • Registratie: December 2001
  • Laatst online: 15-05 12:16
Verwijderd schreef op 26 april 2004 @ 15:52:
aangepast tot:

source/include/data/guestbook.txt

...
Probeer het eens zo:

/home/airliner/public_html/gijs/source/include/data/guestbook.txt

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


Verwijderd

Topicstarter
stekkel schreef op 26 april 2004 @ 15:53:
waarom niet: HTTP wrapper does not support writeable connections
Dus je moet, zoals reeds aangegeven in deze thread, de bestands locatie correct opgeven. Dat kan via een absoluut path (/var/www/html/source/include/data/guestbook.txt) of via een relatief path (../include/data/guestbook.txt of ./include/data/guestbook.txt afhankelijk van de locatie van het script dat op dat moment uitgevoerd wordt).
edit:

Volgens mij is de topicstarter een beetje eigenwijs.
oh nou sorry hoor dat ik dingen mims als ik ergens mee bezig ben :(.. niet iedereen is zo slim als jullie..

maarjah in ieder geval bedankt voor het helpen allemaal

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 00:01

Janoz

Moderator Devschuur®

!litemod

Dit gaat nergens meer over. De foutmelding is overduidelijk. Debuggen zul je toch echt zelf moeten doen. Zie voor meer info de quickstart in de faq.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.