[PRG] sessions sur php

Ici vous pouvez demander de l'aide ou des conseils pour la création de Trainers. Vous programmez ? Vous avez des questions ? Vous connaissez un langage PHP, HTML, C, C++, Visual Basic etc... et vous souhaitez en faire profiter tout le monde c'est ici aussi? Vos questions et réponses sur le graphismes sur l'utilisation de logiciels 2D et 3D (comme Photoshop, Painter, 3DSMAX, Ligthwave, Flash etc...)

Moderators: Shub, Administrateurs - Adjoint, Modérateur, Administrateur, Global Moderator

Post Reply
User avatar
Simplet
Lieutenant
Lieutenant
Posts: 426
Joined: 14 Oct 2002 - 17:32:59
Location: Saint-Hubert de Riviere-Du-Loup (Québec)
Contact:

[PRG] sessions sur php

Post by Simplet »

voila je me demandais a quoi sa servais d'enregistrer un id de session? (session_id();) parce que je commence a faire ma section membre et j'ai pas le gout d'avoir a tout recommencer plus tard parce que j'ai pas fait un truc qui m'est utile :)
(Good Charlotte) No discrimination , I hate you all.
Magicking
Lieutenant
Lieutenant
Posts: 432
Joined: 14 Oct 2002 - 12:18:46
Location: Le Kremlin-Bicêtre
Contact:

[PRG] sessions sur php

Post by Magicking »

c'est les sessions si tu veux en generale c'est utilise pour se logger comme sur le forum de trainerscity mais tu peux aussi l'utiliser pour passe des variables de page en page s'en connaitre les cookies
Last edited by Magicking on 04 May 2003 - 17:00:00, edited 1 time in total.
User avatar
Simplet
Lieutenant
Lieutenant
Posts: 426
Joined: 14 Oct 2002 - 17:32:59
Location: Saint-Hubert de Riviere-Du-Loup (Québec)
Contact:

[PRG] sessions sur php

Post by Simplet »

je vien de terminer ma section membres (et c'est sencé etre securitaire) et au debut tout mes liens ajoutais un phpsesid=asdasdsad apres et la j'ai changé un truc sur une page et la j'ai plus le phpsesid... c'est normal? j'ai fait quelque chose de mal?

[edit] en fait j'ai quelques légers problemes avec ma session... aussitot que je fait un truc pas normal comme précédent (suis pas sur mais sa fait quelques fois que sa me fait le coup) ou bien que j'arrive sur une page qui a une erreur style parse error sa me renvoit sur ma section qui a pas besoin de session (comme j'ai fait dans mon code de protection..)
[edit2] sa bug aussi quand sa fait longtemps que je suis inactif sur la page... on dirait que la session se referme

voici le code de la page ou la session ouvre et enregistre tout:

Code: Select all

<?
  extract($_GET,EXTR_OVERWRITE);
  $db = mysql_connect('localhost', 'XXX', 'XXX');
  mysql_select_db('hotkillerwebpage_db',$db);
  $req = mysql_query("SELECT id,host,nickname,password,email,grade FROM membres where nickname = '$nickname' && password = '$password'"); 
  $data = mysql_fetch_array($req);
  $id = $data['id'];
  $host = $data['host'];
  $nickname = $data['nickname'];
  $password = $data['password'];
  $email = $data['email'];
  $grade = $data['grade'];
  $req = mysql_query("SELECT prenom,nom,adresse,ville,pays,codepostal,icq,aim,msn,yahoo,siteweb,emploi,loisirs FROM infomembres where id = '$id'");
  $data = mysql_fetch_array($req);
  $prenom = $data['prenom'];
  $nom = $data['nom'];
  $adresse = $data['adresse'];
  $ville = $data['ville'];
  $pays = $data['pays'];
  $codepostal = $data['codepostal'];
  $icq = $data['icq'];
  $aim = $data['aim'];
  $msn = $data['msn'];
  $yahoo = $data['yahoo'];
  $siteweb = $data['siteweb'];
  $emploi = $data['emploi'];
  $loisirs = $data['loisirs'];
  $req = mysql_query("SELECT affemail,emailmess,popupmess,affsignature,affsmilies,signature,message FROM forummembres where id = '$id'");
  $data = mysql_fetch_array($req);
  $affemail = $data['affemail'];
  $emailmess = $data['emailmess'];
  $popupmess = $data['popupmess'];
  $affsignature = $data['affsignature'];
  $affsmilies = $data['affsmilies'];
  $signature = $data['signature'];
  $message = $data['message'];
  mysql_close();
  session_start();
  $iddesession = session_id();
  session_register("id");
  session_register("host");
  session_register("nickname");
  session_register("password");
  session_register("email");
  session_register("grade");
  session_register("prenom");
  session_register("nom");
  session_register("adresse");
  session_register("ville");
  session_register("pays");
  session_register("codepostal");
  session_register("icq");
  session_register("aim");
  session_register("msn");
  session_register("yahoo");
  session_register("siteweb");
  session_register("emploi");
  session_register("loisirs");
  session_register("affemail");
  session_register("emailmess");
  session_register("popupmess");
  session_register("affsignature");
  session_register("affsmilies");
  session_register("signature");
  session_register("message");
  session_register("iddesession");
  header("Location: membres/index.php?page=home");
  ?>
et mes pages sont fait d'un index qui contient plusieurs includes (menu gauche-droite tag1-tag2-framecentre-framebas etc) donc j'ai foutu un code pour verifier si l'utilisateur est bien loggé sur l'index et sur toutes mes autres pages (on est jamais trop prudent mais je crois que la je me suis gourré quelque part... en tout cas si c'est pas ma connection, c'est sa qui ralenti mes pages comme sa...)
alors voici le code de chaqu'une de mes pages:

Code: Select all

<?
session_start();
require('fonctions.php');
verifloged();
?>
require('fonctions.php'); n'est que sur mon index... les autres sont sencé etre ouvert avec une include dans l'index alors c'est sencé marcher et si quelqu'un essai de l'ouvrir seul , sa met erreur parce qu'il trouvera pas la fonction alors j'ai cru que c'étais secure.
et voici le code de la fonction :

Code: Select all

function verifloged()
{
if (!session_is_registered("password"))
{
?>
<script language="JavaScript">
document.location.replace("deconnection.php");
</script>
<?
}
}
alors voila si quelqu'un a le gout de regarder sa s'il aurait pas une idée pourquoi sa bug parce que normalement a l'affichage d'une page qui ne marche pas et qui a des parse error par exemple devrais pas afficher le code pour verifier si t'es bien loggé et meme s'il le ferait , c'est sencé bien marcher non?

ah je vien de penser a un truc! est-ce que sa serait possible que sa soit causé parce que j'ai mit ce code dans le head de la page? pour pas que la page ai le temps d'afficher si la personne est pas loggé.

[edit3] j'ai vu sur un site qu'ils ajoutaient un SID a la fin de chaque liens pour afficher l'ID de session si j'ai bien compris... est-ce que sa reglerait mon probleme?parce que ce que je comprend pas c'est pourquoi la variable password s'efface :2long:

tk si vous avez le gout d'aller tester la page aussi tout est pret et c'est pas long pour s'enregistrer... le temps d'aller voir ses email pour valider le compte et voila c'est fait :) http://www.hotkillerwebpage.fr.st

si vous avez des suggestions aussi , n'hésitez pas


[edit4] mouarf je crois que je vien de trouver pourquoi sa fait sa en fait.... voila j'ai enlevé la protection pour pouvoir aller voir sans me logger parce que j'en avais mare que sa bug tout le temps et je suis en train d'essayer de faire la liste de membres et la j'essai de l'ouvrir et pouf sa retourne a mon index.php?page=home.... bon je regarde les sources et en premier de tout j'ai le truc javascript comme dans ma fonctions.php mais je demande aucunement dans le code d'exécuter la fonction verifloged(); alors je crois que mon probleme vien de la en fait.. sur n'importe quel page il ecrit ce truc mais je sais pas pourquoi ni a quel moment parce qu'il ne le fait pas a toutes les pages... voici le code de la page de liste_membres.php et si vous voulez verifier sur le site allez la http://www.multimania.com/hotkillerwebp ... embres.php

Code: Select all

<?
require('fonctions.php');
?>
<table width="98%" border="1" cellspacing="0" cellpadding="3" bordercolor="#003366" align="center">
  <tr>
    <td bgcolor="#003366">
      <table width="99%" border="0" cellspacing="0" cellpadding="0" align="center">
        <tr> 
         <td> 
            <div align="right"><b><i><font face="Verdana, Arial, Helvetica, sans-serif" size="5">Liste 
              des membres</font></i></b></div>
          </td>
        </tr>
      </table>
    <br>
      <table width="99%" border="0" cellspacing="0" cellpadding="3" bgcolor="#003366" align="center">
        <tr> 
          <td bgcolor="#003399">
            <div align="center">
  	<?
  	$db = mysql_connect('localhost', 'XXX', 'XXX');
            mysql_select_db('hotkillerwebpage_db',$db);
            $nombre = 20;
            if (!$limite) $limite = 0;
            $path_parts = pathinfo($PHP_SELF);
            $page1 = $path_parts["basename"];
            $result = mysql_query("SELECT count(nickname) FROM membres");
            $row = mysql_fetch_row($result);
            $total = $row[0];
            $verifLimite = verifLimite($limite,$total,$nombre);
            if(!$verifLimite)
            {
             $limite = 0;
            }
            if($total)
            {
    echo '<table border="1" cellpadding="3" bordercolor="#003366" bgcolor="#0066CC" width="99% align="center"">';
             echo '<tr>';
             echo '<td bgcolor="#0066CC"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Nom</font></td>';
             echo '<td bgcolor="#0066CC"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Grade</font></td>';
             echo '<td bgcolor="#0066CC"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Groupe</font></td>';
             echo '<td bgcolor="#0066CC"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Inscrit le</font></td>';
             echo '<td bgcolor="#0066CC"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Messages</font></td>';
             echo '<td bgcolor="#0066CC"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Email</font></td>';
             echo '<td bgcolor="#0066CC"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">On/Off</font></td>';
             echo '</tr>';
    $result = mysql_query('select nickname,grade,groupe,date,messages,email,affemail,onoff FROM membres, forummembres WHERE id = id ORDER BY nickname ASC limit '.$limite.','.$nombre);
             while($row = mysql_fetch_array($result))
             {
    if($row['affemail'] == "non")
    {
    $affichageemail = '<a href="index.php?page=email&nickname='.$row['nickname'].'"><img src="/email.gif" width="60" height="21" border="0"></a>';
    }
    elseif($row['affemail'] == "oui")
    {
    $affichageemail = '<a href="mailto:'.$row['email'].'"><img src="/email.gif" width="60" height="21" border="0"></a>';
    }
     echo '<tr>';
              echo '<td width="99"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">'.$row['nickname'].'</font></td>';
              echo '<td width="99"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">'.$row['grade'].'</font></td>';
              echo '<td width="99"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">'.$row['groupe'].'</font></td>';
              echo '<td width="99"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">'.$row['date'].'</font></td>';
              echo '<td width="99"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">'.$row['messages'].'</font></td>';
              echo '<td width="99"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">'.$affichageemail.'</font></td>';
              echo '<td width="99"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">'.$row['onoff'].'</font></td>';
              echo '</tr>';
    }
    echo '</tr>';
    echo '</table>';
  	}
  	mysql_free_result($result);
  	if($total > $nombre) 
  	{
    affichePages($nombre,$page1,$total,$page);
    displayNextPreviousButtons($limite,$total,$nombre,$page1,$page);
  	}
  	?>
            </div>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<br>
<br>
en meme temps j'ai un probleme au niveau de mon while... quand il marche , il affiche que les titre du tableaux et non les données pourtant c'est exactement le meme code que dans mon news.php et labas sa marche :(
Last edited by Simplet on 04 May 2003 - 18:40:25, edited 1 time in total.
(Good Charlotte) No discrimination , I hate you all.
Post Reply