Variable SESSION, gros problème!

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Variable SESSION, gros problème!

par SniP_78 » 30 sept. 2007, 20:00

J'ai réussi a réparer le site, j'ai fait un "session_unset();".

Quelqu'un peut me dire une astuce pour pas que sa se reproduisse?

Merci d'avance

par Ryle » 22 sept. 2007, 14:02

Modération :
SniP_78, les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Merci de prendre le temps de lire les règlements.

par Invité » 22 sept. 2007, 12:20

up

par SniP_78 » 17 sept. 2007, 19:13

Oui, j'ai essayer avec le bloc note et aussi PHPEdit, hier j'ai essayer sur un autre hébergement et mon site marché, je ne comprend pas, pas du tous.

par Aureusms » 17 sept. 2007, 08:42

As tu ouvert ton fichier en fichier texte ou pas ? (sans notepad++)

par SniP_78 » 16 sept. 2007, 14:00

Personne n'a de solution?

par Invité » 15 sept. 2007, 12:29

Rien ne change

par SniP_78 » 15 sept. 2007, 12:26

Oui, la je suis sur Notepad++ et avan sur Adobe Dreamweaver CS3, je vais regarder si sa vien de sa

par Aureusms » 15 sept. 2007, 12:09

J'ai eu un problème équivalent avec mon éditeur Php qui me m'était des caractères avant <?php.
As tu récemment changé d'éditeur ?

par SNiP_78 » 15 sept. 2007, 11:29

Désolé mais sa beug toujours, sa a rien changé.

Moi je pense pas que le problème vienne du script mais de l'hebergeur et des session, quoi je ne comprend pas mais tous marcher nickel avec ce code, sa marché plus du jour au lendemain sans même que je touche au code.

Merci de me dire pourquoi si quelqu'un a encore une idée pour m'aider.

par Cyrano » 13 sept. 2007, 20:54

Sois discipliné dans ta manière de coder et tu auras moins de mal à débugguer.

Petit ménage : le second script définissant si la variable $member doit être à true ou false :
<?php
session_start();

$member = (empty($_SESSION["iduser"]) || empty($_SESSION["pseudo"])) ? false : true;
?>
Tu noteras qu'on évite les short_open_tag(). D'après ton phpinfo, ce n'est pas indispensable, mais c'est une sécurité de plus.

Et on VIRE le "@" devant le session_start() : s'il y a une erreur, il faut la voir et le savoir pour la corriger, pas la masquer avec un cache-misère.

Le premier script maintenant : on aligne le code proprement et on oublie pas de relancer aussi la session. Et on vire les balises <code> qui n'on pas grand chose à faire là :
<?php 
session_start();
$pseudo = htmlentities($_POST["pseudo"]);
$mdp    = htmlentities($_POST["mdp"]);

$affichagetitre = "Connection de l'utilisateur";


$requete="SELECT * FROM user WHERE login = '".$pseudo."'"; // requête
$result = mysql_query($requete, $connection) or die($requete . " - " . mysql_error());

//si la requête s'est bien pass&eacute;e
if(mysql_num_rows($result) > 0)
{
    while($data = mysql_fetch_array($result))
    {
        if ($data['mdp'] == $mdp)
        {

            $_SESSION['pseudo'] = $data['login'];
            $_SESSION['iduser'] = $data['id'];
            if ($data['admin'] == "true")
            {
                $_SESSION['admin'] = true;
            }
            $today = date("j/n/Y - H:i:s");
            $requete = "UPDATE `user` SET `derniereconnect` = '".$today."'  WHERE id = '".$_SESSION['iduser']."'";
            $result = mysql_query($requete, $connection) or die($requete . " - " . mysql_error());
            $affichage = "<br> <br> Vous voila maintenent connecter sur ".$_SESSION['pseudo'].".";
            $connecteformhide = false;
            $member = true;
        }
        else
        {
            $affichage =  "Mot de passe non valide";
        }
    }


}
else
{
    $affichage =  "Nom d'utilisateur non valide";
}
?>
<meta http-equiv="refresh" content="5;URL=accueil.astucepourtous.html" />
Petit détail : on met $var = true et non $var = "true" : c'est un booléen, pas une chaine de caractère. Le seul auquel j'ai laissé les guillemets, c'est celui en provenance de la base de données.

Teste déjà ça.

par Invité » 13 sept. 2007, 20:12

Personne ne peut m'aider?

par SniP_78 » 13 sept. 2007, 18:23

Voila la page avec le PHP info:

http://www.astucepourtous.fr/test3.php

par Ryle » 13 sept. 2007, 18:02

Essaye d'ajouter un phpinfo() dans une de tes pages de test et regarde ce qui est indiqué au niveau du modules des sessions... on y verra peut être quelque chose ?

par Invité » 13 sept. 2007, 17:43

Euh pour ma part lorsque je lance test.php puis test2.php j'ai rien qui s'affiche...

et si tu virais le @ devant le session_start() ("un message d'erreur étant fait pour indiquer les erreurs" - dixit ouckileou :)), que tu évitais d'utiliser les short open tags "<?" et leur préférais un "<?php" normal ?

Je ne connais pas 1&1, mais ne faut il pas créer un dossier "sessions" à la racine du site comme chez beaucoup d'autres hébergeurs ?

C'est sa le problème, les page test.php, le code est pas faut et sa ne marche pas, les session ne marche pas sur l'hébergement alors qui y'a une semaine tous marché et je n'est rien touché depuis.

J'ai fait tous ce que tu a dit, et rien ne change, je ne comprend pas.

ps1: Les faute d'orthographe je les corrigerai après
ps2: Je répète que toute les page de mon site on comme première ligne:
<? 
@session_start();
 
 
if($_SESSION["iduser"] == "" and $_SESSION["pseudo"] == "")
{       
 
$member = "false";
}
else
{
$member = "true";
}
 
?>