Avatar billede tobiasfp Nybegynder
03. august 2008 - 12:28 Der er 21 kommentarer

php - 777 - fopen()

Hej..
Jeg har et kæmpe problem.

<?php
$fp = fopen("$navn.txt", "w");

fputs($fp, $navn, $adresse, $nummer, $antal);

fclose($fp);
?>

Når jeg kører programmet modtager jeg:

Warning: fopen(Tobias Petersen.txt) [function.fopen]: failed to open stream: Permission denied in /home/tobias/public_html/Tørklæder/modtag.php on line 14

Warning: Wrong parameter count for fputs() in /home/tobias/public_html/Tørklæder/modtag.php on line 15

Warning: fclose(): supplied argument is not a valid stream resource in /home/tobias/public_html/Tørklæder/modtag.php on line 16


...
Jeg har googlet det lidt og det er muligt at mine mapper samt filer ikke har tilladelsen 777...
Jeg ved bare ikke hvordan man sætter tingene til 777.

på forhånd tak.
Avatar billede olebole Juniormester
03. august 2008 - 13:55 #1
<ole>

fputs tager to argumenter:
    fputs($fp, "En streng");

/mvh
</bole>
Avatar billede olebole Juniormester
03. august 2008 - 13:58 #2
Hvad chmod angår, så sættes den slags via FTP-programmet. Du kan sikkert højreklikke på filen (hvis det altid er den samme) - eller den overordnede mappe - og sætte tilladelserne dér. Det er lidt forskelligt fra program til program, hvordan det præcist gøres.

Det er tilladelserne, der giver den første og sidste af dine warnings - den midterste skyldes, det jeg skrev i mit forrige indlæg
Avatar billede tobiasfp Nybegynder
03. august 2008 - 14:56 #3
Fair nok..
Jeg er igang med at lære at skrive php og jeg ved faktisk ikke hvordan jeg får adgang til mit ftp program..

Jeg kører lamp:

Ubuntu
Apache

Ved ikke hvorvidt det er til hjælp..

Jeg kommer ind i min ftp ved at skrive //localhost/*brugernavn*

Men mere ved jeg faktisk ikke.
Avatar billede olebole Juniormester
03. august 2008 - 15:02 #4
Prøv at kikke her:
    http://dk2.php.net/manual/en/function.chmod.php

Den viser, hvordan du programmatisk kan sætte tilladelser på filer og mapper
Avatar billede tobiasfp Nybegynder
03. august 2008 - 15:13 #5
tusind tak
Avatar billede olebole Juniormester
03. august 2008 - 15:16 #6
Selvtak. Jeg lægger et svar, men vent nu lige med accepten, til du får det til at fungere. Bare stil uddybende spm, hvis det ikke funker for dig  ;o)
Avatar billede tobiasfp Nybegynder
03. august 2008 - 15:32 #7
Okay fair nok..

Jeg fatter det virkeligt ikke,
Jeg har en bog som jeg læser
"PHP/MYSQL programming for the absolute beginner" som giver følgende eksempel:


<?
$sonnet76 = <<<HERE

Sonnet # 76, William Shakespeare



Why is my verse so barren of new pride,

So far from variation or quick change?

Why with the time do I not glance aside

To new-found methods, and to compounds strange?

Why write I still all one, ever the same,

And keep invention in a noted weed,

That every word doth almost tell my name,

Showing their birth, and where they did proceed?

O! know sweet love I always write of you,

And you and love are still my argument;

So all my best is dressing old words new,

Spending again what is already spent:

For as the sun is daily new and old,

So is my love still telling what is told.



HERE;



$fp = fopen("sonnet76.txt", "w");

fputs($fp, $sonnet76);

fclose($fp);



?>


Kan det passe at dette eksempel er forkert?

Hvis jeg f.eks. har 5 variabler som jeg gerne vil gemme i filen "sonnet76.txt" hvad gør jeg så...?
Avatar billede olebole Juniormester
03. august 2008 - 16:04 #8
Eksemplet er helt korrekt. Hvis det kun er variablerne, kunne det se sådan ud:

<?php

$navn = "Ole Bole";
$adresse = "Min adresse";
$nummer = 123;
$antal = 456;

$minTekst = $navn." ".$adresse." ".$nummer." ".$antal;
$fp = fopen("sonnet76.txt", "w");
fputs($fp, $minTekst);
fclose($fp);

?>

Det kunne også være:

<?php

$navn = "Ole Bole";
$adresse = "Min adresse";
$nummer = 123;
$antal = 456;

$minTekst = "Navn: ".$navn."\r\nAdresse: ".$adresse."\r\nNummer: ".$nummer."\r\nAntal: ".$antal;
$fp = fopen("sonnet76.txt", "w");
fputs($fp, $minTekst);
fclose($fp);

?>
Avatar billede olebole Juniormester
03. august 2008 - 16:09 #9
- eller:

<?php

$navn = "Ole Bole";
$adresse = "Min adresse";
$nummer = 123;
$antal = 456;

$minTekst = <<<TEXTEND

Navn: $navn
Adresse: $adresse
Nummer: $nummer
Antal: $antal

TEXTEND;

$fp = fopen("sonnet76.txt", "w");
fputs($fp, $minTekst);
fclose($fp);

?>
Avatar billede tobiasfp Nybegynder
03. august 2008 - 16:11 #10
Kunne man i stedet for:
$minTekst = "Navn: ".$navn."\r\nAdresse: ".$adresse."\r\nNummer: ".$nummer."\r\nAntal: ".$antal;

Gøre sådan her:

$minTekst = <<<here
$navn
$adresse
$nummer
$antal

here;
??
Avatar billede olebole Juniormester
03. august 2008 - 16:12 #11
Jeg går udfra, at du - nu, hvor din browser er refreshed - kan se, svaret er: Ja  =)
Avatar billede tobiasfp Nybegynder
03. august 2008 - 16:13 #12
ups, det er jo precis hvad du har skrevet :) hehe.. My bad
Avatar billede olebole Juniormester
03. august 2008 - 16:13 #13
;D
Avatar billede tobiasfp Nybegynder
03. august 2008 - 16:18 #14
Nu virker det for mig, nu er det eneste jeg ikke kan finde ud af det med 777...
Jeg kiggede lidt på det link du gav mig, og jeg har prøvet mig frem med chmod:



<?
chmod("/", 0777);

$tid = date("l \\t\h\e jS");
$txt = <<<here
$navn
$tid
$gaestebog

here;

$fp = fopen("gaestebog.txt", "a");
fputs($fp, $txt);
fclose($fp);

?>



Dette giver mig denne error:


Warning: chmod() [function.chmod]: Operation not permitted in /home/tobias/public_html/Test/gaestebog.php on line 13

Warning: fopen(gaestebog.txt) [function.fopen]: failed to open stream: Permission denied in /home/tobias/public_html/Test/gaestebog.php on line 24

Warning: fputs(): supplied argument is not a valid stream resource in /home/tobias/public_html/Test/gaestebog.php on line 25

Warning: fclose(): supplied argument is not a valid stream resource in /home/tobias/public_html/Test/gaestebog.php on line 26
Avatar billede olebole Juniormester
03. august 2008 - 21:05 #15
Prøv:
    chmod("gaestebog.txt", 0777);

- muligvis:
    chmod("/Test/gaestebog.txt", 0777);
Avatar billede tobiasfp Nybegynder
03. august 2008 - 21:31 #16
Det virker desværre ikke :(
Avatar billede olebole Juniormester
03. august 2008 - 21:39 #17
Får du warnings?
Avatar billede tobiasfp Nybegynder
03. august 2008 - 22:42 #18
Jep :(


Jeg går bare videre og læser om mysql, køber en plads på en server og finder ud af det senere :)


Tusinde tak for hjælpen, det er fedt at du dedikerer dig til at hjælpe :)

Vi skrives nok ;)
Avatar billede olebole Juniormester
03. august 2008 - 22:49 #19
Okay ... ét sidste forsøg:
    chmod("/home/tobias/public_html/Test/gaestebog.txt", 0777);
Avatar billede tobiasfp Nybegynder
03. august 2008 - 22:59 #20
Det virker heller ikke, måske fordi jeg placerer chmod forkert i filen?

Jeg placerer den lige efter <? så det er det første der sker.
Avatar billede olebole Juniormester
03. august 2008 - 23:22 #21
Det burde være fint  =)

Er safemode måske slået til?
    http://dk2.php.net/manual/en/features.safe-mode.php#ini.safe-mode
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester