Php encore problem avec session

Fermé
jupiler - 20 août 2009 à 12:11
 jupiler - 20 août 2009 à 14:14
Bonjour,

voila j ai deux fichiers pour lesquels j utilise des sessions mais apparemment ca ne fonctionne pas et je ne vois pas pourquoi :

fichier 1 :

<?php
session_start();
$_SESSION['iddi']=$iddi;

include 'inc/config.php';
include 'inc/connexion.php';
if(isset($_COOKIE['ID_my_site']))
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{ header("Location: login.php");
}
else
{
include 'header.php';
include 'menu.php';
include 'implant/modif.php';
include 'footer.php';
}
}
}
else
{
header("Location: index.php");
}
?>

et le deuxième fichier :

<?php
session_start();
$iddi=$_SESSION['iddi'];

include 'inc/config.php';
include 'inc/connexion.php';
if(isset($_COOKIE['ID_my_site']))
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{ header("Location: login.php");
}
else
{
include 'header.php';
include 'menu.php';
include 'implant/modif2.php';
include 'footer.php';
}
}
}
else
{
header("Location: index.php");
}
?>

9 réponses

fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
20 août 2009 à 12:21
à première vue, les premières lignes sont bizarres :
$_SESSION['iddi']=$iddi;

ca sert à quoi ?

une variable session sert à mémoriser une info au travers des pages pour un client donné.

Quand tu affectes la variable $_SESSION['iddi'], tu définis une variable session, c'est à dire que isset($_SESSION['iddi']) retourne TRUE
De plus, $iddi (variable locale de ton fichier) n'est pas défini en amont, et est similaire à ta variable session
En mode lecture, $iddi est $_SESSION['iddi']
donc problème car ca veut dire x=x !

que veux-tu faire exactement avec tes variables sessions ?
0
en fait je veux afficher la ligne avec les infos d'un DVD pour pouvoir les modifier

$iddi = $_POST['form_dvd'];

if(isset($_POST['form_dvd']))
{
$sql = "SELECT idp FROM media where ss="'.$ss.'"";
$req = mysql_query($sql) or die( mysql_error() ) ;
$idpi = mysql_result($req, 0);


echo $sql3 = "SELECT * FROM media where idpi='$idpi' and iddi='$iddi'";
$req3 = mysql_query($sql3) or die( mysql_error() ) ;
$total3 = mysql_num_rows($req3);

echo '<h1>Renseignez les réferences de votre media</h1>';
echo $iddi;
echo '<form method ="post" action="ci-step3.php">';
echo '<center><table class="table2">'."\n";
echo '<tr class="form">';
echo '<td><b>Dvd</b></td>';
echo '<td><b>format</b></td>';
echo '<td><b>zone</b></td>';
echo '<td><b>titre</b></td>';
echo '</tr>'."\n";
while($row = mysql_fetch_array($req3))
{
echo '<tr class="form">';

echo '<td class="td-p"><input type="text" name="iddi" value="'.$row["iddi"].'"/></td>';
echo '<td class="td-p"><textarea row="3" cols="20" name="format" rows="4" value="votre texte"/>
'.$row["format"].'</textarea></td>';
echo '<td class="td-p"><textarea row="4" cols="30" name="zone" rows="4" value="votre texte"/>
'.$row["zone"].'</textarea></td>';
echo '<td class="td-p"><textarea row="3" cols="20" name="titre" rows="4" value="votre texte"/>
'.$row["titre"].'</textarea></td>';
echo '</tr>'."\n";
}
echo '</table></center>'."\n";
echo '<input type="hidden" name="dvd2" value=$iddi/><br><center><input type="submit" name="ok" value="Modifier le media"/></center>';
echo '</form>';
}
et ensuite faire l update dans mabse mon probleme etait qu il faisait l update sur tous mes champs idp sans prendre en compte le iddi
mais la session ne le récupère pas
if (isset($_POST['ok']))
{
$sql2= "UPDATE media SET format='".$_POST['format']."', zone='".$_POST['zone']."', titre='".$_POST['titre']."' where idpi='$idpi' and iddi='$iddi'";
$req2= mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
}

donc la l update fonctionne mais en prend pas en compte le where iddi='$iddi'

Merci
0
fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
20 août 2009 à 12:45
j'ai pas tout compris.
Mais pour faire simple :
- as-tu bien mis session_start() au début de tous les fichiers ?
- dans quel fichier affectes-tu ta variable session ?
- dans quel fichier tu la lis ? fais un test echo $_SESSION['xxx'] juste au début de ton fichier, et tu verras si la variable session est bien en mémoire. Je ne vois pas pourquoi ca ne marcherait pas
0
alors en tout cas merci de ton aide

- as-tu bien mis session_start() au début de tous les fichiers ? oui
- dans quel fichier affectes-tu ta variable session ? le premier
- dans quel fichier tu la lis ? dans le deuxieme
- fais un test echo $_SESSION['xxx'] j ai testé ca n fonctionne pas
0

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

Posez votre question
fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
20 août 2009 à 12:59
fais 2 fichiers test :
a.php :
<?
session_start();
$_SESSION['x']=1;

?>
<a href='b.php'>lien</a>


et

b.php :
<? session_start();
echo "x=".$_SESSION['x'];
?>

ca donne quoi qd tu lances a.php et que tu cliques sur le lien ?
0
ca marche

x=1

c vraiment bizarre est ce que le fait d avoir de sincludes pose probleme je ens que non ...
0
fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
20 août 2009 à 13:06
bon ok, tu vois les variables session ca marche ...
a toi de progresser et de vérifier ce qui plante maintenant avec ton code ...
en ajoutant progressivement tes lignes de code...

C'est une méthode pour débugger un soft ... (c'est la mienne)

Bon Courage
;-)
0
Merci beaucoup fred allez au boulot ;-)
0
Pour info ca fonctionne en harmonisant le sessions de cette partie de mon site

merci
0