Avatar billede martinheick Nybegynder
19. januar 2003 - 11:00 Der er 18 kommentarer

unset($_SESSION['variable']); "unsetter";??????

Jeg har et problem, som er ved at drive mig til vanvid....

Jeg kan ikke få unset$_SESSION['variable'] til at unsette. Jeg kører, PHP 4.2.3.

Please, hvis der er nogle der har et bud på hvad der kan være galt vil jeg være meget taknemlig, har brugt timer på det nu. (Jeg vil helst køre med "register_globals=off", da jeg har læst, at der er mere sikkert).
Avatar billede agg-zeus Nybegynder
19. januar 2003 - 11:02 #1
Hvis det er alle session variablerne der skal unsettes kan du bare skrive:

session_destroy();
Avatar billede agg-zeus Nybegynder
19. januar 2003 - 11:03 #2
http://www.php.net/manual/en/ref.session.php

Her er et udpluk derfra:

<?php
session_start();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
unset($_SESSION['count']);
?>
Avatar billede martinheick Nybegynder
19. januar 2003 - 11:04 #3
Har bl.a. lavet denne test.
----------- side 1
<?
  session_start();
    print session_encode()."<br>"; 
    session_register("sess_var");
  $sess_var = "Hello world!";
    $_SESSION['test']="test";
  echo "The content of \$sess_var is $sess_var<br>";
  echo "The content of \$_SESSION ".$_SESSION['test']."<br>";
?>
<a href = "page2.php">Next page</a>

---------- side 2
<?
  session_start();
    print session_encode()."<br>";
  echo "The content of \$sess_var is $sess_var<br>";
  echo "The content of \$_SESSION ".$_SESSION['test']."<br>";

  session_unregister("sess_var");
  unset($_SESSION['test']);

?>
<a href = "page3.php">Next page</a>
--------- side 3
<?
  session_start();
    print session_encode()."<br>";
  echo "The content of \$sess_var is $sess_var<br>";
  echo "The content of \$_session ".$_SESSION['test']."<br>";
    session_destroy();
?>
Avatar billede martinheick Nybegynder
19. januar 2003 - 11:07 #4
Det er kun den ene variabl jeg vil slette. Den 3 sides test, som jeg har forsøgt at lave for det ikke til at køre, og jeg har kigget på php-manualen ca. 37 gange for at hitte ud af, hvad der er galt...
Avatar billede agg-zeus Nybegynder
19. januar 2003 - 11:08 #5
hvis du ikke kan unsette den er det så ikke ok hvis du barer sætter den til '', altså:

$_SESSION['test'] = '';

`?
Avatar billede martinheick Nybegynder
19. januar 2003 - 11:15 #6
Måske - men jeg tester på den med

if(!isset($_SESSION['variable'])), men den jeg jeg evt. ændre og prøve at lave det hele anderledes, men der må jo være en grundt til at det ikke virker .... :-) (hvilket er pisseirriterende, når man ikke kan finde ud af, hvorfor :-)
Avatar billede sukos Juniormester
19. januar 2003 - 13:52 #7
hmm, du mixer to måder at sætte sessions på:

session_register("sess_var");
  $sess_var = "Hello world!";
    $_SESSION['test']="test";

For versioner fra 4.1.0 anbefales det at bruge:

$_SESSION['test'] = "test";

Men prøv med dette:

<?php
session_start();
$_SESSION['test'] = "test";

if(!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
}else{
$_SESSION['count']++;
}

echo $_SESSION['test'] ." og antal= ". $_SESSION['count'];

if($_SESSION['count'] >= 3) {
unset($_SESSION['count']);
}
?>
Avatar billede sukos Juniormester
19. januar 2003 - 13:54 #8
og for at slette ALLE session, når du bruger $_SESSION

$_SESSION = array();
session_destroy();
Avatar billede martinheick Nybegynder
19. januar 2003 - 15:16 #9
Hej sukos

Har prøvet at køre din løkke igennem, som jo skulle unsætte count ved 3, men det sker ikke. Den fortsætter videre, hver gang jeg reloader. Nu er jeg oppe på count=17.

Er det min PHP, som ikke kører???

Jeg ved jeg blander to måder at lave session variable, men det var blot for at se om global fungerer, og det gør den.

Mit problem er stadig, at jeg ikke kan unsette en session variable oprettet ved $_SESSION['var']="var";
Avatar billede sukos Juniormester
20. januar 2003 - 12:22 #10
hæhæ, lyder godt nok lidt "hen i vejret"!
Er det din egen server?
Avatar billede martinheick Nybegynder
20. januar 2003 - 12:35 #11
Hvor det skumle grin....... :-)
Yep, det er min eget server ..... Er jeg et kvaj????
Avatar billede martinheick Nybegynder
20. januar 2003 - 12:35 #12
dvs. jeg kører den på egen computer som localhost
Avatar billede sukos Juniormester
20. januar 2003 - 12:38 #13
Hvad står der i php.ini om sessions?
Har du ændret noget eller er det "standard"

Og næh, du er ikke et kvaj!

Hvad med evt. at opgradere til nyeste version?
Avatar billede martinheick Nybegynder
20. januar 2003 - 12:49 #14
Directive
Local Value
Master Value

session.auto_start
Off
Off

session.cache_expire
180
180

session.cache_limiter
nocache
nocache

session.cookie_domain
no value
no value

session.cookie_lifetime
0
0

session.cookie_path
/
/

session.cookie_secure
Off
Off

session.entropy_file
no value
no value

session.entropy_length
0
0

session.gc_maxlifetime
1440
1440

session.gc_probability
1
1

session.name
PHPSESSID
PHPSESSID

session.referer_check
no value
no value

session.save_handler
files
files

session.save_path
C:/phpdev\php\temp
C:/phpdev\php\temp

session.serialize_handler
php
php

session.use_cookies
On
On

session.use_trans_sid
1
1
Avatar billede sukos Juniormester
20. januar 2003 - 12:58 #15
Prøv at ændre:

session.save_path
C:/phpdev\php\temp
C:/phpdev\php\temp

til

session.save_path
C:/phpdev/php/temp
C:/phpdev/php/temp


og vær SIKKER på at dir'et findes, c:/phpdev/php/temp
Avatar billede sukos Juniormester
20. januar 2003 - 13:01 #16
Og selvf. genstarte serveren!
Avatar billede sukos Juniormester
20. januar 2003 - 13:02 #17
forresten! :O)
Avatar billede martinheick Nybegynder
21. januar 2003 - 12:00 #18
Har prøvet at rette den men det hjælper sku' heller ikke. Har lavet en work-around hvor jeg blot nulstiller og tester på værdien af mine sessionvariable. Ved lejlighed må jeg så reinstallere. Eller tak for hælpen lukker emnet nu.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester