PHP/MySQL-problem

Tags:    php

Jeg er ved at lave et brugersystem, og der skal der så være en menu, som hedder "Skriv nyhed", hvis man er logget ind med adminstatus. Tabel hedder 'users' og ens level/status ligger i cellen 'status' i tabellen 'users'.
Mit problem er, at den ikke vil lave et echo på "Skriv nyhed", hvis man er logget og har statussen "Administrator".
Det eneste jeg får frem er det, som skal komme ved alle brugere.

I kan prøve at se i koden:

Fold kodeboks ind/udKode 




8 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
administrator i din if sætning skal have " " udenom. Dvs. if($status == "Administrator")



$status = $row[status];<--du har ingen variable der heder $row . Jeg kan ivertfald ikke se den.
$row = $row[uid];<--forudsat at du egentlig har en variable der heder $row så ændrer du den der til at være det samme som uid indekset i sig selv. så medmindre at uid indekset er et array i sig selv kan du ikke forvente efterfølgende at kunne indeksere i $row




Kan et mellemrum mellem if og ($_SESSION....) virkelig godt skabe så stort et problem, at den ikke vil udføre det?

Det virker i øvrigt nu, efter jeg fjernede det mellemrum - tak skal du have!


Kan det godt ja....
Sådan er det med PHP, man skal altid tjekke tripel for at være sikker...



Jeg har ikke codet i mere en to år og kan stadig huske code junglen der forlægger når man er ny i php. Her er et forslag til din login_menu().

Først er der et par ting i din code jeg ikke forstår.

Hvorfor henter du:
$action = $_GET['action'];
$result = mysql_query("SELECT * FROM users WHERE id = '".$uid."'");
$row = mysql_fetch_assoc($result);

i login_menu()har de ingen funktion.

Jeg har skrevet den lidt om..
Fold kodeboks ind/udKode 


Hvis den stadig ikke virker, så prøv at indsæt

echo "".$uid."<Br>"; // Browser visning af user id
echo "".$ustatus."<Br>"; // Browser visning af user status

efter du her kaldt dem fra session. Så kan du se om de overhovdet er skrevet.

Held og lykke!



Indlæg senest redigeret d. 18.04.2006 18:16 af Bruger #7500
Det har jeg prøvet, og det ser ikke ud til at virke.



Nu har jeg så forsøgt mig ad med en lidt anden metode, som så heller ikke fungerer helt. I den kode her er hele function login() med, så I kan se hvordan det er bygget op.

Selve function login()
Fold kodeboks ind/udKode 


function login_menu()
Fold kodeboks ind/udKode 




Du har i fukntioene login() lavet en session med status i...

Hvorfor så ikke bare bruge den i din login_menu?

if($_SESSION[status] == "Administrator") {
echo "<a href='news.php?action=new' width='140' height='20' border='0' bg-color='#939386'>Skriv nyhed</a>
}



Kan et mellemrum mellem if og ($_SESSION....) virkelig godt skabe så stort et problem, at den ikke vil udføre det?

Det virker i øvrigt nu, efter jeg fjernede det mellemrum - tak skal du have!



Indlæg senest redigeret d. 16.03.2006 21:01 af Bruger #8932
t