Gå til innhold

lagring av filer med php[LØST]


Anbefalte innlegg

driver å lager et CMS system. Mysql delen er ferdig, men til kontrollpanelet skal jeg kunne laste opp css filer og edite dem i nettleseren. har lest på fopen/fwrite osv, men kan ikke finne en måte å fjerne eksisterende fil, for å så lagre alt på nytt igjen. noen som vet? kanskje jeg er veldig uspesifik her, men kanskje dette hjelper:

  • bruker har logget inn og trykker på rediger css
  • velger css fil som skal redigers (link)
  • et txtarea felt dukker opp med innhold av css'filen
  • bruker redigerer css filen
  • bruker trykker på 'lagre' eller 'lagre og reload' (ganske lik den funksjonen som invision powerboard har på sitt forum)
  • css filen lagres

Endret av phun-ky
Lenke til kommentar
Videoannonse
Annonse

hm.. hvordan henter jeg ut alt i fila til en variabel? får bare "resource id" av dette:

 

//henter ut variabler
$postedCSS = $_POST['cssTextArea'];
$requestedCSS = $_GET['css'];	
$defaultCSS = '1';
$CSSDoc = "";

//hvis det ikke er oppgitt noen css fil, åpne standard
if((!isset($requestedCSS)) && (!isset($postedCSS)))
{
 $CSSDoc = "/hsphere/local/home/phun-ky/umedia.no/umedia_no.css";
 $handleCSS = fopen("$CSSDoc","w+");
 /*if (fwrite($handle, $postedCSS) === FALSE) 
 {
       	echo "Kan ikke skrive til fil ($CSSDoc)";
   	}*/
 fclose($CSSDoc);
}

Lenke til kommentar

da får jeg permission denied, har gitt skrive og kjørerettigheter..

 

Warning: fopen(/umedia_no.css): failed to open stream: Permission denied in /hsphere/local/home/phun-ky/umedia.no/admin/a_css.php on line 12

 

Warning: fclose(): supplied argument is not a valid stream resource in /hsphere/local/home/phun-ky/umedia.no/admin/a_css.php on line 17

Endret av phun-ky
Lenke til kommentar
Kanskje det går med bare umedia_no.css uten skråstrek.

5256812[/snapback]

nope

 

der jeg prøver å få det ut; hvis det hjelper noe:

 

<form name="css" method="POST" action="a_css.php">
 	<textarea name="cssTextArea" id="textArea_css">
   <?php echo "$handleCSS";?>	
 	</textarea>
 	<input type="button" value="save css" />
 </form>

 

feilen er i koden øverst, men ikke her, tenkte bare dette skulle gi dere en pekepinn på hva jeg prøver på.

Endret av phun-ky
Lenke til kommentar

1 Du skriver til filen med $handle, ettersom jeg ser, så skal det være $handleCSS.

 

2. Du lukker filen (fclose) igjen med filnavnet, her må du også bruke $handleCSS

 

Rett dette og prøv på nytt med pathen du hadde først.

 

EDIT: Ser nå at du jo faktisk kommentert ut if fwrite blokken, så da kan du se bort ifra punkt 1 ;) Men pkt 2 må rettes.

Endret av kakkle
Lenke til kommentar

ok, har det sånn nå:

 

<?php
//henter ut variabler
$postedCSS = $_POST['cssTextArea'];
$requestedCSS = $_GET['css'];	
$defaultCSS = '1';
$CSSDoc = "";

//hvis det ikke er oppgitt noen css fil, åpne standard
if((!isset($requestedCSS)) && (!isset($postedCSS)))
{
 $CSSDoc = "/hsphere/local/home/phun-ky/umedia.no/umedia_no.css";
 $handleCSS = fopen("$CSSDoc","w+");
 /*if (fwrite($handleCSS, $postedCSS) === FALSE) 
 {
       	echo "Kan ikke skrive til fil ($CSSDoc)";
   	}*/
 fclose($handleCSS);
}

?>

 

men får:

 

Resource id #2 bare i textarea.

Lenke til kommentar

Bruk heller file_get_contents for å få hele filen til en variabel.

Eks:

$filename = "fil.txt";
$helefilen = file_get_contents($filename);
echo "<textarea>$helefilen</textarea>";

EDIT: Okei.. .Nå er jeg litt usikker på hva du spør om... I scriptet så henter du data fra textarea, men du sier at du får Resource id#2 i textarea. Prøver du å vise innholdet fra en fil i et textarea, eller prøver du å skrive fra et textarea til en fil ?

 

EDIT 2: Ser nå at du har lagt ut koden for det lengre opp. Sløvt av meg :( Skal du lese fila med fopen, så tenker jeg at du må bruke fread() funksjonen.

Endret av kakkle
Lenke til kommentar

hehe, nå får jeg dette:

 

Warning: fread(): Length parameter must be greater than 0. in /hsphere/local/home/phun-ky/umedia.no/admin/a_css.php on line 13

 

med dette:

 

//henter ut variabler
$postedCSS = $_POST['cssTextArea'];
$requestedCSS = $_GET['css'];	
$defaultCSS = '1';
$CSSDoc = "";

//hvis det ikke er oppgitt noen css fil, åpne standard
if((!isset($requestedCSS)) && (!isset($postedCSS)))
{
 $CSSDoc = "/hsphere/local/home/phun-ky/umedia.no/umedia_no.css";
 $handleCSS = fopen("$CSSDoc","w+");
 $contentCSS = fread($handleCSS, filesize($CSSDoc));
 /*if (fwrite($handleCSS, $postedCSS) === FALSE) 
 {
       	echo "Kan ikke skrive til fil ($CSSDoc)";
   	}*/
 fclose($handleCSS);
}

Lenke til kommentar
EDIT: Okei.. .Nå er jeg litt usikker på hva du spør om... I scriptet så henter du data fra textarea, men du sier at du får Resource id#2 i textarea. Prøver du å vise innholdet fra en fil i et textarea, eller prøver du å skrive fra et textarea til en fil ?

5257020[/snapback]

 

jeg skal både hente data fra textarea (reloade css fila i textarea når jeg har trykket "save", og skrive til valgt css fil når jeg saver. bruker skal også kunne velge hvilken css fil som skal redigeres fra samme side.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...