Variable et session

Tydher Messages postés 127 Statut Membre -  
 le père -
Bonjour voila mon probleme.
Dans ma page administration.php j'ai un champ ou je saisi un numero
Ce numero lance une requete sql et m'affiche les contacts correspondant au numero, le tout dans un tableau (La page est contact_entreprise.php)
Je peux modifier ou supprimer des infos dans cette page. Tout changement lance un script php qui me renvoi a la page administration.php.

Seulement je voudrais qu'il me renvoi vers la page contact_entreprise.php mais la variable du champ texte n'est plus en memoire et me met un message d'erreur du type :

Notice: Undefined index: SIRET in C:\Program Files\EasyPHP 3.0\www\Suivi\contact_entreprise.php on line 24

J'essai d'utiliser une variable de session mais impossible de comprendre le fonctionnement.

Merci de votre aide.

9 réponses

Tydher Messages postés 127 Statut Membre 6
 
Up !
0
le père
 
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
0
Tydher Messages postés 127 Statut Membre 6
 
Merci je vais essayer ta methode et je donnerai des nouvelles d'ici 10min, le temps d'essayer
0
Tydher Messages postés 127 Statut Membre 6
 
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(); !
0

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

Posez votre question
le père
 
Tu me sembles mal parti..
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.
0
Tydher Messages postés 127 Statut Membre 6
 
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">';

?>
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
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
0
Tydher Messages postés 127 Statut Membre 6
 
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
0
le père
 
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']
0