Variables de sessions

Fermé
virtualsof Messages postés 106 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 - 24 oct. 2008 à 00:02
virtualsof Messages postés 106 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 - 30 oct. 2008 à 11:03
Bonjour,

Je cherche le moyen d'écrire ce qui suit d'une manière plus... vous jugerez :

<?php 
session_start();
//Cette page n'est consultable que par l'admin

include 'config.php';
  // récup des données
  $sql = "SELECT * FROM membre WHERE id = '".$_SESSION['membre']."'";
  $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

	$data = mysql_fetch_assoc($req);

// Ici j'aimerai récupérer TOUS les champs de la table et les déclarer

$_SESSION['prefixe'] = $data['prefixe'];
$_SESSION['nom'] = $data['nom'];
$_SESSION['prenom'] = $data['prenom']; 
$_SESSION['mail'] = $data['mail']; 
$_SESSION['login'] = $data['login'];
$_SESSION['mdp'] = $data['mdp']; 
 // etc...
?>


D'avance merci

14 réponses

0
ton $data étant déjà un tableau :

foreach ($data as $cle=>$valeur) $_SESSION[$cle]=$valeur;

Je me demande pourquoi les gens vont chercher des trucs compliqués alors que c'est si bien décrit dans les docs...
0
pour automatiser ça, voir messages 2 et 5, mais bon...
0
le genre de codeur qui connait la réponse mais qui veux pas la donner tout de suite, alors il met sur la piste maaaaiis nananana.... cherche !
Bien sûr ! Lis la charte du forum. Ce n'est pas un service d'écriture de programme.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Question 1 tu demandes :
// Ici j'aimerai récupérer TOUS les champs de la table et les déclarer

$_SESSION['prefixe'] = $data['prefixe'];
$_SESSION['nom'] = $data['nom'];
$_SESSION['prenom'] = $data['prenom']; 
$_SESSION['mail'] = $data['mail']; 
$_SESSION['login'] = $data['login'];
$_SESSION['mdp'] = $data['mdp']; 
 // etc...


message 5 je réponds
foreach ($data as $cle=>$valeur) $_SESSION[$cle]=$valeur;


Ce code répond très exactement à ta question. Qu'est ce que je peux te dire de plus ?
0
virtualsof Messages postés 106 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 17
30 oct. 2008 à 11:03
Salut c'est encore moué

alors j'ai essayé de tourner ca dans tous les sens et j'arrive pooooooo ;(((
Voila ou je bloque :

<?php 
// ... je vous passe la portion qui n'a aucune incidence sur la compréhension du sujet...

// Juste a savoir que $loginOK vs l'aurez compris correspond à la vérification des données du formulaire

	if (($loginOK) && $_SESSION['login'] == "admin") { // 
	
//		$_SESSION['login'] = $data['login'];

// C'est la que ça bloque, ceci ne me retourne pourtant aucune erreur mais les variables ne sont pas déclarées.

foreach ($data as $cle=>$valeur) {   // déclaration des variables de session
	$_SESSION[$cle]=$valeur;
}

		header("location:admin/index.php");
		
		
	} else {


	header("location:erreur.php");
	//echo 'Une erreur est survenue, veuillez réessayer !';
}
?>


Évidement je suis ouvert à toutes propositions (décentes) dans l'éventualité ou il faudrait faire cette fonction différement.

Si qqu'un a une idée... d'avance merci.

PS : A l'attention de Briiiiiiiiiix : En encadré jaune sur le site de PHP.net, cet avertissement :

Si vous utilisez $_SESSION (ou $HTTP_SESSION_VARS), n'utilisez pas session_register(), session_is_registered() et session_unregister().

https://www.php.net/manual/fr/function.session-register.php
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
24 oct. 2008 à 10:25
J'ai trouvé un bout de code pour ouvrir une session qui pourrait t'interresser:

<?php
//************************** Session ******************
session_start(); // dbut de session
if (isset($_POST['valider_connexion'])){ // execution apres envoi du formulaire
$login = $_POST['login_membre']; // mise en variable du nom d'utilisateur
$pass = md5($_POST['password_membre']); // mise en variable du mot de passe crypt

$verif_query="SELECT * FROM membres WHERE Login_membre='$login' AND Password_membre='$pass'"; // requte sur la base administrateurs
$verif = mysql_query($verif_query) or die(mysql_error());
$row_verif = mysql_fetch_array($verif);
$utilisateur = mysql_num_rows($verif);
if ($utilisateur) { // On test s'il y a un utilisateur correspondant
session_register("authentification"); // enregistrement de la session
// dclaration des variables de session
$_SESSION['id'] = $row_verif['Id_membre']; // Son id
$_SESSION['login'] = $row_verif['Login_membre']; // Son Login
$_SESSION['pass'] = $row_verif['Password_membre']; // Son mot de passe ( viter)
$_SESSION['nom'] = $row_verif['Nom_membre']; // Son Nom
$_SESSION['prenom'] = $row_verif['Prenom_membre']; // Son Prenom
$_SESSION['equipe'] = $row_verif['Equipe_membre']; // Son Equipe
$_SESSION['privilege'] = $row_verif['Privilege_membre']; // Son Privilege
}}
//*************************Session ************************?>

Bon travail
-1
virtualsof Messages postés 106 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 17
24 oct. 2008 à 11:23
Oula non t'y est pas Briiiix, c'est très gentil à toi, mais j'ai pas de prob pour ouvrir la session
Ici je n'ai posté en fait que le strict nécessaire à la compréhension de la question.

C'est plutôt toto qui est dans le bon sens de la réponse. En fait j'avais aussi cherché de ce coté là toto, mais j'arrive pas à l'écrire.

Et franchement ce que j'ai écrit j'ose pas le poster ici... s'trooo.. pabooo !

Markiiii :)
-1
virtualsof Messages postés 106 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 17
24 oct. 2008 à 11:39
Bon allez j'essaye qd mm.... glups

Est ce que ca pourrait ressembler à oun trouc coum ca :

$a = array("nom", "prenom", "adresse", "cp", "ville", "tel", "fax");

$b = array("NOM", "PRENOM", "ADRESSE", "CP", "VILLE", "TEL", "FAX")

foreach ($a as $b) {

   $_SESSION['$a'] = $data['$b'];

}


siouplé non pas les dents !

PS : Stp Briiix ca veux dire quoi (VITER)
$_SESSION['pass'] = $row_verif['Password_membre']; // Son mot de passe ( viter)
-1
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
24 oct. 2008 à 14:26
C'etait une erreur de copier coller
Tu peux m'envoyer tout le code de la page? je pourrais t'aider !!!
-1
virtualsof Messages postés 106 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 17
24 oct. 2008 à 21:31
HAAAAAAAAAAA D'accoooooord Oukiiiii

hemmm J'ai tjs rien compris !

bon alors comme me l'a si gentiment demandé Briiiiiiiiix (c'est 6 ou 8 i ?) je colle !

<?php session_start();
session_start();

//Membres only
if (!isset($_SESSION['admin'])) {
 if (!isset($_SESSION['membre'])) {
	header("location:formulaire-login-membres.php");
	}
}

include 'config.php';
  // On va chercher les données afférentes à ce membre
	$sql = "SELECT * FROM membre WHERE id = '".$_SESSION['membre']."'";
	$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
	$data = mysql_fetch_assoc($req);

// on stoque les variables
$_SESSION['login'] = $data['login'];
$_SESSION['mdp'] = $data['mdp'];
$_SESSION['USER_ID'] = $data['id'];
$_SESSION['USER_PREFIXE'] = $data['prefixe'];
$_SESSION['USER_NOM'] = $data['nom'];
$_SESSION['USER_PRENOM'] = $data['prenom']; 
$_SESSION['USER_EMAIL'] = $data['mail']; 
$_SESSION['USER_ADRESSE'] = $data['adresse'];
$_SESSION['USER_CP'] = $data['cp'];
$_SESSION['USER_VILLE'] = $data['ville'];
$_SESSION['USER_PAYS'] = $data['pays'];
$_SESSION['USER_TEL'] = $data['tel'];
$_SESSION['USER_FAX'] = $data['fax'];

?>


ok donc ca c'est le code pour Briiiiix, ensuite pour faire plaisir à toto :

<?php session_start();

//----En répondant je test ça je pense que c'est mieux ?

if (!((isset($_SESSION['membre'])) or (isset($_SESSION['admin'])))) {
	header("location:form-login-membres.php");
}

include 'config.php';
  // On va chercher les données afférentes à ce membre
	$sql = "SELECT * FROM membre WHERE id = '".$_SESSION['membre']."'";
	$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
	$data = mysql_fetch_assoc($req);

//----------et puis ça ^^
foreach ($data as $cle=>$valeur) {

     $_SESSION[$cle]=$valeur; 
}
?>


En fait ce qui me bloque c'est de savoir comment nommer mes variables de sessions pour les affecter ensuite. Car bien entendu, ces variables j'ai besoin de les utiliser ensuite.

Voili encore merci :)
-1
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
24 oct. 2008 à 22:56
Tu ve que cette partie soit automatisée dans une boucle ?

// on stoque les variables
$_SESSION['login'] = $data['login'];
$_SESSION['mdp'] = $data['mdp'];
$_SESSION['USER_ID'] = $data['id'];
$_SESSION['USER_PREFIXE'] = $data['prefixe'];
$_SESSION['USER_NOM'] = $data['nom'];
$_SESSION['USER_PRENOM'] = $data['prenom'];
$_SESSION['USER_EMAIL'] = $data['mail'];
$_SESSION['USER_ADRESSE'] = $data['adresse'];
$_SESSION['USER_CP'] = $data['cp'];
$_SESSION['USER_VILLE'] = $data['ville'];
$_SESSION['USER_PAYS'] = $data['pays'];
$_SESSION['USER_TEL'] = $data['tel'];
$_SESSION['USER_FAX'] = $data['fax'];
-1
virtualsof Messages postés 106 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 17
25 oct. 2008 à 01:07
Méééééé heuuuuuu looool

Non pas tout à fait, quoique pourquoi pas je pense avoir été clair dans ma question, ce que j'ai fait ça marche mais ça ne me plait pas dans l'art et la manière.

Bon et puis je cherche à parfaire mon coding donc quand je vois ce genre de problème je sait qu'il y a une façon plus... conventionnelle et surtout plus rapide de réaliser ce genre de requêtes.

Donc oui pq pas avec une boucle Briiiiiiiiiiix. Mais j'ai pas testé ce que j'ai écrit, c'est ça ? houpa ?

Je dis lol pq j'aime bien le style de toto, un peu le genre de codeur qui connait la réponse mais qui veux pas la donner tout de suite, alors il met sur la piste maaaaiis nananana.... cherche !

gnacgnacgnac
-1
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
25 oct. 2008 à 14:39
Et surtout n'utilise pas la boucle for, car sinon tu n'auras aucune variable affectée.
Bon travail
-1