Permalänk
Medlem

Problem med sessioner i php

hejsan! Jga har fått i uppgift att hjälpa en polares morsa med en hemsida. Jag var nästan helt klar då jag stötte på ett mycket märkligt problem. Det verkar som att sessionerna i sparas som de ska. Jag har suttit här i över 3 timmar och försökt hitta vad felet kan vara men inget har hjälpt. Det slutade met att jag gjorde en enkel sida med en session som skulle räknas upp och den redan var satt. Men detta fungerade inte heller. Hemsidan är registrerad hos one.com. Koden jag använder är:

<? session_start(); if(isset($_SESSION['bajs'])){ $_SESSION['bajs']= $_SESSION['bajs']++; }else{ $_SESSION['bajs'] =1; } ?> <html> <head> <title> hej </title> </head> <body> <? echo $_SESSION['bajs']; ?> <a href="bajs.php"> öka </a> </body> </html>

Denna är inte för hemsidan gjorde den mest för att testa sessionerna men det vill sig inte. Någon som varit med om detta förut?

Permalänk
Medlem

if(isset($_SESSION['bajs'])){
$_SESSION['bajs']++;
}else{
$_SESSION['bajs'] =1;
}

Den koden funkar för mig (resten är identiskt)

Permalänk
Medlem

Skickade ett klago-mail till one och plössligt fungerar allt. Så ett tips till er som har detta och har one som webbhotell är att skicka ett mail till deras support.

Permalänk
Testpilot

Att variabeln inte ökar beror på att du kodat fel, vill man öka en variabel skriver man som dEnnA har gjort, $var++;
I ditt fall med följande kod:

$_SESSION['bajs']= $_SESSION['bajs']++;

$var++ gör att variabeln först används och sen ökas, först sätts alltså variabeln till sig själv och sen ökas den gamla variabeln med 1. Den gamla variabeln finns sen inte längre på nästa rad så ökningen gör ingenting.

Ett exempel ved två olika variabler som gör det tydligare:

$x = 0; //x är 0 $y = $x++; //y sätts till x (0) och efteråt ökas x med 1 echo $x; //skriver ut 1 echo $y; //skriver ut 0

Att klaga på webhotellet löser inte kodproblem

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]