Avatar billede KHHP Juniormester
22. februar 2012 - 17:09 Der er 9 kommentarer og
1 løsning

Redigering af sider

Hej
Jeg er igang med at oprette en hjemmeside, hvor man, efter at have logget ind som admin eller webmaster, kan redigere indholdet af en side. Dette skal foregå ved at der i bunden af siden kommer et link/knap der hedder "Rediger", og denne knap skal kun være der hvis man er logget ind. Når man så trykker, omdannes teksten til en editor hvor jeg så kan redigere indholdet og gemme i databasen.
Jeg har lagt koden fra min fil her:
http://pastebin.com/Dy8uHJHX
Er der nogen der kan hjælpe mig videre her? Jeg får teksten vist på siden, både når jeg er logget ind og når jeg ikke er logget ind, som admin eller webmaster. Jeg kan dog ikke få den til at loade min editor, eller vise et "Rediger" link når jeg er logget ind, så der må være et eller andet galt, men kan bare ikke finde ud af hvad der er forkert.
Avatar billede inteeeL Nybegynder
22. februar 2012 - 23:26 #1
Jeg kan forstå, at det er linje 112, der bliver vist:
echo nl2br($row_addons["tekst"]);


Dette må altså indekere, at $_SESSION["webmaster"] ikke er sat, eller at $_SESSION["webmaster"] er false. Prøv at udskrive $_SESSION["webmaster"] (dette kaldes debugging) og se, hvad den siger.
Avatar billede timpet Novice
23. februar 2012 - 05:40 #2
Det lader til at din session ikke bliver sat helt som du forventer det, har du prøvet enden at fjerne true delen af valideringen, eller isset delen?
Avatar billede KHHP Juniormester
23. februar 2012 - 23:13 #3
Har nu prøvet at fjerne true i min validering, fjerne isset, samt forsøgt at udskrive $_SESSION["webmaster"], men intet sker. Har både prøvet hvor jeg var logget og hvor jeg ikke var logget ind.
Her er php-koden fra 103 og til slut på php-koden:
<?php
echo $_SESSION["webmaster"];
if(($_SESSION["webmaster"]) && $_SESSION["webmaster"]){
if(($_GET["edit"])){
echo "<div class='rediger'>".$row_addons["tekst"]."</div>";
}else{
echo "<a href='addons.php?id=".$row_addons["id"]."&edit=true'>Rediger</a>";
echo nl2br($row_addons["tekst"]);
}
}else{
echo nl2br($row_addons["tekst"]);
}

?>

Kunne man evt. droppe hele den kode jeg har forsøgt mig med, og så prøve at lave noget nyt?
Avatar billede stalle Nybegynder
24. februar 2012 - 02:41 #4
Nu kan det godt være det er mig der er ved og være lidt for rusten, men umiddelbart ser jeg ikke nogen session_start så den må man formode, ligger i den fil du inkluderer?

<?php require_once('Connections/downsgaming.php'); ?>

Noget tyder jo da i hvert fald på, at du har bøvl med håndteringen af din session, som de andre også er inde på.
Avatar billede KHHP Juniormester
24. februar 2012 - 09:09 #5
Den er ikke i min include fil.
Jeg har prøvet at tilføje session_start(); i begyndelsen af min fil. Hvis jeg placerer den mellem det første sæt <?php og ?> sker der intet når jeg er logget ind.
Placerer jeg den derimod i sæt nummer to, så får jeg denne fejl i toppen af min side:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /Applications/XAMPP/xamppfiles/htdocs/downsgaming/addons.php:5) in /Applications/XAMPP/xamppfiles/htdocs/downsgaming/addons.php on line 6

Der kommer stadig heller ingen måde at redigere mit indhold på.
Avatar billede danco Nybegynder
24. februar 2012 - 12:44 #6
session_start() skal ALTID placeres på allerførste linje i dit dokument.

Jeg ville nok vælge at lave en opbygning ala det her, uden at jeg har sat meget meget ind i din struktur:

if(isset($_GET['edit']) && isset($_SESSION['webmaster']) {
  echo "<div class='rediger'>".$row_addons["tekst"]."</div>";
}
else if(!isset($_GET['edit']) && isset($_SESSION['webmaster']) {
  echo "<a href='addons.php?id=".$row_addons["id"]."&edit=true'>Rediger</a>";
echo nl2br($row_addons["tekst"]);
} else {
  echo nl2br($row_addons["tekst"]);
}
Avatar billede KHHP Juniormester
27. februar 2012 - 11:46 #7
#6 Jeg har læst dit forslag, men har en større skole-opgave i det næste stykke tid, så derfor kan jeg ikke sige helt præcist hvornår jeg vender tilbage.
Avatar billede KHHP Juniormester
28. februar 2012 - 19:37 #8
Havde lige 5 minutter til at kigge på koden i #6 og efter at have indsat den i min editor får jeg to fejl i koden.
Fejl 1:
}

Fejl 2:
echo nl2br($row_addons["tekst"]);}

I min browser får jeg så en fejl på denne kode:
if(isset($_GET['edit']) && isset($_SESSION['webmaster']) {

Har husket at placere session_start(); i første linje af min fil.
Fejlen er:
Parse error: syntax error, unexpected '{' in /Applications/XAMPP/xamppfiles/htdocs/downsgaming/addons.php on line 123
Avatar billede KHHP Juniormester
09. marts 2012 - 08:08 #9
Har prøvet lidt flere gange med koden fra #6 og kan stadig ikke få det til at virke.
Jeg tror jeg vil lave en lidt mere simpel løsning, hvor jeg får linket/knappen "Rediger" frem, og derefter bliver jeg sendt til en side hvor jeg kan redigere mit indhold.
Kunne jeg få lidt hjælp til at lave den noget nemmere løsning?
Avatar billede KHHP Juniormester
29. marts 2012 - 10:52 #10
Har selv løst det.
Lavede denne kode(er taget fra min nyhedsside, men er anvendt overalt på sitet):
<?php
<?php
include 'inc/connect.php';
$data = mysql_query("SELECT * FROM news" ) or die(mysql_error());

while ($info = mysql_fetch_array($data))
  {

echo $info['dato'];
echo " " . $info['titel']. "<br/>";
  }
if(isset($_SESSION['loggedin'])) {
    echo '<a href="admin/nyheder.php" class="content2">Rediger nyheder</a>';
}
else {
    echo ' <br/>';
}
?>
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