webForumDet fria alternativet

Sessions i IIS

4 svar · 274 visningar · startad av perp

perpMedlem sedan apr. 200331 inlägg
#1

Har stött på ytterligare en skum sak i min IIS

När jag för första gången går in på sidan, sätter servern i gång och skapar mängder (av likadan filer (Sessions) på servern, utan att kunna öppna sidan. Verkar vara någon typ av "lop". Använder man en annan "start" sida i gästboken så funkar det, likaså om jag lägger det på ett webbhotell med Linux

Handlar det om inställningar i ini.php, eller är det något skumt i skriptet

<?php
require "config.php";
include "pagfunc.php";

if(ini_get("register_globals")){
	if(!session_is_registered("antalmeddelanden")){ // För att dölja PHPSESSID från url.
		session_register("antalmeddelanden");
		$antalmeddelanden = $start_antalmeddelanden;
		header("Location: gastbok.php");
		exit;
	}
	session_register("antalmeddelanden");
	$inlaggPerSida = $antalmeddelanden;
} else {
	if(isset($HTTP_SESSION_VARS['antalmeddelanden'])) {
		$inlaggPerSida = $HTTP_SESSION_VARS['antalmeddelanden'];
	} else {
		$inlaggPerSida = $start_antalmeddelanden;
		$HTTP_SESSION_VARS['antalmeddelanden']=$start_antalmeddelanden;
		header("Location: gastbok.php");
		exit;
	}
}

if(isset($HTTP_SESSION_VARS['adminuser'])) {
	$admin=1;
} else unset($admin);

if(isset($HTTP_GET_VARS['sida'])){
	$page=$HTTP_GET_VARS['sida'];
} else  $page=1;

?>

<klipp>

MatteMedlem sedan aug. 20002 975 inlägg
#2

Kör du en PHP-version som är 4.1.0, 4.1.1, 4.2.0 eller senare så kan du istället göra så här:

<?php
require "config.php";
include "pagfunc.php";

if (!isset($_SESSION['antalmeddelanden'])) {
    $_SESSION['antalmeddelanden'] = $start_antalmeddelanden;
    $inlaggPerSida = $antalmeddelanden;
} else {
    $inlaggPerSida = $_SESSION['antalmeddelanden']
}

if(isset($HTTP_SESSION_VARS['adminuser'])) {
    $admin=1;
} else unset($admin);

if(isset($HTTP_GET_VARS['sida'])){
    $page=$HTTP_GET_VARS['sida'];
} else  $page=1;

?>

Kolla så du har session_start() överst i config.php.

perpMedlem sedan apr. 200331 inlägg
#3

Jo då session start finns, och kanske din ide på ändring vore ok, om den inte förorsakade att jag fick "Warning: Division by zero in " på raden med

$pageNumbers = ceil(sizeof($innehall)/$inlaggPerSida);

Tills man tryckt på ladda om sidan

(Ja ja kan inte skriptet då ja själv inte skrivet det, men man lär sig ju även på att tota i andras. Och min tanke var att flytta ett fungerande sida, till en egen server)

MatteMedlem sedan aug. 20002 975 inlägg
#4

Tankegroda av mig. Så här skulle det vara:

<?php
require "config.php";
include "pagfunc.php";

if (!isset($_SESSION['antalmeddelanden'])) {
    $_SESSION['antalmeddelanden'] = $start_antalmeddelanden;
    $inlaggPerSida = $start_antalmeddelanden;
} else {
    $inlaggPerSida = $_SESSION['antalmeddelanden']
}

if(isset($HTTP_SESSION_VARS['adminuser'])) {
    $admin=1;
} else unset($admin);

if(isset($HTTP_GET_VARS['sida'])){
    $page=$HTTP_GET_VARS['sida'];
} else  $page=1;

?>
perpMedlem sedan apr. 200331 inlägg
#5

Tack Matte,

Verkar fungera ypperligt

129 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)