Avatar billede Slettet bruger
28. juli 2005 - 20:55 Der er 10 kommentarer og
1 løsning

php script kan ikke skrive til en tekstfil

Jeg har følgende script. Når man kommer åbner denne php fil to variabler indholder årstal, som også er mappenavn, samet måned, som også er navnet på filen.
Man skal så kunne åbne en hvilken som helst fil, for derefter at kunne redigere i den.

Når siden åbnes lægger den indholdet af den ønskede tekstfil ind i textaret. Problenmet er, at når man så redigerer teksten og trykker på knappen, kommer der en fejlmeddelelse:
Warning: fopen(): SAFE MODE Restriction in effect.

Kan det slet ikke lade sig gøre at opbygge scriptet på denne måde? og i så fald er der et alternativ?

    <?php

$aar = $_POST["aar"];
$mdr = $_POST["mdr"];
$filename = ("$aar/$mdr.txt");
$knap_ret = $_POST["knap_ret"];
if ($knap_ret == "Ret kalender") {
$indhold = $_POST["indhold_kalender"];
$listfile = fopen($filename, 'w');
fwrite($listfile,"\n $indhold");
fclose($listfile);
echo ("Ændringerne for kalenderen $mdr $aar er foretaget");
}
else {
echo("Kalenderen for $mdr $aar er åbnet");
?>

<form action="ret_kalender.php" method="post">
<textarea name="indhold_kalender" cols="150" rows="20">
<?php
include("$filename");
?>
</textarea>

<input type="submit" value="Ret kalender" name="knap_ret">
</form>
<?php
}
?>
Avatar billede dennism Nybegynder
28. juli 2005 - 21:11 #1
Jeg kigger lige på det ;)
Avatar billede dennism Nybegynder
28. juli 2005 - 21:13 #2
Skal måned og år angives i _GET?
Avatar billede dennism Nybegynder
28. juli 2005 - 21:20 #3
Er det noget ala dette du søger:

<?
$filename = "$_GET[year]/$_GET[month].txt";

if ($_POST[action] == "update") {
    $file = fopen($filename, 'w');
    fwrite($file,"$_POST[text]");
    fclose($file);

    echo"Kalenderen for $_GET[month]-$_GET[year] er nu ændret.";
}
?>

<form action="<?=$_SERVER[REQUEST_URI]?>" method="post">
    <input type="hidden" value="update" name="action">
    <textarea name="text" cols="150" rows="20"><?php include("$filename"); ?></textarea>
    <input type="submit" value="Ret kalender">
</form>

Scrippet kan du så køre via "filname.php?year=2005&month=07"
Avatar billede Slettet bruger
28. juli 2005 - 21:33 #4
formen i den html fil, som man åbner forinden ser således ud:

<form action="ret_kalender.php" method="post">
<h2>Åbn en kalender</h2>
Skriv år (eks. 2003): <input type="text" name="aar" size="30">
<br>
Skriv måned (eks. januar): <input type="text" name="mdr" size="30">
<br>
<input type="submit" value="Åbn">
</form>

Egentlig skriver man bare mappenavnet (i form at et årstal), samt et filnavn (i form af en måned).
php scriptet både indsætter filen i textarea samt prøver at skrive iden.
Avatar billede dennism Nybegynder
28. juli 2005 - 21:37 #5
Prøv at rette den til:

<form action="ret_kalender.php" method="get">
<h2>Åbn en kalender</h2>
Skriv år (eks. 2003): <input type="text" name="year" size="30">
<br>
Skriv måned (eks. januar): <input type="text" name="month" size="30">
<br>
<input type="submit" value="Åbn">
</form>

Og navngiv koden jeg sendte før som ret_kalender.php
Avatar billede Slettet bruger
28. juli 2005 - 22:27 #6
Nu virker det ligepræcis som det skal. tak for det
Avatar billede dennism Nybegynder
28. juli 2005 - 22:57 #7
Hvorfor har du så selv taget point'ene, når det virker?
Avatar billede Slettet bruger
28. juli 2005 - 23:22 #8
hov, det må du undskylde, det var ikke meningen.
Jeg bruger ikke eksperten.dk så ofte. Hvordan kan jeg give dig dem?
Avatar billede dennism Nybegynder
29. juli 2005 - 10:37 #9
Opret et spørgsmål i samme kategori, hvor du henviser til dette spørgsmål. Så ligger jeg et svar der, og så kan du acceptere det.
Avatar billede Slettet bruger
29. juli 2005 - 11:02 #10
Nu er spørgsmålet oprettet
http://www.eksperten.dk/spm/635835
Avatar billede dennism Nybegynder
29. juli 2005 - 11:21 #11
Godt - jeg har svaret.
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