phpsessid opslaan in cookie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fjodor Klondyke

Fjodor Klondyke

23/08/2007 11:37:00
Quote Anchor link
hallo,

ik wil iets heel simpels wat toch maar niet wil lukken: er wordt een session gemaakt en dan wil ik direct de phpsessid opslaan in een cookie:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
session_start();
setcookie("phpsessid" , $_COOKIE['PHPSESSID']);

?>



De phpsessid wordt pas in de cookie gezet als de pagina herladen wordt.
Is dat gebruikelijk? Eigenlijk wil ik um direct gebruiken. (Het is voor een registratie/login).

Bedankt,

Fjodor
 
PHP hulp

PHP hulp

03/01/2025 20:39:42
 
Robert Deiman

Robert Deiman

23/08/2007 11:43:00
Quote Anchor link
Ik snap ook niet wat je nu probeert te doen, je gebruikt setcookie, en wil daarin $_COOKIE['PHPSESSID'] zetten, je wilt iets uit een cookie halen die n og niet bestaat, ik denk dat je een andere variabele moet gebruiken daar, maar moet ff uitzoeken welke.
 
Frank -

Frank -

23/08/2007 11:46:00
Quote Anchor link
Het sessie-id staat normaalgesproken al in een cookie. Waarom zou je dat dan nog een keer willen doen? Wat is het doel?
 
Fjodor Klondyke

Fjodor Klondyke

23/08/2007 11:51:00
Quote Anchor link
function make_cookie($userid){
session_start();

$db_base = new DB_Sql();
$db_base->query("SELECT * from tbluser Where ID='".$userid."'");
$db_base->next_record();

$expire = time() + 1728000;
$cookie_pass = md5($password);
ob_start();
setcookie("user", "");
setcookie('user', $db_base->f('Login'), $expire);
setcookie('userid', $db_base->f('ID'), $expire);
setcookie('PHPSESSID', $_COOKIE["PHPSESSID"], $expire);
setcookie('lastvisit', $db_base->f('user_lastvisit'), $expire);
ob_end_flush();

$this->clear_sessions($this->username, $this->userid);


$sql = "INSERT INTO tblsession SET Sid='".addslashes($_COOKIE["PHPSESSID"])."',
Suid='".$this->userid."',
Username='".$this->username."',
SidTime=".$expire;

$db_base->query($sql);
return TRUE;
}
 
Fjodor Klondyke

Fjodor Klondyke

23/08/2007 11:56:00
Quote Anchor link
Sorry ik drukte op de spatie en toen werd het bericht al geplaatst terwijl het nog niet klaar was.

Ik heb een stukje code meegestuurd waar deze contructie in voorkomt. Dit script moet ik aanpassen.

Hier wordt dus een session gestart en vervolgens wordt de phpsessid opgeslagen in een cookie.

Ik heb geprobeerd om te kijken in $_COOKIE maar vindt daar de gemaakte cookie niet.

Daarom vroeg ik mij af of dit type constructie wel kan:
- session starten
- phpsessid opslaan in een cookie
- cookie uitlezen om naar database te schrijven

Het gaat mij er nu niet om of het nuttig is om het zo te doen, maar of het zo kan.

Bedankt
 
Frank -

Frank -

23/08/2007 11:58:00
Quote Anchor link
Offtopic:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
INSERT INTO tblsession SET etc.
Deze vorm van SQL lijkt nergens op, dit is een mix van een INSERT- en UPDATE-syntax. Hoeveel problemen wil je hebben?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
INSERT INTO
  tabelnaam(
    kolom1,
    kolom2
    kolom3
  )
VALUES(
  23,
  'waarde 2',
  'waarde 3
)
Hou je aan de standaard, die is er niet voor niets.
 
Fjodor Klondyke

Fjodor Klondyke

23/08/2007 12:06:00
Quote Anchor link
Inderdaad, die query is niet correct. En zoals ik al schreef is dit script niet van mij. Ik ga alleen dit script aanpassen.

Waar het mij nu om gaat is of de waarde van $_COOKIE['PHPSESSID'] op deze manier wel in een databae gezet kan worden.

Als ik dit script draai krijg ik alle waarden in de database behalve de waarde van de $_COOKIE['PHPSESSID'].

Daarom vroeg ik mij af of de opzet wel goed is:
- starten session
- setcookie('phpsessid', $_COOKIE['PHPSESSID'])
- waarde van cookie naar database schrijven

Ps: Begrijp mij niet verkeerd, ik waardeer het dat je mij wijst op fouten in de opbouw van de query.
 
Frank -

Frank -

23/08/2007 12:11:00
Quote Anchor link
Quote:
Daarom vroeg ik mij af of dit type constructie wel kan:
- session starten
- phpsessid opslaan in een cookie
- cookie uitlezen om naar database te schrijven
Waarom zou je het cookie willen uitlezen? Je zet er net zelf een waarde in, je kent dus de waarde, waarom zou je dan deze bekende waarde willen gaan uitlezen? Dat is vragen naar de bekende weg!
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Mark L

Mark L

23/08/2007 12:15:00
Quote Anchor link
Nee, dit kan eigenlijk niet, als je bedenkt dat de $_COOKIE aan het begin van je script is gezet. Het kan dus zijn, dat $_COOKIE niet helemaal up-to-date is.

Stel je wilt een COOKIE verwijderen door:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
unset($_COOKIE);
?>

Dan unset je de cookie niet, maar alleen de array.
De COOKIE-list word elke keer opnieuw opgevraagd. Ikzelf heb geen idee hoe je anders aan de SESSID komt, maar misschien kan je een header gebruiken. Dan kan je in een andere pagina achter de SESSID komen..

Bovenstaande is mijn theorie over hoe $_COOKIE werkt. Het kan zijn dat niet alles klopt/aangevuld moet worden

1 Ding is zeker (volgens mij):
$_COOKIE staat niet in verband met de cookies op je computer. $_COOKIE word alleen een keer gevuld aan de hand van de cookies op de computer.

Edit:

Gokje, ik weet niet of deze functie bestaat: session_id
Als die bestaat, heb je daar misschien iets aan!
Gewijzigd op 01/01/1970 01:00:00 door Mark L
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.