Variables de sessions

virtualsof Messages postés 112 Statut Membre -  
virtualsof Messages postés 112 Statut Membre -
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

toto
 
0
toto
 
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
toto
 
pour automatiser ça, voir messages 2 et 5, mais bon...
0
toto
 
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
toto
 
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 112 Statut Membre 17
 
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 624 Statut Membre 18
 
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 112 Statut Membre 17
 
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 112 Statut Membre 17
 
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 624 Statut Membre 18
 
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 112 Statut Membre 17
 
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 624 Statut Membre 18
 
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 112 Statut Membre 17
 
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 624 Statut Membre 18
 
Et surtout n'utilise pas la boucle for, car sinon tu n'auras aucune variable affectée.
Bon travail
-1