Variable et session
Fermé
Tydher
Messages postés
123
Date d'inscription
vendredi 5 juin 2009
Statut
Membre
Dernière intervention
17 mai 2011
-
18 juin 2009 à 09:13
le père - 18 juin 2009 à 23:25
le père - 18 juin 2009 à 23:25
A voir également:
- Variable et session
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Estelle vient de verrouiller sa session d'ordinateur. que peut-on dire ? - Forum Windows
- Vba range avec variable ✓ - Forum VB / VBA
- Associez chaque situation à l’action la plus appropriée en matière de sécurité informatique : verrouiller la session, quitter la session, ne rien faire ou éteindre l'ordinateur. - Forum MacOS
- Session invalide ou obsolète - Forum Consommation et internet
9 réponses
Tydher
Messages postés
123
Date d'inscription
vendredi 5 juin 2009
Statut
Membre
Dernière intervention
17 mai 2011
6
18 juin 2009 à 10:32
18 juin 2009 à 10:32
Up !
Bonjour
Voici une manière d'utiliser les sessions, la plus simple je pense :
Au début de chaque script , tu appelles la fonction session_start(); avant tout envoi au client (avant tout echo ou balise <!doctype ou <html>).
Quand tu veux qu'une variable soit utilisable dans une autre page, tu la mets dans le tableau $_SESSION:
$_SESSION['SIRET'] = $siret;
Dans une autre page, le tableau $_SESSION est disponible, pour récupérer ta variable tu n'as qu'à faire
$siret = $_SESSION['SIRET'];
Si c'est ce que tu crois faire, montre ton script (en cachant les éventuels mots de passe) pour que nous essayions de comprendre ce qui ne va pas
Voici une manière d'utiliser les sessions, la plus simple je pense :
Au début de chaque script , tu appelles la fonction session_start(); avant tout envoi au client (avant tout echo ou balise <!doctype ou <html>).
Quand tu veux qu'une variable soit utilisable dans une autre page, tu la mets dans le tableau $_SESSION:
$_SESSION['SIRET'] = $siret;
Dans une autre page, le tableau $_SESSION est disponible, pour récupérer ta variable tu n'as qu'à faire
$siret = $_SESSION['SIRET'];
Si c'est ce que tu crois faire, montre ton script (en cachant les éventuels mots de passe) pour que nous essayions de comprendre ce qui ne va pas
Tydher
Messages postés
123
Date d'inscription
vendredi 5 juin 2009
Statut
Membre
Dernière intervention
17 mai 2011
6
18 juin 2009 à 13:44
18 juin 2009 à 13:44
Merci je vais essayer ta methode et je donnerai des nouvelles d'ici 10min, le temps d'essayer
Tydher
Messages postés
123
Date d'inscription
vendredi 5 juin 2009
Statut
Membre
Dernière intervention
17 mai 2011
6
18 juin 2009 à 13:48
18 juin 2009 à 13:48
En mettant
session_start();
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title>Suivi du Site Banque de Stage</title>
<link rel="stylesheet" type="text/css" media="all" href="deco.css"/>
</head>
<body>
<div id="header">
<h2>Informations contact entreprise</h2>
<hr size=2 color=black>
<?php
...
Il m'affiche en haut de page le session_start();
Je n'ai pas du comprendre ou placé le session_start(); !
session_start();
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title>Suivi du Site Banque de Stage</title>
<link rel="stylesheet" type="text/css" media="all" href="deco.css"/>
</head>
<body>
<div id="header">
<h2>Informations contact entreprise</h2>
<hr size=2 color=black>
<?php
...
Il m'affiche en haut de page le session_start();
Je n'ai pas du comprendre ou placé le session_start(); !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu me sembles mal parti..
session_start(); c'est du PHP, ça doit être entre balises php :
session_start(); c'est du PHP, ça doit être entre balises php :
<?php session_start(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> ...Il est fondamental que tu distingues le PHP du HTML.
Tydher
Messages postés
123
Date d'inscription
vendredi 5 juin 2009
Statut
Membre
Dernière intervention
17 mai 2011
6
18 juin 2009 à 14:00
18 juin 2009 à 14:00
Oui sa y est je l'avais vu qu'il me manquais les balises, cependant apres avoir fait ce que tu m'a dit cela ne marche tjr pas.
Dans la page ou je doit utiliser le siret il me met que la session n'est pas défini
Voila du code pour eclairer les chose.
Page 1 : (contact_entreprise.php)
<?php session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title>Suivi du Site Banque de Stage</title>
<link rel="stylesheet" type="text/css" media="all" href="deco.css"/>
</head>
<body>
<div id="header">
<h2>Informations contact entreprise</h2>
<hr size=2 color=black>
<?php
$sql5="SELECT bqstg_contact.nom, bqstg_contact.id, mip_entreprises.id
FROM bqstg_contact, mip_entreprises
WHERE bqstg_contact.entreprise = mip_entreprises.id
AND mip_entreprises.SIRET = '".$_POST['SIRET']."'";
$sql6="SELECT bqstg_contact.email, bqstg_contact.id
FROM bqstg_contact, mip_entreprises
WHERE bqstg_contact.entreprise = mip_entreprises.id
AND mip_entreprises.SIRET = '".$_POST['SIRET']."'";
$sql7="SELECT bqstg_contact.telephone, bqstg_contact.id
FROM bqstg_contact, mip_entreprises
WHERE bqstg_contact.entreprise = mip_entreprises.id
AND mip_entreprises.SIRET = '".$_POST['SIRET']."'";
$sql8="SELECT bqstg_contact.id
FROM bqstg_contact, mip_entreprises
WHERE bqstg_contact.entreprise = mip_entreprises.id
AND mip_entreprises.SIRET = '".$_POST['SIRET']."'";
$sql = "SELECT mip_entreprises.SIRET
FROM mip_entreprises
WHERE mip_entreprises.SIRET = '".$_POST['SIRET']."'";
//Connection au serveur
.....
//Connection a la base de données
.....
$req = mysql_query($sql) or die("erreur SQL 5".mysql_error());
$req5 = mysql_query($sql5) or die("erreur SQL 5".mysql_error());
$req6 = mysql_query($sql6) or die("erreur SQL 6".mysql_error());
$req7 = mysql_query($sql7) or die("erreur SQL 7".mysql_error());
$req9 = mysql_query($sql8) or die("erreur SQL 9".mysql_error());
$siret = mysql_query($sql) or die("erreur SQL 9".mysql_error());
$_SESSION['SIRET'] = $siret;
....
Tableau de resultat
?>
Page 2:(Maj_contact.php)
<?php
$siret = $_SESSION['SIRET'];
$id = $_POST['id'];
$email = $_POST['EmailContact'];
//Connection au serveur
//Connection a la base de données
$sql ="UPDATE bqstg_contact SET email = '$email' WHERE id ='$id'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
echo '<META HTTP-EQUIV="Refresh" CONTENT="1; URL=contact_entreprise.php">';
?>
Dans la page ou je doit utiliser le siret il me met que la session n'est pas défini
Voila du code pour eclairer les chose.
Page 1 : (contact_entreprise.php)
<?php session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title>Suivi du Site Banque de Stage</title>
<link rel="stylesheet" type="text/css" media="all" href="deco.css"/>
</head>
<body>
<div id="header">
<h2>Informations contact entreprise</h2>
<hr size=2 color=black>
<?php
$sql5="SELECT bqstg_contact.nom, bqstg_contact.id, mip_entreprises.id
FROM bqstg_contact, mip_entreprises
WHERE bqstg_contact.entreprise = mip_entreprises.id
AND mip_entreprises.SIRET = '".$_POST['SIRET']."'";
$sql6="SELECT bqstg_contact.email, bqstg_contact.id
FROM bqstg_contact, mip_entreprises
WHERE bqstg_contact.entreprise = mip_entreprises.id
AND mip_entreprises.SIRET = '".$_POST['SIRET']."'";
$sql7="SELECT bqstg_contact.telephone, bqstg_contact.id
FROM bqstg_contact, mip_entreprises
WHERE bqstg_contact.entreprise = mip_entreprises.id
AND mip_entreprises.SIRET = '".$_POST['SIRET']."'";
$sql8="SELECT bqstg_contact.id
FROM bqstg_contact, mip_entreprises
WHERE bqstg_contact.entreprise = mip_entreprises.id
AND mip_entreprises.SIRET = '".$_POST['SIRET']."'";
$sql = "SELECT mip_entreprises.SIRET
FROM mip_entreprises
WHERE mip_entreprises.SIRET = '".$_POST['SIRET']."'";
//Connection au serveur
.....
//Connection a la base de données
.....
$req = mysql_query($sql) or die("erreur SQL 5".mysql_error());
$req5 = mysql_query($sql5) or die("erreur SQL 5".mysql_error());
$req6 = mysql_query($sql6) or die("erreur SQL 6".mysql_error());
$req7 = mysql_query($sql7) or die("erreur SQL 7".mysql_error());
$req9 = mysql_query($sql8) or die("erreur SQL 9".mysql_error());
$siret = mysql_query($sql) or die("erreur SQL 9".mysql_error());
$_SESSION['SIRET'] = $siret;
....
Tableau de resultat
?>
Page 2:(Maj_contact.php)
<?php
$siret = $_SESSION['SIRET'];
$id = $_POST['id'];
$email = $_POST['EmailContact'];
//Connection au serveur
//Connection a la base de données
$sql ="UPDATE bqstg_contact SET email = '$email' WHERE id ='$id'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
echo '<META HTTP-EQUIV="Refresh" CONTENT="1; URL=contact_entreprise.php">';
?>
jeangilles
Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
185
18 juin 2009 à 14:23
18 juin 2009 à 14:23
Dans ta 2eme page, il faut aussi mettre le session_start();
en fait il faut le mettre dans ttes les pages où tu utilises les variables de session
en fait il faut le mettre dans ttes les pages où tu utilises les variables de session
Tydher
Messages postés
123
Date d'inscription
vendredi 5 juin 2009
Statut
Membre
Dernière intervention
17 mai 2011
6
18 juin 2009 à 14:37
18 juin 2009 à 14:37
Apres avoir mis le session_start() dans ma page 2, de modification le retour à la page un ne ce fait pas car ma variable SIRET n'est pas défini
Quelques remarques :
1 - la variable que tu essayes de passer par session est une ressource (le résultat d'un mysql_query avec un SELECT est une sorte d'objet qui s'appelle ressource). Tu ne peux pas passer une ressource par session, tu peux éventuellement en extraire les infos sous forme de tableau et passer ce tableau en $_SESSION.
2 - le $siret = $_SESSION['SIRET']; ne sert strictement à rien dans ta deuxième page si tu ne l'exploites pas dans cette deuxième page.
3 - ma variable SIRET n'est pas défini Tu n'as aucune variable qui s'appelle SIRET. Ton programme fait référence à $_POST['SIRET'] et je suppose que c'est là que tu as ton erreur quand tu reviens sur ta page. Normal, $_POST['SIRET'] n'est défini que quand ta page est appelée par l'envoi d'un formulaire avec la méthode POST.
À ta place,avant de créer les requêtes, je testerais si $_POST['SIRET'] existe et si oui je l'enregistrerais dans une variable de session
ensuite, je testerais si la variable de session existe et , si non, j'afficherais une erreur car il y aurait un vrai problème
enfin, je créerais les requêtes avec la variable de session plutôt que $_POST['SIRET']
1 - la variable que tu essayes de passer par session est une ressource (le résultat d'un mysql_query avec un SELECT est une sorte d'objet qui s'appelle ressource). Tu ne peux pas passer une ressource par session, tu peux éventuellement en extraire les infos sous forme de tableau et passer ce tableau en $_SESSION.
2 - le $siret = $_SESSION['SIRET']; ne sert strictement à rien dans ta deuxième page si tu ne l'exploites pas dans cette deuxième page.
3 - ma variable SIRET n'est pas défini Tu n'as aucune variable qui s'appelle SIRET. Ton programme fait référence à $_POST['SIRET'] et je suppose que c'est là que tu as ton erreur quand tu reviens sur ta page. Normal, $_POST['SIRET'] n'est défini que quand ta page est appelée par l'envoi d'un formulaire avec la méthode POST.
À ta place,avant de créer les requêtes, je testerais si $_POST['SIRET'] existe et si oui je l'enregistrerais dans une variable de session
ensuite, je testerais si la variable de session existe et , si non, j'afficherais une erreur car il y aurait un vrai problème
enfin, je créerais les requêtes avec la variable de session plutôt que $_POST['SIRET']