Php encore problem avec session

jupiler -  
 jupiler -
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");
}
?>
Configuration: Windows Vista
Firefox 3.5.2

9 réponses

  1. fred_bgt Messages postés 159 Statut Membre 22
     
    à 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
  2. jupiler
     
    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
  3. fred_bgt Messages postés 159 Statut Membre 22
     
    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
  4. jupiler
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fred_bgt Messages postés 159 Statut Membre 22
     
    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
  7. jupiler
     
    ca marche

    x=1

    c vraiment bizarre est ce que le fait d avoir de sincludes pose probleme je ens que non ...
    0
  8. fred_bgt Messages postés 159 Statut Membre 22
     
    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
  9. jupiler
     
    Merci beaucoup fred allez au boulot ;-)
    0
  10. jupiler
     
    Pour info ca fonctionne en harmonisant le sessions de cette partie de mon site

    merci
    0