SESSION vill inte fungera!, säkert enkelt fel.

Permalänk
Medlem

SESSION vill inte fungera!, säkert enkelt fel.

Hej, jag håller på med ett litet projekt

Jag har denna koden.

<?php session_start(); ?>

<?php if(isset($_SESSION['username'])){ $kund = $_SESSION['username']; $kassan = "</td> <td width='100' align='center'><a href='checkout.php'>KASSAN</a></td> <td width='100' align='center'><a href='logout.php'>Logga ut</a></td> <td width='190' align='center'><font size='1'>Kund ID: $kund</font></td>";} else $kund = $_SESSION['username']; $kassan = "</td> <td width='100' align='center'><a href='user.php?id=1' class='lytebox' data-title='Registrera dig enkelt' data-lyte-options='width:330 height:450'>Logga asdasdin</a></td> <td width='100' align='center'></td> <td width='190' align='center'></td>"; ?>

Problemet är att även om SESSION är "downup" så visas "else"

echo $_SESSION['username']

skriver ut "downup" så jag förstår inte varför den inte vill köra välkommen delen.

Vad är det för fel?

Permalänk

Lägg till:

session_start();

överst för att starta sessionen.

Permalänk
Medlem
Skrivet av _SquacheN_:

Lägg till:

session_start();

överst för att starta sessionen.

Jo, den är högt upp, men skiftar jag på koderna så syns ju koden "om session" är igång. Så jag fattar inte varför den bara vill visa "else" session är ju igång med användarnamnet.

Permalänk

Okej, var ett tag sedan jag jobbade med php men känner igen felet. Har du testat med:

!empty()

istället för isset() ?

Permalänk
Medlem
Skrivet av _SquacheN_:

Okej, var ett tag sedan jag jobbade med php men känner igen felet. Har du testat med:

!empty()

istället för isset() ?

Denna koden fungerade, efter en massa pusslande men den över borde fungera!..

<?php session_start(); if(isset($_SESSION['username'])){ $kund = $_SESSION['username']; $kassan = "</td> <td width='100' align='center'><a href='checkout.php'>KASSAN</a></td> <td width='100' align='center'><a href='logout.php'>Logga ut</a></td> <td width='190' align='center'><font size='1'>Kund ID: $kund</font></td>"; } if(!isset($_SESSION['username'])){ $kund = 'kundvagn'; $kassan = "</td> <td width='100' align='center'><a href='user.php?id=1' class='lytebox' data-title='Registrera dig enkelt' data-lyte-options='width:330 height:450'>Logga in</a></td> <td width='100' align='center'></td> <td width='190' align='center'></td>"; } ?>

Tack för att du svarade!

Permalänk

Har jag väckt en tråd från 90-talet eller använder du dig av en tabell för något som inte ser ut som tabelldata?
Om du, av någon mycket oklar, anledning måste använda dig av en tabell så kan du åtminstone låta bli att använda dig av attributet "width" och använda css istället.
Varför tilldelar du en php variabel all denna html-markup?

Permalänk
Medlem
Skrivet av Yxskaftet:

Har jag väckt en tråd från 90-talet eller använder du dig av en tabell för något som inte ser ut som tabelldata?
Om du, av någon mycket oklar, anledning måste använda dig av en tabell så kan du åtminstone låta bli att använda dig av attributet "width" och använda css istället.
Varför tilldelar du en php variabel all denna html-markup?

Förlåt, jag missbrukar TD lite dåligt jag vet. Men jag har typ noll kunskap i CSS, jag vet standard saker som positioner av div'er etc men nu var inte denna tråden om det ;)....

Jag "övar" och då blir det så. Jag ska lära mig css någondag! Men nu tycker jag php är roligt

Permalänk
Medlem

Tilldelar du ett värde till $_SESSION['username'] ?
T.ex
$_SESSION['username'] = 1;

eller i ditt fall låter det mer som att det skulle vara.
$_SESSION['username'] = $userVariable; //användarens användarnamn

"isset" kollar om variabeln har blivit tilldelad ett värde, om den har det så körs koden.

För att testa detta, skriv $_SESSION['username'] = 1; precis innan if-satsen.

EDIT: jag ser även att du inte stänger in "else" satsen

else {
//Else koden här
}

Visa signatur

Canon 70D | 2x Dell Ultrasharp 24" | Ryzen 3700X | 32B | GTX 1080Ti

Permalänk
Medlem

Du har inga {} runt din else-sats i första exemplet.