Quelle est la valeur d'une variable id ? [Résolu]

Signaler
Messages postés
137
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
18 novembre 2020
-
Messages postés
137
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
18 novembre 2020
-
Bonjour,

Quelqu' un pourrait il me rappeler comment obtenir la valeur de la variable $id de ce script ci dessous montré en exemple
:
$requete = $connection->prepare("SELECT username FROM inscriptions WHERE id='$id'");
			$requete->execute(array(
			':username' => $id
			));															
while ($row = $requete->fetch(PDO::FETCH_ASSOC))
{
    $user=($row['username']);	
	$_SESSION['id_inscription'] = $id;
}


Merci d'avance.

Configuration: Windows / Opera 36.0.2130.80

3 réponses

Messages postés
14329
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 février 2021
806
comme tu as la valeur, que veux-tu dire par "obtenir la valeur"?
si tu veux l'obtenir dans une autre page:
session_start();
$id = $_SESSION['id_inscription'];
Messages postés
137
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
18 novembre 2020

Je veux dire connaître la valeur de la variable $id.
Elle existe bien quelque part avant cette ligne 8 ci dessus.
$_SESSION['id_inscription'] est définie à partir de $id.Mais je ne sais pas trouver la valeur de cette variable.
$id est un chiffre ou un nombre en correspondance avec un champ d'une colonne s'appelant id en auto-incrément d'une table.
Alors ma question est: Comment obtenir ce chiffre ou ce nombre pour l'inclure dans une variable?
Un exemple pour ma compréhension serait le bienvenu.
Merci.
Messages postés
14329
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 février 2021
806 >
Messages postés
137
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
18 novembre 2020

Si ton site fonctionne bien, elle existe bien, en effet, quelque part avant cette ligne 8 ci dessus.
Ton site fonctionne-t'il?
Si tu veux que nous t'aidions à la découvrir, il serait utile de partager l'ensemble de tes pages de code.
Messages postés
137
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
18 novembre 2020

Je veux dire connaître la valeur de la variable $id.
Elle existe bien quelque part avant cette ligne 8 ci dessus.
$_SESSION['id_inscription']  

est définie à partir de $id.Mais je ne sais pas trouver la valeur de cette variable.
$id est un chiffre ou un nombre en correspondance avec un champ d'une colonne s'appelant id en auto-incrément d'une table.
Alors ma question est: Comment obtenir ce chiffre ou ce nombre pour l'inclure dans une variable?
Un exemple pour ma compréhension serait le bienvenu.
Merci.
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
982
Bonjour,

C'est forcément écrit quelque part plus haut dans le code...
À savoir que quand une page php est inclue dans une autre en utilisant « include », les variables sont portées.
Donc si on a page1.php qui contient
$id=5;
include("page2.php");

, on peut très bien faire
echo $id;
dans page2.php.

Tout ça pour dire qu'il faut que tu recherches :
- Soit dans la même page, un code du genre $id = ...
- Soit dans une autre page, un code du genre include("ta_page.php") où ta_page est le nom du fichier où le script que tu montres est placé. (ça peut être include, require, include_once, require_once, avec des guillemets ou des quotes... Ce sera probablement plus rapide de faire directement une recherche sur le nom de ton fichier dans le texte des autres fichiers. Notepad++ fait ça très bien, AgentRansack aussi.)

Xavier
Messages postés
137
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
18 novembre 2020

Voici le résultat de mes recherches:
// récupération PROPRE de la variable COOKIE  AVANT de l'utiliser
$auth = !empty($_COOKIE['auth']) ? $_COOKIE['auth'] : NULL;
			$a_auth = explode('-----',$auth);

			// on extrait l'ID si présence cookies.
			$id =  !empty($a_auth) ? $a_auth[0] : NULL;
			if (!empty ($id))
			{	
				//Présence cookie.
				$requete = $connection->prepare("SELECT id, username, password FROM inscriptions WHERE id='$id'");
											$requete->execute(array(
											':username' => $id,
											':password' => $id
											));															
											while ($row = $requete->fetch(PDO::FETCH_ASSOC))
											{
											$_SESSION['id_inscription']=($row['id']);	
											$_SESSION['username']=($row['username']);
											$_SESSION['password']=($row['password']);
											}									
			$_SESSION['id']	= $id;


Cette ligne:
$auth = !empty($_COOKIE['auth']) ? $_COOKIE['auth'] : NULL;

dont la variable $auth est un cookie comportant un id.
Sur cette ligne ci dessous:
$id =  !empty($a_auth) ? $a_auth[0] : NULL;

On crée la variable $id comportant le numéro ou nombre contenu dans le cookie.

Ainsi je sais comment est obtenu cette variable id.
Mais peux tu m'expliquer la syntaxe de cette ligne:
$auth = !empty($_COOKIE['auth']) ? $_COOKIE['auth'] : NULL;


Et de celle ci:
$id =  !empty($a_auth) ? $a_auth[0] : NULL;


Merci.
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
982
Alors, l'opérateur « ? : » (appelé opérateur ternaire car il opère sur trois opérandes) est en fait une sorte de raccourci pour dire if...else.

$auth = !empty($_COOKIE['auth']) ? $_COOKIE['auth'] : NULL;

pourrait s'écrire :
if (!empty($_COOKIE['auth']))
    $auth = $_COOKIE['auth'];
else
    $auth = NULL;


De même pour la ligne suivante.

La fonction « empty », quant à elle, permet de savoir si une variable est affectée et si sa valeur est non-vide (donc différente de 0, chaîne vide "", false, tableau vide...).

Xavier
Messages postés
137
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
18 novembre 2020

Merci pour le "?" dont je ne connaissais pas sont utilité.
Pour la ligne suivante te serait il possible de la faire correspondre avec if et else pour plus de certitude dans mon esprit?
Concernant !empty, je savais déjà.Merci.
NULL est une valeur vide je crois?
Différente de false ou true si je ne me trompe pas?

Ainsi il est possible d'inclure dans un cookie l'id d'une table correspondant à un champ bien défini.
Comme par exemple une valeur se trouvant dans un champ d' une colonne username.
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
982 >
Messages postés
137
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
18 novembre 2020

Oui pour toutes tes questions. En fait on met n'importe quoi dans un cookie...

Pour la deuxième ligne ?:, ça donne ça :
$id =  !empty($a_auth) ? $a_auth[0] : NULL;

Équivaut à
if(!empty($a_auth))
    $id =  $a_auth[0];
else
    $id =  NULL;

Xavier
Messages postés
137
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
18 novembre 2020
>
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021

Bien.
Merci.
Sujet résolu pour moi.