Delineation Skrevet 6. november 2007 Del Skrevet 6. november 2007 (endret) Eg holder på å laga ei sia i php der da skal vera mulig å redigera sia uten å gå inn i kildekoden, altså ved å logga inn og so forandra. Eg søkte litt på forumet og fant eit "redigeringssystem" som virka ganske fint, men då eg låg den sammen med innloggingsfunksjonen min så virka redigeringssystemet kun halveis. Med andre ord: Eg ser alle filena eg har lasta opp som linka, men når eg trykke på ein dei so forsvinne listo uten at textboxen kjem opp. Uten innloggingsfunksjonen: <?php $file = $_GET['file']; $innhold = file_get_contents($file); $this_file = basename($_SERVER['PHP_SELF']); if (!isset($file)) { if ($handle = opendir('.')) { while (false !== ($fil = readdir($handle))) { if ($fil != "." && $fil != "..") { echo "<a href=\"$this_file?file=$fil\">$fil</a><br />\r\n"; } } } closedir($handle); } else if ($_GET['step'] == "1") { $handle = fopen($file, "w"); fwrite($handle, $_POST['text']); fclose($handle); echo "Fullført!"; } else { ?> <form action="<?= $this_file."?step=1&".$_SERVER['QUERY_STRING'] ?>" method="post"> <textarea name="text"><?= $innhold ?></textarea><br /> <input type="submit" value="Lagre!" /> </form> <?php } ?> Med innloggingsfunksjonen: <?php $brukernavn = "admin"; $passord = "test"; if($_POST['brukernavn'] == $brukernavn) { if($_POST['passord'] == $passord) { $file = $_GET['file']; $innhold = file_get_contents($file); $this_file = basename($_SERVER['PHP_SELF']); if (!isset($file)) { if ($handle = opendir('.')) { while (false !== ($fil = readdir($handle))) { if ($fil != "." && $fil != "..") { echo "<a href=\"$this_file?file=$fil\">$fil</a><br />\r\n"; } } } closedir($handle); } else if ($_GET['step'] == "1") { $handle = fopen($file, "w"); fwrite($handle, $_POST['text']); fclose($handle); echo "Fullført!"; } else { echo ' <form action="<?= $this_file."?step=1&".$_SERVER['QUERY_STRING'] ?>" method="post"> <textarea name="text" rows="50" cols="50"><?= $innhold ?></textarea><br /> <input type="submit" value="Lagre!" /> </form> '; } } else { echo(""); } } else { echo(""); } ?> Er da nåken som ser kva eg har gjort feil? Endret 6. november 2007 av Kolb Lenke til kommentar
Gjest Slettet+142 Skrevet 6. november 2007 Del Skrevet 6. november 2007 Vet ikke om dette er løsningen med: Ikke bruk shorttags. - Bruk <?php ?> Kjør htmlspecialchars() på $innhold før du printer det ut til textboxen. Lenke til kommentar
Delineation Skrevet 6. november 2007 Forfatter Del Skrevet 6. november 2007 (endret) No har da seg sånn at eg er ein meir "copy/paste" person, og derfor skjønner eg ikkje heilt kva du meiner. Kor har eg brukt "shorttags"? Meiner du at eg skal skriva: <?php ... $file = $_GET['file']; $innhold = file_get_contents($file); $innhold = htmlspecialchars(ENT_QUOTES); $this_file = basename($_SERVER['PHP_SELF']); ... ?> Endret 6. november 2007 av Kolb Lenke til kommentar
Gjest Slettet+142 Skrevet 6. november 2007 Del Skrevet 6. november 2007 nei, jeg vil at du skal skrive <?php ... $file = $_GET['file']; $innhold = file_get_contents($file); $innhold = htmlspecialchars($innhold); $this_file = basename($_SERVER['PHP_SELF']); ... ?> Shorttags har du brukt alle steder du skrev <?= $<variabelnavn> ?>. Bytt det heller ut med <?php echo $<variabelnavn>; ?> Lenke til kommentar
Delineation Skrevet 6. november 2007 Forfatter Del Skrevet 6. november 2007 (endret) Har fiksa på shorttags-ena og kjørt htmlspecialchars() på $innhold, men da er fremdeles ingen endring og redigeringssystemet fungerer kun halveis. Takk for hjelpen, mariyo, men da ser ikkje ut til at da hjalp. Her er den nye koden: Klikk for å se/fjerne innholdet nedenfor <?php $brukernavn = "admin"; $passord = "test"; if($_POST['brukernavn'] == $brukernavn) { if($_POST['passord'] == $passord) { $file = $_GET['file']; $innhold = file_get_contents($file); $innhold = htmlspecialchars($innhold); $this_file = basename($_SERVER['PHP_SELF']); if (!isset($file)) { if ($handle = opendir('.')) { while (false !== ($fil = readdir($handle))) { if ($fil != "." && $fil != "..") { echo "<a href=\"$this_file?file=$fil\">$fil</a><br />\r\n"; } } } closedir($handle); } else if ($_GET['step'] == "1") { $handle = fopen($file, "r+"); fwrite($handle, $_POST['text']); fclose($handle); echo "Fullført!"; } else { echo ' <form action="<?php echo $this_file."?step=1&".$_SERVER['QUERY_STRING']; ?>" method="post"> <textarea name="text" rows="50" cols="50"><?php echo $innhold; ?></textarea><br /> <input type="submit" value="Lagre!" /> </form> '; } } else { echo(""); } } else { echo(""); } ?> Endret 6. november 2007 av Kolb Lenke til kommentar
alec1 Skrevet 9. november 2007 Del Skrevet 9. november 2007 At du sier at det ikke virker er greit nok, men hvis du kan være litt mer spesifikk blir det mye lettere å hjelpe. Hva er det som ikke virker? Får du en feilmelding? Lenke til kommentar
Delineation Skrevet 10. november 2007 Forfatter Del Skrevet 10. november 2007 (endret) Eg får ikkje opp feilmelding, men eg lurer på om det har nåke med at eg bruker home.no.net. Eg trur òg problemet ligger i at eg pruker redigeringssystemet sammen med innloggingsfunksjonen min. Eg fant redigeringssystemet mitt her. Problemet er at linkena viser, men når eg trykker på ein av dei så forsvinner lista over linkena. Uten at koden til sia kommer opp i <textarea>. Endret 10. november 2007 av Kolb Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå