webForumDet fria alternativet

Session-problem med PHP 5.6

3 svar · 1 390 visningar · startad av filipbh

filipbhMedlem sedan juli 2002402 inlägg
#1

Hallå... Webbhotellet har uppdaterat till php 5.6 och nu fungerar inte sidorna där jag använder mig av session. Måste jag koda annorlunda?

För att inte mina besök skall registreras brukar jag använda mig av en extrarad i adressfältet. Om den finns där skall inget besök registreras.

session_start();
require("db.php");
date_default_timezone_set('Europe/Stockholm');
$ipadress=$_SERVER['REMOTE_ADDR'];

if($_GET['registreraintebesök']!='1'){

if(!$_SESSION['räknabesök']=='1'){
 session_register("räknabesök");
 $_SESSION['räknabesök'] = "1";

Nu får jag felmeddelandet Fatal error: Call to undefined function session_register() in fil.php on line 10
och rad 10 är just session_register.

metalboyMedlem sedan jan. 2005870 inlägg
#2

session_register blev depricated i PHP 5.3 och togs bort i PHP 5.4.
Du kan skippa den raden helt och hållet, den har ingen funktion. Det räcker med $_SESSION['räknabesök'] = 1;

Varför lagrar du heltalsvärden som strängar?

filipbhMedlem sedan juli 2002402 inlägg
#3

Okej, jag hittade session_name men det är ingen motsvarighet alltså.

Bra fråga. Det blev så en gång och sen dess har det rullat på. Nu var det längesen jag höll på med detta så jag har inget alternativ heller. Tips?

metalboyMedlem sedan jan. 2005870 inlägg
#4

session_name() är inte någon motsvarighet, nej.

Jag tipsar om att lagra tal som tal och strängar som strängar. Det gäller både i PHP och om du använder någon databas. I både PHP och MySQL anges tal utan omgivande apostrofer eller citattecken.

// Heltal
$var = 10; // Heltal
$var = '10'; // Sträng
$var = "10"; // Sträng

// Flyttal
$var = 10.1; // Flyttal
$var = '10.1'; // Sträng
$var = "10.1"; // Sträng

Om du lagrar tal som strängar så tvingar du PHP till att göra typomvandlingar varje gång du vill använda värdet i en beräkning.

$var = "10"; // Strängen "10" lagras i variabeln
$var += 5; // Här tvingas PHP omvandla strängen "10" till heltalet 10 innan beräkningen kan utföras
Genererad på 369 ms · cache AV · v20260730165559-full.f96bc7eb