Session....commandes...et moi au milieu perdue dans tout ça
Posté : 10 avr. 2006, 15:57
Ma requête est simple... AU SECOURS =)
Je voudrais comprendre avant d'envisager de reprendre le code de la version précédente pour les commandes en lignes de produits... sauf que même en mangeant des tutos y'a toujours des trucs qui m'échappent (à vrai dire c'est la toute première fois que j'utilise réellement des session et un système de panier pour les commandes pour créer un site, donc à vrai dire je suis un peu perdue)
Je vous met deja ce dont je n'ai trouvé aucune explication HTTP_X_FORWARDED_FOR
HTTP_CLIENT_IP
Alors voila un debut de code, j'ai mis en commentaire ce que je pense avoir compris, j'aimerais que vous me disiez si c'est correcte et que vous complétiez surtout =)
Voili voilou, si ça ne vous embète pas de répondre à d'autres intérrogations sur cette partie de commande, je collerais une autre partie de code sur lequel j'ai quelques soucis de compréhension.
Je vous remerci déja d'avoir pris le temps de lire mon bout de code
Je voudrais comprendre avant d'envisager de reprendre le code de la version précédente pour les commandes en lignes de produits... sauf que même en mangeant des tutos y'a toujours des trucs qui m'échappent (à vrai dire c'est la toute première fois que j'utilise réellement des session et un système de panier pour les commandes pour créer un site, donc à vrai dire je suis un peu perdue)
Je vous met deja ce dont je n'ai trouvé aucune explication HTTP_X_FORWARDED_FOR
HTTP_CLIENT_IP
Alors voila un debut de code, j'ai mis en commentaire ce que je pense avoir compris, j'aimerais que vous me disiez si c'est correcte et que vous complétiez surtout =)
<?PHP
session_start(); //demarre la session ça c'est too easy =)
$sid2 = session_id(); // c'est comme le session_name, c'est si la personne n'accepte pas les cookies pour faire passer de toute manière la session par l'url
$base = mysql_connect ("localhost","pif","paf");
mysql_select_db("pouf",$base);
//1 heure par session max sinon suppression des sessions, en plus du fait qu'elle se ferme qd on ferme le naviguateur
$s_date2 = mktime() - 3600;
$majds = mysql_query("DELETE FROM dh_sessions WHERE ($s_date2 > s_date);"); // je comprend pas pourquoi il a fallut créer des tables dans la bdd pour stoker les sessions ? le passer par l'url suffit pas?
function get_ip() {
if($_SERVER) { //SERVER? Var super global oui mais encore? Elle sert à stocker entetes ... utilité?
$ip = $_SERVER['REMOTE_ADDR']; // L'adresse IP du client qui demande la page courante
}
else {
//getenv() retourne la valeur de la variable d'environnement varname, ou FALSE en cas d'erreur.
if(getenv('HTTP_X_FORWARDED_FOR')) //PROUT :)
$ip = getenv('HTTP_X_FORWARDED_FOR');
elseif(getenv('HTTP_CLIENT_IP'))
$ip = getenv('HTTP_CLIENT_IP');
else
$ip = getenv('REMOTE_ADDR'); // L'adresse IP du client qui demande la page courante
}
return $ip;
}
// on va peut être pas poussé mémé dans les hortis, si vous m'expliquez ce que veux dire ce que je comprend pas en haut, je pense m'en sortir avec ce qu'il y a en dessous :)
$c_ip = get_ip();
$tdate = mktime();
$iuse = mysql_query ("SELECT * FROM dh_sessions WHERE s_id = '$sid2';");
$c_user = mysql_fetch_array($iuse, MYSQL_ASSOC);
if ($c_user[s_user]){
if ($c_ip === $c_user[s_ip]){
$uuser = mysql_query ("SELECT * FROM dh_users WHERE id = '$c_user[s_user]';");
$sid = mysql_fetch_array($uuser, MYSQL_ASSOC);
$upd = mysql_query ("UPDATE `dh_sessions` SET `s_date` = '$tdate' WHERE s_id = '$sid2';");
$status = "connect";
}else{
$status = "noconnect";
}
}else{
$status = "noconnect";
}
?>
Voili voilou, si ça ne vous embète pas de répondre à d'autres intérrogations sur cette partie de commande, je collerais une autre partie de code sur lequel j'ai quelques soucis de compréhension.
Je vous remerci déja d'avoir pris le temps de lire mon bout de code