Avatar billede agertz Nybegynder
08. december 2007 - 00:31 Der er 5 kommentarer og
1 løsning

Mit redigeringssystem virker ikke

Jeg har efterhånden haft en del problemer med dette, men jeg tror jeg er på rette vej nu.
Jeg har en "retnyhed.php" som viser alle skrevne nyheder man kan rette, og derefter kommer man til "opdaternyhed.php" hvor man kan rette nyheden.
Men "opdaternyhed.php" er blank, og ved ikke hvad jeg skal gøre. Kan i hjæle? - TAK

retnyhed.php:

<?
include "../connect.php";

  $query = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$brugernavn' AND kodeord = '$kodeord' LIMIT 1");



    if (mysql_num_rows($query) == 1) {
        $row = mysql_fetch_assoc($query);
    $_SESSION['level'] = $row['level'];
}

if($_SESSION['level'] >= 5)
{

if ($_POST['start'] == "") $start = 0;
else $start = $_POST['start'];
$antal = 25;
$ressssss = mysql_query("SELECT * FROM nyheder");
$antal1 = mysql_num_rows($ressssss);
$res = mysql_query("SELECT * FROM nyheder order by id desc limit $start,$antal");
while ($row = mysql_fetch_array($res)){

?>
<a href="opdaternyhed.php?id=<?=$row[id]?>" class="overskrift"><?=$row[overskrift]?></a><br>

<?
}
}
?>

opdaternyhed.php:

<?
session_start();
include "../connect.php";

$query = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$brugernavn' AND kodeord = '$kodeord' LIMIT 1");



    if (mysql_num_rows($query) == 1) {
        $row = mysql_fetch_assoc($query);
    $_SESSION['level'] = $row['level'];
}

if($_SESSION['level'] >= 5)
{

$id = mysql_real_escape_string($_GET["id"]);
$res = mysql_query("SELECT * FROM nyheder WHERE id = '$id'");
$row = mysql_fetch_array($res);
while ($data = mysql_fetch_array($res))
{
if ($_GET[opdater] == "ok") {

$gem = $_POST["overskrift"];
$gem1 = $_POST["nyhed"];
$gem2 = $_POST["billede"];
$gem3 = $_POST["intro"];

$update = mysql_query("UPDATE nyheder SET overskrift = '$gem', nyhed = '$gem1', billede = '$gem2', intro = '$gem3'");
echo "Nyheden er opdateret!";

} else {
?>
<form method="POST" action="?opdater=ok">
Overskrift:<br>
<textarea name="overskrift"  cols="36" rows="1"><? echo "$data[overskrift]"; ?></textarea><br>
Intro:<br>
<textarea name="intro"  cols="36" rows="6"><? echo "$data[intro]"; ?></textarea><br>
Nyhed:<br>
<textarea name="nyhed"  cols="36" rows="10"><? echo "$data[nyhed]"; ?></textarea><br>
Billede:<br>
<textarea name="billede"  cols="36" rows="1"><? echo "$data[billede]"; ?></textarea>
<input type="submit" value="Opdater!">

<?
}
}
}
?>
Avatar billede onkel_satan Nybegynder
08. december 2007 - 02:36 #1
Første mulighed kan vøre en syntakst fejl og hvis php er sat op til ikke at vise fejlmeddelser, ja så ender du med blank skærm. Ud fra det du har posted ser det fint ud saa tror ikke det er det, men der er en mulighed.

Det må være noget med dine variabler som ikke er hvad du forventer. Der er ikke andet at gøre end at debugge lidt. f.eks
echo "DEBUG: Start";
if($_SESSION['level'] >= 5){
    echo "DEBUG: session_level OK";
    $id = mysql_real_escape_string($_GET["id"]);
    $res = mysql_query("SELECT * FROM nyheder WHERE id = '$id'");
    $row = mysql_fetch_array($res);
    while ($data = mysql_fetch_array($res)){
        echo "DEBUG: Nyheds query ikke tom";
        if ($_GET[opdater] == "ok") {

Saa kan du følge med i hvor din kode stopper.
Har du kontrolleret at GET verdierne er korrekte ? Det ville jeg også lige kigge på.
Avatar billede fant0mas Nybegynder
08. december 2007 - 09:47 #2
Hvorfor lytter du ikke til det der tidligere er blevet skrevet?

$update = mysql_query("UPDATE nyheder SET overskrift = '$gem', nyhed = '$gem1', billede = '$gem2', intro = '$gem3' WHERE id='$id'");
echo "Nyheden er opdateret!";

Du havde ikke sat noget id. Der er der nu

<form method="POST" action="?opdater=ok&amp;id=<?=$data[id]?>">

Der skal sendes er id med din form, enten $_GET som her eller du kan ligge det i et hidden input

Men alt der er jo blevet sagt før.
Avatar billede agertz Nybegynder
09. december 2007 - 11:05 #3
Det virker ikke, retnyhed.php virker fint, men når man så kommer til opdaternyhed.php?id=xx virker det ikke. Så er siden blank, den udskriver INTET.

Det har jo ikke noget at gøre med at den ikke opdatere korrekt, for man kan ikke engang trykke opdater
Avatar billede fant0mas Nybegynder
09. december 2007 - 13:17 #4
Jamen, hvis ikke
if($_SESSION['level'] >= 5)
{
Så vises der ingenting!
Avatar billede fant0mas Nybegynder
09. december 2007 - 13:19 #5
Hvis du til sidst laver denne i stedet:
<?
        }
    }
}else{
    echo 'Dit brugerniveau er ikke højt nok';
}
?>

Så tror jeg der sker noget..
Avatar billede agertz Nybegynder
10. december 2007 - 21:05 #6
Den er desværre stadigvæk blank :/
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