Gå til innhold

Problem med eit "redigeringssystem" sammen med ein innloggingsfunksjon


Anbefalte innlegg

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 av Kolb
Lenke til kommentar
Videoannonse
Annonse

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 av Kolb
Lenke til kommentar
Gjest Slettet+142

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

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 av Kolb
Lenke til kommentar

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 av Kolb
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...