Les sessions php

Fermé
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 - Modifié par Mickael86480 le 10/01/2012 à 15:54
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 - 17 janv. 2012 à 15:19
Bonjour, je dois développer une zone membre d'un site, pour cela j'ai décidé de mettre en place des sessions php, seulement c'est la première fois que je fais cela et je ne sais pas par où commencer. Je déjà commencé à le développer mais je ne mis retrouve pas. Donc pour accéder à cette zone membre l'utilisateur doit s'identifiant via un formulaire s'il a un compte il est automatiquement redirigé vers une autre page où j'affiche un " Bonjour toto " mais au lieu d'afficher cela j'affiche "Bonjour " donc ma variable est vide, j'ai d'abord pensé que mon POST du formulaire précédent n'était pas bon mais après vérification le problème ne vient pas de là alors je pense que cela vient des sessions php mais comme c'est flou pour moi je ne sais pas où est l'erreur, donc je fais appelle à vous. merci de m'aider.



A voir également:

18 réponses

catstrike Messages postés 210 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 30 novembre 2012 7
10 janv. 2012 à 15:56
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
10 janv. 2012 à 15:58
Bonjour,

Montre nous ton code?
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
Modifié par Mickael86480 le 10/01/2012 à 16:07
Ok voici je code de la page d'authentification :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>S'identifier</title>

<link href="plan.css" rel="stylesheet" type="text/css">
</head> <STYLE type="text/css"> </STYLE>
<body bgcolor="#ffffaa" class=cor>
<div class="cor3 largeur">

<?php
include ("connection.php");

echo'<form method="POST"> <center><br>Votre pseudo est : <input type="text" name="id"><br><br>
Votre mot de passe est : <input type="password" name="mdp"><br><br>
<input type="hidden" name="id" value='.$_POST['id'].'>


<input type="submit" name="bouton" value="Me connecter"></center>
</form>';
// <input type="hidden" name="mdp" value='.$_POST['mdp'].'>


$_SESSION['pseudo'] = $_POST['id'];
$_SESSION['mdp'] = $_POST['mdp']

if(isset($_SESSION['pseudo']))
{
$user = $_SESSION['pseudo'];
$mdp = $_SESSION['mdp'];
}
$requete = "SELECT * FROM quizz WHERE identifiant like ('".$user."') and mdp like ('".$mdp."')";
$query = mysql_query($requete)or die(mysql_error());
$nb = mysql_num_rows($query);
if(($_SESSION['pseudo']) && ($_SESSION['mdp'])){
if($nb == 0) echo'<center><b><br>Identifiant et/ou mot de passe icorrect</b></center>';
}
while ($data = mysql_fetch_array($query)){
define("USER", $_POST['id']);
define("PASS", $_POST['mdp']);

if(isset($_SESSION['pseudo']) && isset($_SESSION['mdp']))
{
$user = $_SESSION['pseudo'];
$pass = $_SESSION['mdp'];
if($user == USER && $pass == PASS)
{
$_SESSION['pseudo'] = USER;

echo "<script language=\"JavaScript\">";
echo "top.location.replace ('index2.html') ;";
echo "</script>";
}
else
{
echo'<center> <b>Identifiant ou mot de passe incorrect !</b></center>';
}

}
}
?>
</body>
</html>

et voici la deuxième page :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Acceuil</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="HAPedit 2.6">
<link href="plan.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#ffffaa" id=top0 style="" class=cor>
<?php

include ('connection.php');
$id = $_POST['id'];
$mdp = $_SESSION['mdp'];
?><div class="cor3 largeur">
<?php
$requete = "SELECT nb_hab,sup FROM pays";
$query = mysql_query($requete) or (mysql_error());

while($tableau = mysql_fetch_array($query)){

$nombrehab = str_replace(" ", "", $tableau['nb_hab']);
$nombre = intval($nombrehab);
$nombretotal = $nombretotal + $nombre;

$sup = str_replace(" ", "", $tableau['sup']);
$superficie = intval($sup);
$superficietotal = $superficietotal + $superficie;

}
//nombre d'habitant au total
//floor() supprime les chiffres après la virgule sans faire d'arrondi
$miliard = Floor($nombretotal/1000000000);
$million = Floor($nombretotal/1000000);
$mille = Floor($nombretotal/1000);
$cent = Floor($nombretotal);

$million = str_replace($miliard, "", $million);

$mille = str_replace($miliard, "", $mille);
$mille = str_replace($million, "", $mille);

$cent = str_replace($miliard, "", $cent);
$cent = str_replace($million, "", $cent);
$cent = str_replace($mille, "", $cent);

//superficie total
$superficie1 = Floor($superficietotal/1000000);
$superficie2 = Floor($superficietotal/1000);
$superficie3 = Floor($superficietotal);

$millesup = str_replace($superficie1, "", $superficie2);

$centsup = str_replace($superficie1, "", $superficie3);
$centsup = str_replace($superficie2, "", $superficie3);

//rapport nb_hab/km²
$rapport = $nombretotal / $superficietotal;
$rapport = round($rapport, 2);

//nombre de pays
$requete = "SELECT nom_pays FROM pays";
$query = mysql_query($requete) or die(mysql_error());
$nb = mysql_num_rows($query);

//nombre de pays en Afrique
$requeteaf = "SELECT * FROM pays WHERE continent LIKE 'Afrique'";
$queryaf = mysql_query($requeteaf) or die(mysql_error());
$nbaf = mysql_num_rows($queryaf);
//nombre de pays en Asie
$requeteas = "SELECT * FROM pays WHERE continent LIKE 'Asie'";
$queryas = mysql_query($requeteas) or die(mysql_error());
$nbas = mysql_num_rows($queryas);
//nombre de pays en Amerique
$requeteam = "SELECT * FROM pays WHERE continent LIKE 'Amerique'";
$queryam = mysql_query($requeteam) or die(mysql_error());
$nbam = mysql_num_rows($queryam);
//nombre de pays en Europe
$requetee = "SELECT * FROM pays WHERE continent LIKE 'Europe'";
$querye = mysql_query($requetee) or die(mysql_error());
$nbe = mysql_num_rows($querye);
//nombre de pays en Océanie
$requeteo = "SELECT * FROM pays WHERE continent LIKE 'Oceanie'";
$queryo = mysql_query($requeteo) or die(mysql_error());
$nbo = mysql_num_rows($queryo);

while($tableauaf = mysql_fetch_array($queryaf)){

$nombrehabaf = str_replace(" ", "", $tableauaf['nb_hab']);
$nombrehabitantaf = intval($nombrehabaf);
$nombretotalaf = $nombretotalaf + $nombrehabitantaf;
/*
if($nombrehabitantaf > $payspluspeuple){
$payspluspeuple = $nombrehabitantaf;
$payspluspeuple2 = (string) $payspluspeuple ;
} */
$sup = str_replace(" ", "", $tableauaf['sup']);
$superficie = intval($sup);
$suptotalaf = $suptotalaf + $superficie;
}
//rapport nb_hab/km²
$rapportafrique = $nombretotalaf / $suptotalaf;
$rapportafrique = round($rapportafrique, 2);
//nombre d'habitant en Afrique
$miliardaf = Floor($nombretotalaf/1000000000);
$millionaf = Floor($nombretotalaf/1000000);
$milleaf = Floor($nombretotalaf/1000);
$centaf = Floor($nombretotalaf);

$millionaf = str_replace($miliardaf, "", $millionaf);

$milleaf = str_replace($miliardaf, "", $milleaf);
$milleaf = str_replace($millionaf, "", $milleaf);

$centaf = str_replace($miliardaf, "", $centaf);
$centaf = str_replace($millionaf, "", $centaf);
$centaf = str_replace($milleaf, "", $centaf);

//superficie Afrique
$millionsupaf = Floor($suptotalaf/1000000);
$millesupaf = Floor($suptotalaf/1000);
$centsupaf = Floor($suptotalaf);

$millesupaf = str_replace($millionsupaf, "", $millesupaf);

$centsupaf = str_replace($millionsupaf, "", $centsupaf);
$centsupaf = str_replace($millesupaf, "", $centsupaf);
//fin afrique
while($tableauas = mysql_fetch_array($queryas)){

$nombrehabas = str_replace(" ", "", $tableauas['nb_hab']);
$nombrehabitantas = intval($nombrehabas);
$nombretotalas = $nombretotalas + $nombrehabitantas;

$sup = str_replace(" ", "", $tableauas['sup']);
$superficie = intval($sup);
$suptotalas = $suptotalas + $superficie;
}
//rapport nb_hab/km²
$rapportasie = $nombretotalas / $suptotalas;
$rapportasie = round($rapportasie, 2);
//nombre d'habitant en Asie
$miliardas = Floor($nombretotalas/1000000000);
$millionas = Floor($nombretotalas/1000000);
$milleas = Floor($nombretotalas/1000);
$centas = Floor($nombretotalas);

$millionas = str_replace($miliardas, "", $millionas);

$milleas = str_replace($miliardas, "", $milleas);
$milleas = str_replace($millionas, "", $milleas);

$centas = str_replace($miliardas, "", $centas);
$centas = str_replace($millionas, "", $centas);
$centas = str_replace($milleas, "", $centas);

//superficie Asie
$millionsupas = Floor($suptotalas/1000000);
$millesupas = Floor($suptotalas/1000);
$centsupas = Floor($suptotalas);

$millesupas = str_replace($millionsupas, "", $millesupas);

$centsupas = str_replace($millionsupas, "", $centsupas);
$centsupas = str_replace($millesupas, "", $centsupas);
//fin asie
while($tableauam = mysql_fetch_array($queryam)){

$nombrehabam = str_replace(" ", "", $tableauam['nb_hab']);
$nombrehabitantam = intval($nombrehabam);
$nombretotalam = $nombretotalam + $nombrehabitantam;

$sup = str_replace(" ", "", $tableauam['sup']);
$superficie = intval($sup);
$suptotalam = $suptotalam + $superficie;
}
//rapport nb_hab/km²
$rapportamerique = $nombretotalam / $suptotalam;
$rapportamerique = round($rapportamerique, 2);
//nombre d'habitant en Amérique
$millionam = Floor($nombretotalam/1000000);
$milleam = Floor($nombretotalam/1000);
$centam = Floor($nombretotalam);

$millionam = str_replace($miliardam, "", $millionam);

$milleam = str_replace($millionam, "", $milleam);

$centam = str_replace($millionam, "", $centam);
$centam = str_replace($milleam, "", $centam);

//superficie Amérique
$millionsupam = Floor($suptotalam/1000000);
$millesupam = Floor($suptotalam/1000);
$centsupam = Floor($suptotalam);

$millesupam = str_replace($millionsupam, "", $millesupam);

$centsupam = str_replace($millionsupam, "", $centsupam);
$centsupam = str_replace($millesupam, "", $centsupam);
//fin amérique
while($tableaue = mysql_fetch_array($querye)){

$nombrehabe = str_replace(" ", "", $tableaue['nb_hab']);
$nombrehabitante = intval($nombrehabe);
$nombretotale = $nombretotale + $nombrehabitante;

$sup = str_replace(" ", "", $tableaue['sup']);
$superficie = intval($sup);
$suptotale = $suptotale + $superficie;
}
//rapport nb_hab/km²
$rapporteurope = $nombretotale / $suptotale;
$rapporteurope = round($rapporteurope, 2);
//nombre d'habitant en Europe
$miliarde = Floor($nombretotale/1000000000);
$millione = Floor($nombretotale/1000000);
$millee = Floor($nombretotale/1000);
$cente = Floor($nombretotale);

$millione = str_replace($miliarde, "", $millione);

$millee = str_replace($miliarde, "", $millee);
$millee = str_replace($millione, "", $millee);

$cente = str_replace($miliarde, "", $cente);
$cente = str_replace($millione, "", $cente);
$cente = str_replace($millee, "", $cente);

//superficie Europe
$millionsupe = Floor($suptotale/1000000);
$millesupe = Floor($suptotale/1000);
$centsupe = Floor($suptotale);

$millesupe = str_replace($millionsupe, "", $millesupe);

$centsupe = str_replace($millionsupe, "", $centsupe);
$centsupe = str_replace($millesupe, "", $centsupe);
//fin europe
while($tableauo = mysql_fetch_array($queryo)){

$nombrehabo = str_replace(" ", "", $tableauo['nb_hab']);
$nombrehabitanto = intval($nombrehabo);
$nombretotalo = $nombretotalo + $nombrehabitanto;

$sup = str_replace(" ", "", $tableauo['sup']);
$superficie = intval($sup);
$suptotalo = $suptotalo + $superficie;
}
//rapport nb_hab/km²
$rapportoceanie = $nombretotalo / $suptotalo;
$rapportoceanie = round($rapportoceanie, 2);
//nombre d'habitant en Europe
$miliardo = Floor($nombretotalo/1000000000);
$milliono = Floor($nombretotalo/1000000);
$milleo = Floor($nombretotalo/1000);
$cento = Floor($nombretotalo);

$milliono = str_replace($miliardo, "", $milliono);

$milleo = str_replace($miliardo, "", $milleo);
$milleo = str_replace($milliono, "", $milleo);

$cento = str_replace($miliardo, "", $cento);
$cento = str_replace($milliono, "", $cento);
$cento = str_replace($milleo, "", $cento);

//superficie Europe
$millionsupo = Floor($suptotalo/1000000);
$millesupo = Floor($suptotalo/1000);
$centsupo = Floor($suptotalo);

$millesupo = str_replace($millionsupo, "", $millesupo);

$centsupo = str_replace($millionsupo, "", $centsupo);
$centsupo = str_replace($millesupo, "", $centsupo);
/*
$requeteafrique = "SELECT * FROM pays WHERE nb_hab LIKE '".$payspluspeuple2."'";
$requete2 = mysql_query($requeteafrique) or die(mysqlerror());
$tableauafrique = mysql_fetch_array($requete2);
<b>Pays le plus peulé du continent :</b> '.$tableauafrique['nom_pays'].' avec '.$payspluspeuple.' habitants
*/
$requete = "SELECT * FROM pays WHERE independant LIKE 'non'";
$requete2 = mysql_query($requete) or die(mysqlerror());
$nb_non_ind = mysql_num_rows($requete2);

echo'<p><center><div class="pps">
Bonjour '.$id.', merci de vous êtes connecté.<br><br>
<b>Voici quelques informations intéressantes :</b><br></div></center>
<div class="pps">
<b>Nombres d\'habitants total :</b> '.$miliard.' '.$million.' '.$mille.' '.$cent.'<br>
<b>Superficie totale des terres habitables émergées :</b> '.$superficie1.' '.$millesup.' '.$centsup.' km²<br>
<b>Rapport :</b> '.$rapport.' habitants / km²</div>
<div class="pps">
<b>Nombres de continents : </b>5<br>
<b>Nombres de pays :</b> '.$nb.' dont '.$nb_non_ind.' ne sont pas reconnus comme indépendants<br></div>
<div class="pps">
<center><b>Afrique</b></center>
<b>Superficie total du continent :</b> '.$millionsupaf.' '.$millesupaf.' '.$centsupaf.' km²<br>
<b>Nombres d\'habitants :</b> '.$miliardaf.' '.$millionaf.' 1'.$milleaf.' 1'.$centaf.'<br>
<b>Rapport :</b> '.$rapportafrique.' habitants / km² <br>
<b>Nombres de pays :</b> '.$nbaf.'<br>
<b>Littoraux :</b> Océan Atlantique, Océan Indien et Mer Méditerranée
</div>
<div class="pps">
<center><b>Asie</b></center>
<b>Superficie total du continent :</b> '.$millionsupas.' '.$millesupas.' '.$centsupas.' km²<br>
<b>Nombres d\'habitants :</b> '.$miliardas.' '.$millionas.' '.$milleas.' '.$centas.'<br>
<b>Rapport :</b> '.$rapportasie.' habitants / km² <br>
<b>Nombres de pays :</b> '.$nbas.'<br>
<b>Littoraux :</b> Océan Pacifique et Océan Indien
</div>
<div class="pps">
<center><b>Amérique</b></center>
<b>Superficie total du continent :</b> '.$millionsupam.' '.$millesupam.' '.$centsupam.' km²<br>
<b>Nombres d\'habitants :</b> '.$millionam.' '.$milleam.' '.$centam.'<br>
<b>Rapport :</b> '.$rapportamerique.' habitants / km² <br>
<b>Nombres de pays :</b> '.$nbam.'<br>
<b>Littoraux :</b> Océan Pacifique et Océan Atlantique
</div>
<div class="pps">
<center><b>Europe</b></center>
<b>Superficie total du continent :</b> '.$millionsupe.' '.$millesupe.' '.$centsupe.' km²<br>
<b>Nombres d\'habitants :</b> '.$millione.' '.$millee.' '.$cente.'<br>
<b>Rapport :</b> '.$rapporteurope.' habitants / km² <br>
<b>Nombres de pays :</b> '.$nbe.'<br>
<b>Littoraux :</b> Océan Atlantique et Mer Méditerranée
</div>
<div class="pps">
<center><b>Océanie</b></center>
<b>Superficie total du continent :</b> '.$millionsupo.' '.$millesupo.' '.$centsupo.' km²<br>
<b>Nombres d\'habitants :</b> '.$milliono.' '.$milleo.' '.$cento.'<br>
<b>Rapport :</b> '.$rapportoceanie.' habitants / km² <br>
<b>Nombres de pays :</b> '.$nbo.'<br>
<b>Littoraux :</b> Océan Indien et Océan Pacifique
</div>
</p>';
?>
</div>
</body>
</html>
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
10 janv. 2012 à 16:15
Ajoute
<?php session_start(); ?>

au début de tes pages, avant tout code html.
0

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

Posez votre question
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
10 janv. 2012 à 16:17
Ok voici ce que j'ai rajouté au début de ma page :

<?php
// On démarre la session AVANT d'écrire du code HTML
session_start();

$_SESSION['pseudo'] = $_POST['id'];
?>

mais rien n'a changé
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
10 janv. 2012 à 16:24
Mais ça à la place pour voir. Il t'affiche quoi?
<?php
// On démarre la session AVANT d'écrire du code HTML
session_start();
echo "1";
echo $_POST['id'];
echo "2";
$_SESSION['pseudo'] = $_POST['id'];
echo "3";
echo $_SESSION['pseudo'];
echo "4";
?> 
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
Modifié par Mickael86480 le 10/01/2012 à 18:40
Je mets ça dans que page? Celle de connexion ou dans la page de redirection?
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
10 janv. 2012 à 18:52
Dans la seconde, c'est censé utiliser le POST récupéré de la première, et le stocker dans la variable SESSION.
Avec des affichages intermédiaires pour vérifier le bon déroulement de l'opération.
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
10 janv. 2012 à 19:00
J'ai des erreurs :

Warning: session_start() [function.session-start]: open(/mnt/104/sdb/b/4/mickael.bernaudeau/sessions/sess_9a563f4961c07c340503175213684a30, O_RDWR) failed: No such file or directory (2) in /mnt/104/sdb/b/4/mickael.bernaudeau/acceuil2.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/104/sdb/b/4/mickael.bernaudeau/acceuil2.php:3) in /mnt/104/sdb/b/4/mickael.bernaudeau/acceuil2.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/104/sdb/b/4/mickael.bernaudeau/acceuil2.php:3) in /mnt/104/sdb/b/4/mickael.bernaudeau/acceuil2.php on line 3
1234

Warning: Unknown(): open(/mnt/104/sdb/b/4/mickael.bernaudeau/sessions/sess_9a563f4961c07c340503175213684a30, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/104/sdb/b/4/mickael.bernaudeau/sessions) in Unknown on line 0
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
10 janv. 2012 à 22:22
Tu n'as pas écris le code que je t'ai indiqué avant le code HTML à priori.

Et surtout, lis ce sujet, la résolution de l'erreur devrait être la même pour toi: créer un dossier "sessions" => https://forums.commentcamarche.net/forum/oldest/2741726-php-session-start-bug
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
Modifié par Mickael86480 le 10/01/2012 à 22:56
Ok donc j'ai créé le dossier sessions et je n'ai plus d'erreur, cependant j'ai toujours rien d'afficher, ou plutôt j'ai "Bonjour " au lieu de 'Bonjour toto". De plus, il mets affiché 1234 comme attendu
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
10 janv. 2012 à 23:01
Tu as utilisé ton formulaire?
Parce que là, le problème ne vient pas des sessions, mais de ta variable $_POST qui n'arrive pas.
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
10 janv. 2012 à 23:13
ok mais je ne vois pas où peut-être l'erreur
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
10 janv. 2012 à 23:21
Veux-tu que je reposte mes lignes de codes?
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
10 janv. 2012 à 23:50
Je ne vois pas où est mon erreur voici mon formulaire :

echo'<form method="POST"> <center><br>Votre pseudo est : <input type="text" name="id"><br><br>
Votre mot de passe est : <input type="text" name="mdp"><br><br>
<input type="hidden" name="id2" value='.$_POST['id'].'>
<input type="submit" name="bouton" value="Me connecter"></center>
</form>';
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
11 janv. 2012 à 07:20
Hop hop hop, je viens de voir...

T'as pas compris comment marche un formulaire :)
Ta balise <form> doit avoir un paramètre "action":
<form method="POST" action="cible.php">

Ensuite, tu ne peux pas mettre de code PHP dans du HTML, ce code ci est donc faux:
<input type="hidden" name="id2" value='.$_POST['id'].'>

De plus on a pour habitude de mettre les mots de passe en champ "password".

En fait, les codes respectifs de tes deux pages doivent ressembler à ça:
--appel.html--
<form method="POST" action="cible.php"> 
Votre pseudo est : <input type="text" name="id"><br> 
Votre mot de passe est : <input type="password" name="mdp"><br>
<input type="submit" name="bouton" value="Me connecter">
</form>

--cible.php--
<?php
echo $_POST['id'];
echo "<br>";
echo $_POST['mdp"];
?>


Regarde bien cette page, et essaie de tout comprendre:
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/913099-transmettez-des-donnees-avec-les-formulaires
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
Modifié par Mickael86480 le 11/01/2012 à 12:37
Pour la première erreur que tu as vu , d'accord mais ce que je souhaite faire c'est juste après que l'utilisateur clique sur le bouton, "Me connecter", tester ce qu'il inscrit dans les zones de saisies de textes. Voir si le login et le mdp correspondent et sont existant dans ma bdd. Si c'est ok il passe à la page suivante sinon je lui signale l'erreur. Or, sauf erreur de ma part, si je mets "action=cible.php" je passe directement à la page suivante?

Et pour la seconde erreur, le password était mis mais je l'ai enlevé pour un teste et j'ai oublié de le remettre :)

De plus, je viens de rajouter à mon formulaire action=mapage.php, et ça fait ramer ma page et il ne m'affiche plus rien
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
11 janv. 2012 à 12:42
Non, tu n'as pas compris vraiment comment fonctionne le PHP.
Il est exécuté sur le serveur, tandis que le HTML est exécuté par le client. Et ta base de donnée est... sur le serveur.

En fait, tu dois faire ton formulaire sur une page 1. Tu mets "action=2.php". Quand tu cliques sur envoyer, les données qui sont sur le client deviennent des $_POST lors du traitement de 2.php. C'est là que tu fait tes vérifs, et si jamais c'est OK, tu renvoie vers une autre page 3.php qui affiche que c'est ok.
La page "action.php" est en fait une page de traitement des données, pas obligatoirement une page d'affichage. Elle peut bien sur afficher avec un code comme ça:
if $ok
{
echo "Connecté";
}
else
{
echo "erreur";
}


Tu ne peux pas traiter les données et vérifier une fois que la page est affichée, puisqu'elle est sur l'ordinateur du client, et que le code PHP est exécuté sur le serveur, que ta base de donnée est sur le serveur, et que tout ce qui se passe du coté du client n'est pas contrôlable par le serveur.
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
11 janv. 2012 à 12:48
D'accord, par contre comment ça se fait que ma page rame et n'affiche plus rien?
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
11 janv. 2012 à 13:01
Redonne les codes complet de tes deux pages =)
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
Modifié par Mickael86480 le 11/01/2012 à 13:28
ok donc voici je code de la page d'authentification :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> 
<head> 
<title>S'identifier</title> 

<link href="plan.css" rel="stylesheet" type="text/css"> 
</head>  <STYLE type="text/css">         </STYLE> 
<body bgcolor="#ffffaa" class=cor> 
<div class="cor3 largeur"> 

<?php 
include ("connection.php"); 

echo'<form method="POST" action="acceuil2.html"> <center><br>Votre pseudo est : <input type="text" name="id"><br><br> 
     Votre mot de passe est : <input type="text" name="mdp"><br><br> 
     <input type="submit" name="bouton" value="Me connecter"></center> 
     </form>'; 
         // <input type="hidden" name="mdp" value='.$_POST['mdp'].'> 

$_SESSION['pseudo'] = $_POST['id']; 
$_SESSION['mdp']   = $_POST['mdp']; 

if(isset($_SESSION['pseudo'])) 
    { 
     $user = $_SESSION['pseudo']; 
     $mdp = $_SESSION['mdp']; 
    } 
$requete = "SELECT * FROM quizz WHERE identifiant like ('".$user."') and mdp like ('".$mdp."')"; 
$query = mysql_query($requete)or die(mysql_error()); 
$nb = mysql_num_rows($query); 
if(($_SESSION['pseudo']) && ($_SESSION['mdp'])){ 
  if($nb == 0) echo'<center><b><br>Identifiant et/ou mot de passe icorrect</b></center>'; 
} 
while ($data = mysql_fetch_array($query)){ 
define("USER", $_POST['id']); 
define("PASS", $_POST['mdp']); 

        if(isset($_SESSION['pseudo']) && isset($_SESSION['mdp'])) 
            { 
                $user = $_SESSION['pseudo']; 
                $pass = $_SESSION['mdp']; 
                if($user == USER && $pass == PASS) 
                    { 
                        $_SESSION['pseudo'] = USER; 
                        
                             echo "<script language=\"JavaScript\">"; 
                             echo "top.location.replace ('index2.html') ;"; 
                             echo "</script>"; 
                    } 
                else 
                    { 
                        echo'<center> <b>Identifiant ou mot de passe incorrect !</b></center>'; 
                    } 
                
            } 
} 
?> 
</body> 
</html>


et la page après la connexion :

<?php 
// On démarre la session AVANT d'écrire du code HTML 
session_start(); 
echo "1"; 
echo $_POST['id2']; 
echo "2"; 
$_SESSION['pseudo'] = $_POST['id2']; 
echo "3"; 
echo $_SESSION['pseudo']; 
echo "4"; 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> 
<head> 
<title>Acceuil</title> 
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> 
<meta name="generator" content="HAPedit 2.6"> 
<link href="plan.css" rel="stylesheet" type="text/css"> 
</head> 
<body bgcolor="#ffffaa" id=top0 style="" class=cor> 
<?php 

include ('connection.php'); 
$id = $_SESSION['pseudo']; 
$mdp = $_SESSION['mdp']; 
?><div class="cor3 largeur"> 
<?php 
$requete = "SELECT nb_hab,sup FROM pays"; 
$query = mysql_query($requete) or (mysql_error()); 

while($tableau = mysql_fetch_array($query)){ 

$nombrehab = str_replace(" ", "", $tableau['nb_hab']); 
$nombre = intval($nombrehab); 
$nombretotal = $nombretotal + $nombre; 

$sup = str_replace(" ", "", $tableau['sup']); 
$superficie = intval($sup); 
$superficietotal = $superficietotal + $superficie; 

} 
//nombre d'habitant au total 
//floor() supprime les chiffres après la virgule sans faire d'arrondi 
$miliard = Floor($nombretotal/1000000000); 
$million = Floor($nombretotal/1000000); 
$mille = Floor($nombretotal/1000); 
$cent = Floor($nombretotal); 

$million = str_replace($miliard, "", $million); 

$mille = str_replace($miliard, "", $mille); 
$mille = str_replace($million, "", $mille); 
    
$cent = str_replace($miliard, "", $cent); 
$cent = str_replace($million, "", $cent); 
$cent = str_replace($mille, "", $cent); 

//superficie total 
$superficie1 = Floor($superficietotal/1000000); 
$superficie2 = Floor($superficietotal/1000); 
$superficie3 = Floor($superficietotal); 

$millesup = str_replace($superficie1, "", $superficie2); 
    
$centsup = str_replace($superficie1, "", $superficie3); 
$centsup = str_replace($superficie2, "", $superficie3); 

//rapport nb_hab/km² 
$rapport = $nombretotal / $superficietotal; 
$rapport = round($rapport, 2); 

//nombre de pays 
$requete = "SELECT nom_pays FROM pays"; 
$query = mysql_query($requete) or die(mysql_error()); 
$nb = mysql_num_rows($query); 

//nombre de pays en Afrique 
$requeteaf = "SELECT * FROM pays WHERE continent LIKE 'Afrique'"; 
$queryaf = mysql_query($requeteaf) or die(mysql_error()); 
$nbaf = mysql_num_rows($queryaf); 
//nombre de pays en Asie 
$requeteas = "SELECT * FROM pays WHERE continent LIKE 'Asie'"; 
$queryas = mysql_query($requeteas) or die(mysql_error()); 
$nbas = mysql_num_rows($queryas); 
//nombre de pays en Amerique 
$requeteam = "SELECT * FROM pays WHERE continent LIKE 'Amerique'"; 
$queryam = mysql_query($requeteam) or die(mysql_error()); 
$nbam = mysql_num_rows($queryam); 
//nombre de pays en Europe 
$requetee = "SELECT * FROM pays WHERE continent LIKE 'Europe'"; 
$querye = mysql_query($requetee) or die(mysql_error()); 
$nbe = mysql_num_rows($querye); 
//nombre de pays en Océanie 
$requeteo = "SELECT * FROM pays WHERE continent LIKE 'Oceanie'"; 
$queryo = mysql_query($requeteo) or die(mysql_error()); 
$nbo = mysql_num_rows($queryo); 

while($tableauaf = mysql_fetch_array($queryaf)){ 

$nombrehabaf = str_replace(" ", "", $tableauaf['nb_hab']); 
$nombrehabitantaf = intval($nombrehabaf); 
$nombretotalaf = $nombretotalaf + $nombrehabitantaf; 
/* 
if($nombrehabitantaf > $payspluspeuple){ 
 $payspluspeuple = $nombrehabitantaf; 
 $payspluspeuple2 = (string) $payspluspeuple ; 
} */ 
$sup = str_replace(" ", "", $tableauaf['sup']); 
$superficie = intval($sup); 
$suptotalaf = $suptotalaf + $superficie; 
} 
//rapport nb_hab/km² 
$rapportafrique = $nombretotalaf / $suptotalaf; 
$rapportafrique = round($rapportafrique, 2); 
//nombre d'habitant en Afrique 
$miliardaf = Floor($nombretotalaf/1000000000); 
$millionaf = Floor($nombretotalaf/1000000); 
$milleaf = Floor($nombretotalaf/1000); 
$centaf = Floor($nombretotalaf); 

$millionaf = str_replace($miliardaf, "", $millionaf); 

$milleaf = str_replace($miliardaf, "", $milleaf); 
$milleaf = str_replace($millionaf, "", $milleaf); 
    
$centaf = str_replace($miliardaf, "", $centaf); 
$centaf = str_replace($millionaf, "", $centaf); 
$centaf = str_replace($milleaf, "", $centaf); 

//superficie Afrique 
$millionsupaf = Floor($suptotalaf/1000000); 
$millesupaf = Floor($suptotalaf/1000); 
$centsupaf = Floor($suptotalaf); 

$millesupaf = str_replace($millionsupaf, "", $millesupaf); 
    
$centsupaf = str_replace($millionsupaf, "", $centsupaf); 
$centsupaf = str_replace($millesupaf, "", $centsupaf); 
//fin afrique 
while($tableauas = mysql_fetch_array($queryas)){ 

$nombrehabas = str_replace(" ", "", $tableauas['nb_hab']); 
$nombrehabitantas = intval($nombrehabas); 
$nombretotalas = $nombretotalas + $nombrehabitantas; 

$sup = str_replace(" ", "", $tableauas['sup']); 
$superficie = intval($sup); 
$suptotalas = $suptotalas + $superficie; 
} 
//rapport nb_hab/km² 
$rapportasie = $nombretotalas / $suptotalas; 
$rapportasie = round($rapportasie, 2); 
//nombre d'habitant en Asie 
$miliardas = Floor($nombretotalas/1000000000); 
$millionas = Floor($nombretotalas/1000000); 
$milleas = Floor($nombretotalas/1000); 
$centas = Floor($nombretotalas); 

$millionas = str_replace($miliardas, "", $millionas); 

$milleas = str_replace($miliardas, "", $milleas); 
$milleas = str_replace($millionas, "", $milleas); 
    
$centas = str_replace($miliardas, "", $centas); 
$centas = str_replace($millionas, "", $centas); 
$centas = str_replace($milleas, "", $centas); 

//superficie Asie 
$millionsupas = Floor($suptotalas/1000000); 
$millesupas = Floor($suptotalas/1000); 
$centsupas = Floor($suptotalas); 

$millesupas = str_replace($millionsupas, "", $millesupas); 
    
$centsupas = str_replace($millionsupas, "", $centsupas); 
$centsupas = str_replace($millesupas, "", $centsupas); 
//fin asie 
while($tableauam = mysql_fetch_array($queryam)){ 

$nombrehabam = str_replace(" ", "", $tableauam['nb_hab']); 
$nombrehabitantam = intval($nombrehabam); 
$nombretotalam = $nombretotalam + $nombrehabitantam; 

$sup = str_replace(" ", "", $tableauam['sup']); 
$superficie = intval($sup); 
$suptotalam = $suptotalam + $superficie; 
} 
//rapport nb_hab/km² 
$rapportamerique = $nombretotalam / $suptotalam; 
$rapportamerique = round($rapportamerique, 2); 
//nombre d'habitant en Amérique 
$millionam = Floor($nombretotalam/1000000); 
$milleam = Floor($nombretotalam/1000); 
$centam = Floor($nombretotalam); 

$millionam = str_replace($miliardam, "", $millionam); 

$milleam = str_replace($millionam, "", $milleam); 
    
$centam = str_replace($millionam, "", $centam); 
$centam = str_replace($milleam, "", $centam); 

//superficie Amérique 
$millionsupam = Floor($suptotalam/1000000); 
$millesupam = Floor($suptotalam/1000); 
$centsupam = Floor($suptotalam); 

$millesupam = str_replace($millionsupam, "", $millesupam); 
    
$centsupam = str_replace($millionsupam, "", $centsupam); 
$centsupam = str_replace($millesupam, "", $centsupam); 
//fin amérique 
while($tableaue = mysql_fetch_array($querye)){ 

$nombrehabe = str_replace(" ", "", $tableaue['nb_hab']); 
$nombrehabitante = intval($nombrehabe); 
$nombretotale = $nombretotale + $nombrehabitante; 

$sup = str_replace(" ", "", $tableaue['sup']); 
$superficie = intval($sup); 
$suptotale = $suptotale + $superficie; 
} 
//rapport nb_hab/km² 
$rapporteurope = $nombretotale / $suptotale; 
$rapporteurope = round($rapporteurope, 2); 
//nombre d'habitant en Europe 
$miliarde = Floor($nombretotale/1000000000); 
$millione = Floor($nombretotale/1000000); 
$millee = Floor($nombretotale/1000); 
$cente = Floor($nombretotale); 

$millione = str_replace($miliarde, "", $millione); 

$millee = str_replace($miliarde, "", $millee); 
$millee = str_replace($millione, "", $millee); 
    
$cente = str_replace($miliarde, "", $cente); 
$cente = str_replace($millione, "", $cente); 
$cente = str_replace($millee, "", $cente); 

//superficie Europe 
$millionsupe = Floor($suptotale/1000000); 
$millesupe = Floor($suptotale/1000); 
$centsupe = Floor($suptotale); 

$millesupe = str_replace($millionsupe, "", $millesupe); 
    
$centsupe = str_replace($millionsupe, "", $centsupe); 
$centsupe = str_replace($millesupe, "", $centsupe); 
//fin europe 
while($tableauo = mysql_fetch_array($queryo)){ 

$nombrehabo = str_replace(" ", "", $tableauo['nb_hab']); 
$nombrehabitanto = intval($nombrehabo); 
$nombretotalo = $nombretotalo + $nombrehabitanto; 

$sup = str_replace(" ", "", $tableauo['sup']); 
$superficie = intval($sup); 
$suptotalo = $suptotalo + $superficie; 
} 
//rapport nb_hab/km² 
$rapportoceanie = $nombretotalo / $suptotalo; 
$rapportoceanie = round($rapportoceanie, 2); 
//nombre d'habitant en Europe 
$miliardo = Floor($nombretotalo/1000000000); 
$milliono = Floor($nombretotalo/1000000); 
$milleo = Floor($nombretotalo/1000); 
$cento = Floor($nombretotalo); 

$milliono = str_replace($miliardo, "", $milliono); 

$milleo = str_replace($miliardo, "", $milleo); 
$milleo = str_replace($milliono, "", $milleo); 
    
$cento = str_replace($miliardo, "", $cento); 
$cento = str_replace($milliono, "", $cento); 
$cento = str_replace($milleo, "", $cento); 

//superficie Europe 
$millionsupo = Floor($suptotalo/1000000); 
$millesupo = Floor($suptotalo/1000); 
$centsupo = Floor($suptotalo); 

$millesupo = str_replace($millionsupo, "", $millesupo); 
    
$centsupo = str_replace($millionsupo, "", $centsupo); 
$centsupo = str_replace($millesupo, "", $centsupo); 
                                                    /* 
$requeteafrique = "SELECT * FROM pays WHERE nb_hab LIKE '".$payspluspeuple2."'"; 
$requete2 = mysql_query($requeteafrique) or die(mysqlerror()); 
$tableauafrique = mysql_fetch_array($requete2); 
 <b>Pays le plus peulé du continent :</b> '.$tableauafrique['nom_pays'].' avec '.$payspluspeuple.' habitants 
   */ 
$requete = "SELECT * FROM pays WHERE independant LIKE 'non'"; 
$requete2 = mysql_query($requete) or die(mysqlerror()); 
$nb_non_ind = mysql_num_rows($requete2); 

echo'<p><center><div class="pps"> 
     Bonjour '.$id.', merci de vous êtes connecté.<br><br> 
     <b>Voici quelques informations intéressantes :</b><br></div></center> 
     <div class="pps"> 
     <b>Nombres d\'habitants total :</b> '.$miliard.' '.$million.' '.$mille.' '.$cent.'<br> 
     <b>Superficie totale des terres habitables émergées :</b> '.$superficie1.' '.$millesup.' '.$centsup.' km²<br> 
     <b>Rapport :</b> '.$rapport.' habitants / km²</div> 
     <div class="pps"> 
     <b>Nombres de continents : </b>5<br> 
     <b>Nombres de pays :</b> '.$nb.' dont '.$nb_non_ind.' ne sont pas reconnus comme indépendants<br></div> 
     <div class="pps"> 
     <center><b>Afrique</b></center> 
     <b>Superficie total du continent :</b> '.$millionsupaf.' '.$millesupaf.' '.$centsupaf.' km²<br> 
     <b>Nombres d\'habitants :</b> '.$miliardaf.' '.$millionaf.' 1'.$milleaf.' 1'.$centaf.'<br> 
     <b>Rapport :</b> '.$rapportafrique.' habitants / km² <br> 
     <b>Nombres de pays :</b> '.$nbaf.'<br> 
     <b>Littoraux :</b> Océan Atlantique, Océan Indien et Mer Méditerranée 
     </div> 
     <div class="pps"> 
     <center><b>Asie</b></center> 
     <b>Superficie total du continent :</b> '.$millionsupas.' '.$millesupas.' '.$centsupas.' km²<br> 
     <b>Nombres d\'habitants :</b> '.$miliardas.' '.$millionas.' '.$milleas.' '.$centas.'<br> 
     <b>Rapport :</b> '.$rapportasie.' habitants / km² <br> 
     <b>Nombres de pays :</b> '.$nbas.'<br> 
     <b>Littoraux :</b> Océan Pacifique et Océan Indien 
     </div>                                          
     <div class="pps"> 
     <center><b>Amérique</b></center> 
     <b>Superficie total du continent :</b> '.$millionsupam.' '.$millesupam.' '.$centsupam.' km²<br> 
     <b>Nombres d\'habitants :</b> '.$millionam.' '.$milleam.' '.$centam.'<br> 
     <b>Rapport :</b> '.$rapportamerique.' habitants / km² <br> 
     <b>Nombres de pays :</b> '.$nbam.'<br> 
     <b>Littoraux :</b> Océan Pacifique et Océan Atlantique 
     </div>                                          
     <div class="pps"> 
     <center><b>Europe</b></center> 
     <b>Superficie total du continent :</b> '.$millionsupe.' '.$millesupe.' '.$centsupe.' km²<br> 
     <b>Nombres d\'habitants :</b> '.$millione.' '.$millee.' '.$cente.'<br> 
     <b>Rapport :</b> '.$rapporteurope.' habitants / km² <br> 
     <b>Nombres de pays :</b> '.$nbe.'<br> 
     <b>Littoraux :</b> Océan Atlantique et Mer Méditerranée 
     </div>                                          
     <div class="pps"> 
     <center><b>Océanie</b></center> 
     <b>Superficie total du continent :</b> '.$millionsupo.' '.$millesupo.' '.$centsupo.' km²<br> 
     <b>Nombres d\'habitants :</b> '.$milliono.' '.$milleo.' '.$cento.'<br> 
     <b>Rapport :</b> '.$rapportoceanie.' habitants / km² <br> 
     <b>Nombres de pays :</b> '.$nbo.'<br> 
     <b>Littoraux :</b> Océan Indien et Océan Pacifique 
     </div> 
     </p>'; 
?> 
</div> 
</body> 
</html>
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
Modifié par Apatik le 11/01/2012 à 13:15
Quand tu postes du code, utilise la balise "code" s'il te plait (le bouton <> au dessus du champ pour écrire le message), c'est plus lair, et ça conserve l'indentation :).

Mais uniquement ce code dans la page appelée:

<?php 
// On démarre la session AVANT d'écrire du code HTML 
session_start(); 
echo "1"; 
echo $_POST['id2']; 
echo "2"; 
$_SESSION['pseudo'] = $_POST['id2']; 
echo "3"; 
echo $_SESSION['pseudo']; 
echo "4"; 
?> 

Live free, learn free, help free, Happy Hacking!
Plus que tout en informatique, l'erreur est humaine.
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
11 janv. 2012 à 13:27
J'ai fais ce que tu ma dis, c'est à dire j'ai mis le code que tu m'as donné et mis tout le reste en commentaire dans la 2e page mais rien n'a changé ça rame toujours et n'affiche rien
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
11 janv. 2012 à 16:26
Je précise que le site c'est mis a ramer quand j'ai rajouté le action=mapage.php à mon form
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
11 janv. 2012 à 16:44
C'est en local sur ton ordinateur, ou disponible sur le net? Tu peux m'envoyer un lien vers ta page? (En MP si jamais tu préfères)
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
17 janv. 2012 à 15:19
Donc j'ai résolu mon problème, il suffisait de détecter l'appui sur le bouton de validation dans la page suivante.

Maintenant ce que j'aimerai savoir c'est que si mon site est bien sécurisé donc j'aimerai pouvoir le tester mais je ne sais pas comment m'y prendre.

merci de votre aide
0