php4 -> php5 probleme de session

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 : php4 -> php5 probleme de session

par manuzed » 04 juil. 2006, 12:09

la reponse était:
pour php5 les short tags ne fonctionnent pas: <?php pour ouvrir le code et non <?

:oops:

Merci pour les pistes de reflexion

par Invité » 03 juil. 2006, 22:04

Mon probleme a legerement evolué depuis mais reste présent:
j'ai essayé sur une autre machine WAMP5 et même probleme.
Alors j'ai viré session_register mais ca n'a rien changé.

En fait ce n'est pas un probleme de session puisque aucune requete ne passe vraiment alors qu'il m'indique une connexion OK avec ce code :
<?php
// ON inclut le fichier de configuration
$server = "localhost";
$user = "utilisateur";
$pass = "utilisateur";

// On se connecte à notre serveur Sql methode p291
$lien= mysql_connect($server,$user,$pass);
if (!lien){
echo "impossible";
}
else
{
echo "connexion OK";
}

// Sélection BD
$lien=mysql_select_db('add');
if (!lien){
echo "impossible";
}
else
{
echo "<br />base OK";
}
$retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM sondage1") or die ("impossible requete");
$data = mysql_fetch_array($retour);
$data=$data['nbre_entrees'];
?>
<p>Merci pour les <? echo $data; ?> votes enregistrés dans cette table.</p>
<h3>Voici le résultat de vos Votes!</h3>

<?php
//Nombre de vote 1
$sql1 = mysql_query("SELECT COUNT(*) AS nbre_vote1 FROM sondage1 where vote='1'");
$retour1 = mysql_fetch_array($sql1);
?>
<br />Trop cool : <? echo $retour1['nbre_vote1'];
Et comme d'habitude avec easyphp tout est ok

Alors à mon avis c'est mon code qui est bon pour le php4 mais pas php5?

par jeff » 03 juil. 2006, 20:33

salut

je ne sais pas si c'est une erreur de frappe mais mysql_numrows n'existe pas (mysql_num_rows);
oubli la fonction session_register
comment demarre php5??
est ce que les config(php.ini) entre php4 et php5 sont identique??

l'ouverture de la session peut ce faire en haut de la page
que donne var_dump($_SESSION)

php4 -> php5 probleme de session

par keller » 03 juil. 2006, 14:36

Bonjour,

Petit historique avant la question,
j'ai fait un site en php/mysql avec formulaire, mot de passe et tout le toutim...
Tout marche niquel... En fait tout marchait niquel quand j'etais sous easyphp (apache 1.3 et php4)

Voulant pousser le vice plus loin, j'ai installé apache 2, php5, mysql 4.1.2(?) et bien sur phpmyadmin.
Il semble que tout fonctionne correctement, mon phpinfo() s'affiche niquel. J'ai installé ma base de données avec
phpmyadmin.
Sur mon site, il y a donc un formulaire ou on rentre le login et le Mot de Passe, qui renvoie vers membres_identification.php et c'est la mon probleme. Depuis mes changements de config (php5?)
lorsque je valide j'arrive sur une page blanche SANS AUCUNE ERREUR et c'est terminé!
Je me suis dit que code était bon en php4 mais pas en en php5 peut etre.
Voici mon code d'identification (a supposer que ce soit cela l'explication!):
<?php  
 
include ("connexion.php" );
 
//passage des variables en variables courtes
$login = $_POST['login'];
$pass = $_POST['pass'];
 
// On selectionne quand le champ login correspond au login entré
// et le champ passe au pass entré.
$sql = "SELECT * FROM liste_membres WHERE login='$login' and pass=sha1('$pass')";
 
// On execute la requête de selection
$resultat = mysql_query($sql);
 
// On compte le nombre de ligne des resultats
// 1 : si valide ou 0 si aucun login ne correspond
$exist = mysql_numrows($resultat);
 
// Si la variable $exist = 0 --> login inexistant ou mauvais mot de passe
if(!$exist) {
    // On affiche ce message d'erreur
    echo "<h1>Veuillez vérifier vos données</h1>";
     
    // On inclut le formulaire d'identification
    include("membres_form_identification.php" );
}
 
// Sinon, si le login et pass sont valides
else {
 
 // On ouvre la session
 session_start();
 
 // On enregistre la variable login qu'on fera passer sur ttes les pages
 session_register("login" );
 
 //on incremente la variable de session avec la valeur entrée par l'utilisateur dans le formulaire
 $_SESSION['login']=$login;
 
 //On incrémente la table historique des connexions
 
 $sql = "SELECT * FROM historique_connectes WHERE login='$login' ";
 
 // On execute la requête de selection
 $resultat = mysql_query($sql);
 
 // On compte le nombre de ligne des resultats
 // 1 : si valide ou 0 si aucun login ne correspond
 $exist = mysql_numrows($resultat);
 
 // On affiche
 ?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>ACCUEIL</title>
       <link href="styles/membres.css" rel="stylesheet" type="text/css">
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   </head>
   <body>
   
<div id="en_tete">
   
</div>
 
<div id="menu">
<?php
// Puis on inclue le menu
include("membres_menu.php" );
?>
</div>
 
<div id="corps">
ICI mon site
 
</div>
 
<div id="pied_de_page">
</div>
 
 
 <?// Si la variable $exist = 0 --> le login se connecte pour la premiere fois
 if(!$exist)
  {    // On incrémente la table
   
  echo "<h1>Ceci est votre premiere connexion!</h1>";
  $sql = "INSERT INTO historique_connectes VALUES('$login',now(),curtime(),'1')";
  mysql_query($sql);
  }
 else
  {
  $sql="select * from historique_connectes where login='$login'";
  $resultat=mysql_query($sql);
  $historique = mysql_fetch_array($resultat);
  $nombre=++ $historique['nombre']; //On incrémente le nombre de connexion  de 1 à chaque connexion
  $jour=$historique['date']; //Variables courtes
  $heure=$historique['heure'];
  echo "<div class='centre'><p>Votre derniere connexion était le $jour à $heure. <br />";
  echo "Ceci est votre $nombre ème connexion à mon site ouaib.</p></div>";
   
  $sql="UPDATE historique_connectes SET date=now(),heure=curtime(), nombre='$nombre' WHERE login='$login'";
  mysql_query($sql);
  }
 
}//fermeture du else ou le login et pass sont valides
?>