Gå til innhold

Content management problem


Anbefalte innlegg

Heisann. Sitter å prøver å mekke et lite php script for en kompiss av meg så han skal slippe å laste ned sia hans osv vær gang han skal endre på noe.

Problemet er at jeg ikke vet hva som er galt.

 

Her har dere koden:

<?php
$filename = $_GET['file'];
$content = $_POST['editbar'];
if(isset($content)) {
if (is_writable($filename)) {
   if (!$handle = fopen($filename, 'a')) {
         echo "Kan ikke åpne $filename";
         exit;
   }

   if (fwrite($handle, $content) === FALSE) {
       echo "Kan ikke skrive til $filename";
       exit;
   }
 
   echo "Sånn, da var <strong>$content</strong> til: $filename";
 
   fclose($handle);

} else {
    echo "Kan ikke skrive til $filename pga at du ikke har lov til å skrive til den.";
}
}
if(!isset($content)) {
echo "
<form action='?editbar=' method='post'>
<textarea rows='30' cols='70' name='editbar'>";
include("$filename");
echo "</textarea>
<input type='submit' value='Submit' >
</form>";
   
}
?>

 

Takk for all hjelp.

Lenke til kommentar
Videoannonse
Annonse

Nå er det litt vanskelig å gi noe godt svar når man ikke veit hva som er problemet. Hva er det som skjer som ikke skal skje, eller ikke skjer som skulle skjedd?

 

Sånn ut fra scriptet kan jeg gjøre et vilt tipp og anta at innholdet som skal printes ut i textarea ikke er korrekt. Dette kommer av at du vil ha innholdet av fila og ikke inkluderer fila. Med andre ord file_get_contents og ikke include.

Endret av Ernie
Lenke til kommentar

Problemet er at uansett hva jeg prøver å skrive til den så får jeg opp feil meldinga: "Kan ikke skrive til pga at du ikke har lov til å skrive til den."

Det morsome er at dette er på en lokal windows box (der chmods ikke har noe å si?)

 

Prøvde med file_get_contents også. Hjalp ikke.

Lenke til kommentar

Kline alle filer inn i mySQL, for så å endre dem der? Er nok ikke det han ønsker.

 

Og du "GET'er" aldri "file". Du get'er editbar. Enten "$filename = $_GET['editbar'];", eller "<form action='?file=' method='post'>". Gjerne sistnevnte. Likt navn på post og get kan bli forvirrende.

Lenke til kommentar
Kline alle filer inn i mySQL, for så å endre dem der? Er nok ikke det han ønsker.

 

Og du "GET'er" aldri "file". Du get'er editbar. Enten "$filename = $_GET['editbar'];", eller "<form action='?file=' method='post'>". Gjerne sistnevnte. Likt navn på post og get kan bli forvirrende.

6659772[/snapback]

Som om det gjør det så fantatisk mye verre å manipulere det hele? Bare å lage seg en egen form det. Get er helt okey så lenge den ikke endrer noe og grunnen til det er ikke at andre kan endre det, det har med at noen bruker programmer som cacher linkene på siden man viser akkurat nå. Har man en link som sletter noe, så blir jo også det cachet som vanlig.

 

ZeLEkT: Safe_mode står ikke tilfeldigvis på?

Endret av Ernie
Lenke til kommentar
Hvordan skal han kunne bruke $_GET['file'], da det aldri blir sendt noen vei? Om det var det du påpekte.

 

Han har enten feil "method" i formen, eller feil navn på $_GET[].

6659876[/snapback]

Okey, nå fattet jeg fint lite her. Ut fra koden kan det se ut som $_GET['file'] inneholder filnavnet og $_POST['editbar'] er innholdet i fila etter det er redigert, og nå ser jeg plutselig problemet med koden her.

 

Trådstarter:

if(isset($content)) {

Det der funker ikke ;) $content vil alltid være satt. Enten skriver du

if(!empty($content)) {

eller

if(isset($_POST['editbar'])) {

Endret av Ernie
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å
×
×
  • Opprett ny...