Toon posts:

php script wil niet, beetje newbie :)

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

Verwijderd

Topicstarter
Het php script wat ik probeer te gebruiken wil niet werken.
Het gaat om het volgende kleine scriptje:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
 
<?php
 
$f=fopen("text_file.txt","a");
 
fwrite($f,"  name=\t\t\t$name\r\n");
fwrite($f,"  reactie=\t\t$reactie\r\n\r\n");
 
fclose($f);
 
?>


en dit staat in write_to_file.php

Wanneer ik dit op de server zet en hem probeer aan te roepen vanuit een Flash form, geeft hij de volgende foutmeldingen. Ook als ik alleen het script oproep geeft hij deze foutmelding:

Warning: fopen("text_file.txt","a") - Permission denied in /home/sites/site29/web/guestbook1/write_to_file.php on line 3

Warning: Supplied argument is not a valid File-Handle resource in /home/sites/site29/web/guestbook1/write_to_file.php on line 5

Warning: Supplied argument is not a valid File-Handle resource in /home/sites/site29/web/guestbook1/write_to_file.php on line 6

Warning: Supplied argument is not a valid File-Handle resource in /home/sites/site29/web/guestbook1/write_to_file.php on line 8

ik heb het script op 755 en op 777 chmod geprobeerd.

Waar kan dit aan liggen,
(kheb al gesearcht maar kon nix relevants vinden, en zelf ben ik niet zo'n die hard scripter)

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 16:55

Creepy

Tactical Espionage Splatterer

het PHP script draait onder een andere user als jezelf. Dus worden ook de rechten van die andere user gebruikt (vaak nobody of wwwrun)

Dus probeer of van user te veranderen in het PHP script (geloof dat dit kan.. geen idee hoe) of zoek uit onder welke user of group de webserver draait, en zorg dat die user/group daar kan schrijven..

"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


Verwijderd

Topicstarter
nooit van gehoord, zou dus ook niet weten hoe dat dan moet.

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

je moet niet het script CHMODDEN, maar text_file.txt

  • MikeN
  • Registratie: April 2001
  • Laatst online: 18:15
Op woensdag 12 september 2001 18:18 schreef Timpie2000 het volgende:
je moet niet het script CHMODDEN, maar text_file.txt
HIHI, zeker CGI/Perl gewend...

Verwijderd

Topicstarter
Op woensdag 12 september 2001 18:18 schreef Timpie2000 het volgende:
je moet niet het script CHMODDEN, maar text_file.txt
Hoe zou dat dan kunnen. Het text_file.txt bestaat nog niet, deze moet het php script eerst aanmaken en kan ik hem dus nog niet chmodden.

[edit] kheb het nu geprobeerd met een text_file.txt die ik gechmod heb, maar dit levert dezelfde foutmelding op

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

php heeft ook een chmod commando, (chmod, goh ;) )
als je je bestand 1777 hebt moet het gewoon werken.. (Zelfs op vuurwerk werkt het)

  • Orphix
  • Registratie: Februari 2000
  • Niet online
maar php runt meestal als user 'nobody', dan kan je niet chmodden van bestanden van de user.

  • WAcKiN
  • Registratie: November 1999
  • Laatst online: 28-08-2023
Hoe zou dat dan kunnen. Het text_file.txt bestaat nog niet, deze moet het php script eerst aanmaken en kan ik hem dus nog niet chmodden.
Dan is de directory waar je in wilt schrijven niet writable voor de user waaronder de webserver draait. Zoek een directory waar jij als user (ftp/shell) owner van bent en zet daar een bestand in waar je afdoende rechten aan toekent zodat de webserver gebruiker er naar kan schrijven.

(World write/read-able is geen goed idee als er andere mensen op de server zitten, in elk geval zeker niet readable maken door world of de webserver als het om gevoelige gegevens gaan)

Dit bestand geef je dan absoluut aan ('/usr/home/[gebruikersnaam]/de_file') in fopen() en dan moet het werken als je het goed doet. Misschien is het een goed idee om je eens te verdiepen in het *n?x gebruiker/groep/rechten bestands-systeem.

  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
Op woensdag 12 september 2001 19:46 schreef Miel99 het volgende:

[..]

Hoe zou dat dan kunnen. Het text_file.txt bestaat nog niet, deze moet het php script eerst aanmaken en kan ik hem dus nog niet chmodden.

[edit] kheb het nu geprobeerd met een text_file.txt die ik gechmod heb, maar dit levert dezelfde foutmelding op
Je moet dan de directory waar je het text_file.txt naartoe wilt schrijven naar 777 chmodden, dan krijg je in ieder geval de permission denied error niet (anders doe je iets fout). Qua foutmeldingen is alleen de eerste van belang, de rest vloeit allemaal uit ontbrekende permissions voort.

Nog een goeie tip, maak voor de bestanden die je vanuit je script laat aanmaken / muteren een eigen directory aan, waarin je geen scripts kan uitvoeren (sluit ze desnoods met een .htaccess file af (indien apache). Anders vraag je bijna om gedonder.

Als je er nu helemaal niets meer van snapt dan kan ik je aanraden om maar eens wat over het unix filesystem te gaan lezen, ik heb hier een reference staan die het goed (en beknopt) uitlegt http://gang95.dhs.org/man/rhl08.htm#E67E8 (ja, RTFM! ;))

Zeker het gedeelte file permissions zul je niet kunnen negeren als je met php bezig bent.

Ik hoop dat je hier iets mee kunt, suc6!

Everyone complains of his memory, no one of his judgement.


  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
nog ff twee tips:

- Je zou het kunnen proberen me andere vlaggetjes, misschien moet je dan eerst de inhoud van het bestand in een string inlezen en dan aan elkaar plakken, maar misschien werkt het wel (al zou ik niet weten waarom ...)

dan wordt het dus zoiets:
(dit werkt bij mij in ieder geval ...
PHP:
1
2
3
4
5
6
7
<?
    // open content.txt and write the new entry
    $content = @implode("", @file ("content.txt"));
    $fp=fopen("content.txt","r+");
    fwrite($fp,($content_add.$content));
    fclose($fp);
?>

(en haal die @tjes weg om te debuggen.)

Everyone complains of his memory, no one of his judgement.

Pagina: 1