Opdatering af indhold virker ikke

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
KHIT
Entusiast
Entusiast
Indlæg:28
Tilmeldt:16. sep 2011, 18:34
Opdatering af indhold virker ikke

Indlæg af KHIT » 4. jun 2012, 12:45

Hej
Jeg har nu brugt det script, til opdatering af indhold i MySQL, som blev lavet i MySQL videoerne her på siden, og det har også virket fint på alle mine sider, men nu vil det ikke virke på den seneste side.

Kode: Vælg alt

<?php
session_start();
//Tjekker brugerrettigheder
if(isset($_SESSION['username']) && $_SESSION['gruppe'] == "admin" ? true : header("Location: ../index.php?msg=ACCESS_DENIED"));

include '../includes/connect.php';
$data = mysql_query("SELECT * FROM content" ) or die(mysql_error());

//Henter indhold fra formular
 $url = mysql_real_escape_string($_POST['heading']);
 $tekst = mysql_real_escape_string($_POST['tekst']);
 $p = mysql_real_escape_string($_POST['p']);
 
// Indsæt i tabel

   if (isset($_POST['submit'])) {
       $tabeldata = "UPDATE content SET titel = '$url',tekst = '$tekst' WHERE p = '$p'";
       $resultat = mysql_query($tabeldata);
if($resultat) {
        $_SESSION['done'] = 'Dine ændringer er blevet gemt.';
	header ('Location: ../index.php?msg=SAVE_SUCCES');
   }
 else {
        $_SESSION['fail'] = 'Der er opstået en fejl og dine ændringer er ikke blevet gemt...';
	header ('Location: ../index.php?msg=SAVE_FAILED');
 }
 }
else {
        $_SESSION['fail'] = 'Du har ikke adgang til siden og er blevet returneret til forsiden';
	header ('Location: ../index.php?msg=ACCESS_DENIED');

}
mysql_close();
?>
(p er i stedet for id)
Scriptet er jo som det skal være, men den gemmer ikke min ændringer. Hvad er der galt?
Senest rettet af KHIT 5. jun 2012, 13:34, rettet i alt 1 gang.

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: Opdatering af indhold virker ikke

Indlæg af ThomasI » 4. jun 2012, 14:38

Får du en fejl af nogen slags?

Alternativt hvilke af dine if else statements uskriver den?

KHIT
Entusiast
Entusiast
Indlæg:28
Tilmeldt:16. sep 2011, 18:34

Re: Opdatering af indhold virker ikke

Indlæg af KHIT » 4. jun 2012, 15:28

Jeg får ingen SQL-fejl eller noget i den stil.
Når jeg prøver at ændre SQL-kommandoen og så forsøger at ændre og gemme, så får jeg denne:

Kode: Vælg alt

else {
        $_SESSION['fail'] = 'Der er opstået en fejl og dine ændringer er ikke blevet gemt...';
   header ('Location: ../index.php?msg=SAVE_FAILED');
}
Lader jeg koden stå som den gør i mit indlæg, så får jeg denne:

Kode: Vælg alt

if($resultat) {
        $_SESSION['done'] = 'Dine ændringer er blevet gemt.';
   header ('Location: ../index.php?msg=SAVE_SUCCES');
   }
Og så skulle mine ændringer være gemt, men det er de ikke.

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: Opdatering af indhold virker ikke

Indlæg af ThomasI » 5. jun 2012, 11:56

Som du selv siger så ser dit script jo fint ud... Så er lidt svært at se herfra hvad problemet så kan være...

Måske går det galt i forhold til din db...store bogstaver hvor der skulle være små ? - id´er som ikke eksistere eller noget i den stil?

KHIT
Entusiast
Entusiast
Indlæg:28
Tilmeldt:16. sep 2011, 18:34

Re: Opdatering af indhold virker ikke

Indlæg af KHIT » 5. jun 2012, 13:44

Jeg har nu forsøgt at uploade siden til min testing-server og vi er enige om at når der står dette:
http://192.168.0.101/ejeleje/content.php?p=2
i adresselinjen, så henter den det indhold der hører til p med værdien 2
Trykker jeg så rediger, så står dette:
http://192.168.0.101/ejeleje/admin/rediger.php?p=2
Det er så vidt også rigtigt, men når jeg så ændrer og gemmer, så går det galt.
Jeg har på mange andre sider også brugt samme script og kiggede lige i et af dem og de eneste forskel er at jeg har tilføjet opgaven at den skal lave en session inden den skifter side. Men det er jo først efter at have indsat i db.

Kode: Vælg alt

<?php
include '../inc/connect.php';
$data = mysql_query("SELECT * FROM content" ) or die(mysql_error());

//Henter indhold fra formular
 $titel = mysql_real_escape_string($_POST['titel']);
 $overskrift = mysql_real_escape_string($_POST['heading']);
 $tekst = mysql_real_escape_string($_POST['tekst']);
 $id = mysql_real_escape_string($_POST['id']);
 
// Indsæt i tabel

   if (isset($_POST['submit'])) {
       $tabeldata = "UPDATE content SET titel = '$titel',heading = '$overskrift',tekst = '$tekst' WHERE id = '$id'";
       $resultat = mysql_query($tabeldata);
if($resultat) {
	header ('Location: ../index.php?msg=SUCCES');
   }
 else {
     header ('Location: ../index.php?msg=FAILED');
 }
 }
else {
    header('Location: ../index.php?msg=ACCESS_DENIED');

}
mysql_close();
?>
På den anden side er der ingen problemer.
Det kan jo ikke være sessions der er problemet.
På et tredje site har jeg også brugt den øverste linje:

Kode: Vælg alt

//Tjekker brugerrettigheder
if(isset($_SESSION['username']) && $_SESSION['gruppe'] == "admin" ? true : header("Location: ../index.php?msg=ACCESS_DENIED"));
Og her kan jeg også opdatere uden problemer.

Sledmore
Entusiast
Entusiast
Indlæg:26
Tilmeldt:1. maj 2012, 19:43

Re: Opdatering af indhold virker ikke

Indlæg af Sledmore » 5. jun 2012, 20:45

Som Thomas siger kan det være noget du må have lavet forkert i din sql eller en id som ikke skulle være der.

Prøv tag et look på dit script og se i din sql.

Besvar