A voir également:
- [php/mysql pb] site vente en ligne
- Site de vente en ligne particulier - Guide
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Partager photos en ligne - Guide
- Aller à la ligne excel - Guide
51 réponses
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
13 juin 2006 à 22:54
13 juin 2006 à 22:54
Bonsoir,
J'avoue que j'ai du mal à te suivre !
Décidemment tu es têtue : tu y tiens à ton auto incrément dans la table article_com alors que je n'arrête pas de te dire qu'il n'en faut pas ! LOL
Ce qui m'amène à penser qu'on est pas en phase ...
Voilà ce que j'ai finalement compris :
1° L'utilisateur sélectionne un ou plusieurs articles : ceci constitue son panier.
2° Tu décides de sauver son panier directement dans MySQL dans la table article_com avant la validation de la commande.
On est bien d'accord qu'à ce niveau l'utilisateur à encore la possibilité de tout annuler voir de fermer carrement son navigateur , d' éteindre son PC, ou encore hélas de subir un bug Windows LOL
Ok : tu ajoutes tous les articles dans la table article_com
3° L'utilisateur confirme ses achats : tu l'identifies ou il s'inscrit puis ensuite tu créés la commande dans com_online que tu essais désespérément de rattacher à la table article_com
Mais là tu n'y arrives pas ...
Est-ce bien ca ?
J'avoue que j'ai du mal à te suivre !
Décidemment tu es têtue : tu y tiens à ton auto incrément dans la table article_com alors que je n'arrête pas de te dire qu'il n'en faut pas ! LOL
Ce qui m'amène à penser qu'on est pas en phase ...
Voilà ce que j'ai finalement compris :
1° L'utilisateur sélectionne un ou plusieurs articles : ceci constitue son panier.
2° Tu décides de sauver son panier directement dans MySQL dans la table article_com avant la validation de la commande.
On est bien d'accord qu'à ce niveau l'utilisateur à encore la possibilité de tout annuler voir de fermer carrement son navigateur , d' éteindre son PC, ou encore hélas de subir un bug Windows LOL
Ok : tu ajoutes tous les articles dans la table article_com
3° L'utilisateur confirme ses achats : tu l'identifies ou il s'inscrit puis ensuite tu créés la commande dans com_online que tu essais désespérément de rattacher à la table article_com
Mais là tu n'y arrives pas ...
Est-ce bien ca ?
Bonsoir
OUI , c'est tout a fait sa..lol oui je suis un tit peu tétue ..lol mais je demande qu'à évoluer..lol
et donc là tu m'as comprise : je veux que le num_com créer ds article_com soit repris par la table com_online , c'est pr sa que je croyais qu'il fallait faire auto-increment dans article_com.
Et le 2eme soucis c'est la session, j'arrive a enregistrer le login, mdp, email, mais aprés j'arrive pas a savoir si une session est ouverte mon code ne marche pas et sa ressemble a sa :
Et la il me met que je retourne tt le tps a la page d'inscription, meme si j'ai une session d'ouverte.
Voilà, mes deux GROS soucis, MERCI beaucoup de ta patience, et du temps que je te prend, c'est trés trés gentil !
J'espère que tu pourras continuer à m'aider, car j'en ai vraiment Besoin.
Merci d'avance et Bonne soirée.
OUI , c'est tout a fait sa..lol oui je suis un tit peu tétue ..lol mais je demande qu'à évoluer..lol
et donc là tu m'as comprise : je veux que le num_com créer ds article_com soit repris par la table com_online , c'est pr sa que je croyais qu'il fallait faire auto-increment dans article_com.
Et le 2eme soucis c'est la session, j'arrive a enregistrer le login, mdp, email, mais aprés j'arrive pas a savoir si une session est ouverte mon code ne marche pas et sa ressemble a sa :
session_start(); if (@$_SESSION['autoriser']!="ok") {include("utilisateur.php"); exit();} else....
Et la il me met que je retourne tt le tps a la page d'inscription, meme si j'ai une session d'ouverte.
Voilà, mes deux GROS soucis, MERCI beaucoup de ta patience, et du temps que je te prend, c'est trés trés gentil !
J'espère que tu pourras continuer à m'aider, car j'en ai vraiment Besoin.
Merci d'avance et Bonne soirée.
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
14 juin 2006 à 22:12
14 juin 2006 à 22:12
Bonsoir,
C'est normal que tu n'arrives pas à rattacher ton auto-incrément
de la table article_com ver com_online étant donné qu'il n'est pas unique !
En effet à chaque INSERT dans article_com MySQL te génére un nouvel auto-incrément et donc une nouvelle commande dans le champ article_com.num_cde.
Donc tu te retrouves avec autant de nr de commande que d'articles achetées : ca ne va pas !
Ton idée de sauvegarder le panier dans MySQL n'est pas mauvaise en soi mais comme tu peux t'en rendre compte c'est complexe.
La solution plus simple : sauvegarder le panier dans le session PHP et pas dans MySQL tant que l'utilisateur n'a pas validé sa commande. Bref un panier virtuel uniquement stocké dans la mémoire du serveur.
Ensuite lorsque l'utilisateur valide sa commande tu fais comme je te l'ai indiqué :
1°) Tu créés une nouvelle commande dans com_online : tu récupères le nr de la cde avec mysql_insert_id()
2°) Tu ajoutes chaque ligne commandée dans article_com en utilisant le nr de cde
Ce qui nous amène évidemment au problème des sessions
je ne sais pas pourquoi ta variable $_SESSION['autoriser'] ne contient pas "ok" : il faudrait que tu postes le code de "utilisateur.php"
Autrement l'utilisation des sessions est simple
Ex :
1° j'ai une page login.php qui demande un username + un password.
2° cette page appelle la page check_login.php qui vérifie que l'accès est autorisé et ajoute la variable "panier" dans $_SESSION[] et donne un lien vers une 3ème page
3° une troisième page security_level1.php n'est ensuite accessible que si le panier existe dans la session avec un username renseigné
Code
login.php
Ultra simple rien à dire
Page check_login.php
On vérifie que l'utilisateur est autorisé à accèder à la page et si c'est la cas on ajoute la variable "panier" (en fait un tableau dynamique) à la session
page security_level1.php
Test si le panier existe dans le session pour autoriser l'accès
Et le tout en live :
http://www.nobodysperfect.freesurf.fr/fleur2/login.php
le username est : fleur2
le password : flower
Une fois que tu as testé ferme toutes les fenêtres de ton navigateur (ceci met fin à la session), relance ton navaigateur puis essai d'afficher directement la page :
http://www.nobodysperfect.freesurf.fr/fleur2/security_level1.php
Est-ce plus clair ?
C'est normal que tu n'arrives pas à rattacher ton auto-incrément
de la table article_com ver com_online étant donné qu'il n'est pas unique !
En effet à chaque INSERT dans article_com MySQL te génére un nouvel auto-incrément et donc une nouvelle commande dans le champ article_com.num_cde.
Donc tu te retrouves avec autant de nr de commande que d'articles achetées : ca ne va pas !
Ton idée de sauvegarder le panier dans MySQL n'est pas mauvaise en soi mais comme tu peux t'en rendre compte c'est complexe.
La solution plus simple : sauvegarder le panier dans le session PHP et pas dans MySQL tant que l'utilisateur n'a pas validé sa commande. Bref un panier virtuel uniquement stocké dans la mémoire du serveur.
Ensuite lorsque l'utilisateur valide sa commande tu fais comme je te l'ai indiqué :
1°) Tu créés une nouvelle commande dans com_online : tu récupères le nr de la cde avec mysql_insert_id()
2°) Tu ajoutes chaque ligne commandée dans article_com en utilisant le nr de cde
Ce qui nous amène évidemment au problème des sessions
je ne sais pas pourquoi ta variable $_SESSION['autoriser'] ne contient pas "ok" : il faudrait que tu postes le code de "utilisateur.php"
Autrement l'utilisation des sessions est simple
Ex :
1° j'ai une page login.php qui demande un username + un password.
2° cette page appelle la page check_login.php qui vérifie que l'accès est autorisé et ajoute la variable "panier" dans $_SESSION[] et donne un lien vers une 3ème page
3° une troisième page security_level1.php n'est ensuite accessible que si le panier existe dans la session avec un username renseigné
Code
login.php
<html> <head> <title>Login</title> </head> <body> Procédure de connexion : <form action="check_login.php" method="post"> Username : <input type="text" id="username" name="username"><br /> Password : <input type="password" id="password" name="password"><br /> <input type="submit" value="Ok"> </form> </body> </html>
Ultra simple rien à dire
Page check_login.php
<?php session_start(); $access=false; if (isset($_POST["username"]) && isset($_POST["password"])) { // Normalement ici tu vérifies dans MySQL si l'utilisateur est autorisé ou non // et pas en "dur" comme ici ! $access = ($_POST["username"]=="fleur2") && ($_POST["password"]=="flower"); } if (!$access) { // On vide le panier ? Pas obligatoire ... if (isset($_SESSION["panier"])) $_SESSION["panier"] = array(); // Redirection vers page de login // On retourne sur la page login.php : il faut mettre l'url complète après Location: !!! header("Location: http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/login.php"); exit; } // Ici on démarre le panier $panier = array(); $panier["username"] = $_POST["username"]; $_SESSION["panier"]= $panier; ?> <html> <head> <title>Check login</title> </head> <body> Bonjour <?php echo $_POST["username"];?> vous êtes autorisé à accèder au contenu de cette page !<br /> <form action="security_level1.php" method="post"> <input type="submit" value="Accèder au niveau de sécurité 1"> </form> </body> </html>
On vérifie que l'utilisateur est autorisé à accèder à la page et si c'est la cas on ajoute la variable "panier" (en fait un tableau dynamique) à la session
page security_level1.php
<?php session_start(); //On vérifie que la variable "username" existe dans le panier lui-même dans la session $access=false; if (isset($_SESSION["panier"])) { $panier = $_SESSION["panier"]; if (isset($panier["username"]) && ($panier["username"] != "")) { $username=$panier["username"]; $access=true; } } if (!$access) { // Redirection vers page de login // On retourne sur la page login.php : il faut mettre l'url complète après Location: !!! header("Location: http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/login.php"); exit; } ?> <html> <head> <title>Security Level 1</title> </head> <body> Bonjour <?php echo $username;?> : vous êtes au niveau de sécurité 1 </body> </html>
Test si le panier existe dans le session pour autoriser l'accès
Et le tout en live :
http://www.nobodysperfect.freesurf.fr/fleur2/login.php
le username est : fleur2
le password : flower
Une fois que tu as testé ferme toutes les fenêtres de ton navigateur (ceci met fin à la session), relance ton navaigateur puis essai d'afficher directement la page :
http://www.nobodysperfect.freesurf.fr/fleur2/security_level1.php
Est-ce plus clair ?
Re bonsoir,
Oui , un peu plus clair je vais essayer de faire la session demain avec tes conseils, merci et je te dirai sa demain.
Autrement, pour "La solution plus simple : sauvegarder le panier dans le session PHP et pas dans MySQL tant que l'utilisateur n'a pas validé sa commande Bref un panier virtuel uniquement stocké dans la mémoire du serveur", tu fais comment..? avec des cookyes..
Autrement mon idée n'est pas mauvaise, mais j'ai l'impression qu'elle est plus compliqué..lol enfin je vais bien réussir par y arriver j'espère.lol et donc je retire l'auto incrémentde article_com pr le mettre dans com_online pr le num_com..
Merci d'avance.
Oui , un peu plus clair je vais essayer de faire la session demain avec tes conseils, merci et je te dirai sa demain.
Autrement, pour "La solution plus simple : sauvegarder le panier dans le session PHP et pas dans MySQL tant que l'utilisateur n'a pas validé sa commande Bref un panier virtuel uniquement stocké dans la mémoire du serveur", tu fais comment..? avec des cookyes..
Autrement mon idée n'est pas mauvaise, mais j'ai l'impression qu'elle est plus compliqué..lol enfin je vais bien réussir par y arriver j'espère.lol et donc je retire l'auto incrémentde article_com pr le mettre dans com_online pr le num_com..
Merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
14 juin 2006 à 23:10
14 juin 2006 à 23:10
Non pas avec des cookies avec les sessions PHP : j'enregistre tout le contenu du panier dans la session.
En fait si tu te rappelles bien à un moment lorsque tu affiches le contenu du panier tu récupères un tableau en php nommé "cde"
$cde = $_POST["cde"];
et bien si à la place tu fais :
$_SESSION["panier"]=$_POST["cde"];
ou
$_SESSION["cde"]=$_POST["cde"];
c'est comme tu veux
ben ca y est tu l'a sauvé dans la session ton panier (enfin j'ai pas testé mais je pense que ça doit fonctionner) : il est en mémoire sur le serveur.
A partir de là ton panier est accessible dans toutes les pages c'est comme si tu l'avais sauvé dans ta base de données.
Alors c'est pas génial les sessions en PHP ?
En fait si tu te rappelles bien à un moment lorsque tu affiches le contenu du panier tu récupères un tableau en php nommé "cde"
$cde = $_POST["cde"];
et bien si à la place tu fais :
$_SESSION["panier"]=$_POST["cde"];
ou
$_SESSION["cde"]=$_POST["cde"];
c'est comme tu veux
ben ca y est tu l'a sauvé dans la session ton panier (enfin j'ai pas testé mais je pense que ça doit fonctionner) : il est en mémoire sur le serveur.
A partir de là ton panier est accessible dans toutes les pages c'est comme si tu l'avais sauvé dans ta base de données.
Alors c'est pas génial les sessions en PHP ?
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
15 juin 2006 à 07:27
15 juin 2006 à 07:27
je m'inscruste encore pour te demander de l'aide PHP
je te renvoie a mon long message et petit probleme surement pour toi
php et javascript comment integrer ce code
je te renvoie a mon long message et petit probleme surement pour toi
php et javascript comment integrer ce code
edelweiss77
Messages postés
17
Date d'inscription
samedi 27 mai 2006
Statut
Membre
Dernière intervention
28 juin 2006
15 juin 2006 à 23:04
15 juin 2006 à 23:04
Bonsoir, j'ai vraiment du mal, parce que avec moi sa ne marche pas, en fait la personne s'identifier ds : sommaire4.php/session.php et donc une autre page s'affiche et la reconnait grace a mysql MAIS la session aprés n'est pas reconnu pour les autres pages dans lequel elle clique.
Autrement elle s'inscrit dans mdp_oublier.php/utilisateur.php
et s'ajout dans la base de donnée et revient a l'accueil, donc ouvre la session de $login.
Donc le principale étant que je voudrais : que lorsque la personne veux ajouter un ou des produits dans le panier= statuette.php/ajout_test_panier1.php que cela teste la session, si elle est ouverte ou non,Mais sa ne fait rien.., j'ai pas tout mis non plus..parce que sa ne marche.
Statuette.php:
<?
echo '<body bgcolor="7EC0EE ">';
include("vars.inc");
$sql="SELECT * FROM article Where article.type_maison = 'statuette' ";
$req=mysql_query($sql)or die ("error de connexion");
echo'<center>';
echo'<font size=6>'.'Liste des articles en forme de Statuette'.'</font>';
echo'<br>'.'<br>';
//creation cu tableau
include("article1.php");
?>
Article1.php :
ajout_test_panier1.php :
ajout_bd.php :
Verification_session.php :
Session_panier.php :
Donc,voila mes codes... si tu peux m'aider, et,corriger mes erreurs sa sert trés trés GENTIL, STP... MERCI D'AVANCE PHP
Autrement elle s'inscrit dans mdp_oublier.php/utilisateur.php
et s'ajout dans la base de donnée et revient a l'accueil, donc ouvre la session de $login.
Donc le principale étant que je voudrais : que lorsque la personne veux ajouter un ou des produits dans le panier= statuette.php/ajout_test_panier1.php que cela teste la session, si elle est ouverte ou non,Mais sa ne fait rien.., j'ai pas tout mis non plus..parce que sa ne marche.
Statuette.php:
<?
echo '<body bgcolor="7EC0EE ">';
include("vars.inc");
$sql="SELECT * FROM article Where article.type_maison = 'statuette' ";
$req=mysql_query($sql)or die ("error de connexion");
echo'<center>';
echo'<font size=6>'.'Liste des articles en forme de Statuette'.'</font>';
echo'<br>'.'<br>';
//creation cu tableau
include("article1.php");
?>
Article1.php :
<? //echo'<form action="ajout_annuler1.php" method="POST">'; echo'<form action="ajout_test_panier1.php" method="POST">'; //epaisseur du tableau, des lignes du quadrillage, enrobage des cellules echo '<table border=3 >'; //bgcolor=#CCCCFF entêtes des colonnes echo'<td>'.'<center><i><b>Reférence des articles</b></i></center>'.'</td>'.'<td>'.'<center><i><b>Nom</b></i></center>'.'</td>'.'<td>'.'<center><i><b>Prix</b></i></center>'.'</td>'.'<td>'.'<center><i><b>Photo</b></i></center>'.'</td>'.'<td>'.'<center><i><b>Quantité</b></i></center>'.'</td>'.'<tr>'; $nb = mysql_num_rows($req); if ($nb==0) {echo 'Aucune réponse';}else {while($resultat=mysql_fetch_array($req)) { $ref_art=$resultat['ref_art']; $nom=$resultat['nom']; $prix=$resultat['prix']; //$type_maison=$resultat['type_maison']; //$description=$resultat['description']; $qtite_com=$resultat['qtite_com']; $fichier_photo=$resultat['fichier_photo']; echo"<td><font size=5><center>$ref_art</center><input name='cde[".$ref_art."][ref_art]' type='hidden' value=$ref_art></font></td>"; echo"<td><font size=5>$nom<input name='cde[".$ref_art."][nom]' type='hidden' value=$nom></td>"; echo"<td><font size=5><center>$prix</center><input name='cde[".$ref_art."][prix]' type='hidden' value=$prix></td>"; //adresse de la photo pour mettre dans la base de donnée et s'affiche automatiquement echo"<td><img src=$fichier_photo><input name='fichier_photo' type='hidden' value=$fichier_photo></a></td>"; echo"<td><input name='cde[".$ref_art."][qtite_com]' type='text' value=$qtite_com></td></tr>"; echo'</center>'; } } echo'<tr><td align=center widht=33% colspan=5><input type="submit" name="save" value="ajouter les articles du panier"></td></tr></form>'; echo'</table>'; echo'<br>'; echo'<br>'; echo '<table><tr> <td align=left><a href="sommaire4.php">retour page principale</a></td> <br> </table>'; echo'</font>'; ?>
ajout_test_panier1.php :
<pre> <?php //permet de voir le résultat en détail //echo var_dump($_POST); //vérifier la connection de la session : login + mdp correctes et Autorisés avant voir le contenu du panier include("verification_session.php"); ?> </pre> <? $cde=$_POST["cde"]; // Test si au moins 1 article est commandé $ok = false; foreach ($cde as $art=>$donnees) { $qtite_com = $donnees["qtite_com"]; if ($qtite_com) { $ok = true; // on a au moins 1 article en cde break; // on sort de la boucle : pas la peine de continuer les tests } } if ($ok) // Si au moins 1 article en cde { echo'<form action="ajout_bd.php" method="POST">'; echo "<u>Contenu de votre panier</u> : <br><br>"; foreach ($cde as $art=>$donnees) { $ref_art=$donnees["ref_art"]; $nom=$donnees["nom"]; $prix = $donnees["prix"]; $qtite_com = $donnees["qtite_com"]; if ($qtite_com) { // Place ici le code pour sauver dans MySQL echo"<table><tr><td>Référence d'article :$ref_art<input name='cde[".$ref_art."][ref_art]' type='hidden' value=$ref_art></td></tr>"; echo"<tr><td>Nom :$nom<input name='cde[".$ref_art."][nom]' type='hidden' value=$nom></td></tr>"; echo"<tr><td>Quantité :<input name='cde[".$ref_art."][qtite_com]' type='text' value=$qtite_com></td></tr>"; echo"<td>Prix : $prix<input name='cde[".$ref_art."][prix]' type='hidden' value=$prix></td></tr></table>"; } } echo'<td align=right><input type="submit" name="save" value="Ajouter articles dans bd"></td></tr></form>'; echo"<td align=right><form action='sommaire4.php' method='POST'><input type='submit' value='Poursuivre Achats'></form>"; } else { echo "Votre panier est vide !<br />"; } ?>
ajout_bd.php :
<?php include("vars.inc"); $cde=$_POST["cde"]; foreach ($cde as $art=>$donnees) { $ref_art=$donnees["ref_art"]; $nom=$donnees["nom"]; $prix = $donnees["prix"]; $qtite_com = $donnees["qtite_com"]; if ($qtite_com) // si qté différente de zéro { // Exécute une requête pour chaque article $req="INSERT INTO article_com(ref_art,nom,qtite_com,prix) VALUES('".$ref_art."','".$nom."',".$qtite_com.",".$prix.") "; mysql_query($req) or die('erreur'); // On récupère le dernier nr de commande = lastinsert id LAST_INSERT_ID() syntaxe MySQL //$num_com =mysql_insert_id(); //echo"<br>Commande ".$num_com." créée"; } } include("sommaire4.php"); //include("formulaire_commande.html"); echo"<br>ajout effectuer"; ?>
Verification_session.php :
<?php session_start(); $access=true; if (isset($_POST["login"]) && isset($_POST["mdp"])) { //session4.php/// //include("session_panier.php"); // Normalement ici tu vérifies dans MySQL si l'utilisateur est autorisé ou non // et pas en "dur" comme ici ! $access = ($_POST["login"]=="$login") && ($_POST["mdp"]=="$mdp"); } if (!$access) { // On vide le panier ? Pas obligatoire ... //if (isset($_SESSION["panier"])) $_SESSION["panier"] = array(); // Redirection vers page de login // On retourne sur la page login.php : il faut mettre l'url complète après Location: !!! header("Location: http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/mdp_oublier.php"); exit; } ?>
Session_panier.php :
<?php session_start(); $access=true; if (isset($_POST["login"]) && isset($_POST["mdp"])) { //session4.php/// //include("session_panier.php"); // Normalement ici tu vérifies dans MySQL si l'utilisateur est autorisé ou non // et pas en "dur" comme ici ! $access = ($_POST["login"]=="$login") && ($_POST["mdp"]=="$mdp"); } if (!$access) { // On vide le panier ? Pas obligatoire ... //if (isset($_SESSION["panier"])) $_SESSION["panier"] = array(); // Redirection vers page de login // On retourne sur la page login.php : il faut mettre l'url complète après Location: !!! header("Location: http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/mdp_oublier.php"); exit; } ?>
Donc,voila mes codes... si tu peux m'aider, et,corriger mes erreurs sa sert trés trés GENTIL, STP... MERCI D'AVANCE PHP
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
16 juin 2006 à 15:42
16 juin 2006 à 15:42
Bjr ,
Tient tu as changé de pseudo ...
Non, ca ne va pas .. :-(
As-tu fait une analyse (sur papier) avant de te lancer dans l'écriture des pages PHP ?
As-tu fait un schéma avec le nom des pages ?
Car on dirait que tu improvises au fur-et-à-mesure des problèmes rencontrés.
Le code n'est pas spécialement faux mais rien ne s'imbrique correctement : c'est pas clair.
Je ne peux pas corriger grand chose : il manque trop d'éléments.
Il faut reprendre par le début :
1) La page d'accueil : je suppose qu'il s'agit de sommaire4.php
Quel est le code ?
2) La page d'identification mdp_oublier.php et utilisateur.php
Quel est le code ?
De plus quel est le code de session.php
Tant que l'identification ne fonctionnera pas tu ne pourras pas aller plus loin.
Alors dans un premier temps laisse de côté le panier et concentre toi sur le login et les sessions.
Première chose faire en sorte que le login fonctionne bien :
Tu fais une page login qui demande à l'utilisateur de s'identifier (login+mdp) ou bien de s'inscrire (en remplissant toutes les infos nécessaires : adresse, mode de règlement, nom etc )
Nota : l'utilisateur doit pouvoir modifier ses coordonnées si elles ont changé !
Tu sauves dans la session son login : $_SESSION["login"] = $login
Tu sauves éventuellement les infos sur le client dans MySQL :
comment s'appelle ta table des clients ?
Je suppose que dans ta table tu enregistres le login qui te sert d'identifiant.
Dans ta page principale tu places un lien vers la page de login et tu testes jusqu'à ce que ça fonctionne.
Tient tu as changé de pseudo ...
Non, ca ne va pas .. :-(
As-tu fait une analyse (sur papier) avant de te lancer dans l'écriture des pages PHP ?
As-tu fait un schéma avec le nom des pages ?
Car on dirait que tu improvises au fur-et-à-mesure des problèmes rencontrés.
Le code n'est pas spécialement faux mais rien ne s'imbrique correctement : c'est pas clair.
Je ne peux pas corriger grand chose : il manque trop d'éléments.
Il faut reprendre par le début :
1) La page d'accueil : je suppose qu'il s'agit de sommaire4.php
Quel est le code ?
2) La page d'identification mdp_oublier.php et utilisateur.php
Quel est le code ?
De plus quel est le code de session.php
Tant que l'identification ne fonctionnera pas tu ne pourras pas aller plus loin.
Alors dans un premier temps laisse de côté le panier et concentre toi sur le login et les sessions.
Première chose faire en sorte que le login fonctionne bien :
Tu fais une page login qui demande à l'utilisateur de s'identifier (login+mdp) ou bien de s'inscrire (en remplissant toutes les infos nécessaires : adresse, mode de règlement, nom etc )
Nota : l'utilisateur doit pouvoir modifier ses coordonnées si elles ont changé !
Tu sauves dans la session son login : $_SESSION["login"] = $login
Tu sauves éventuellement les infos sur le client dans MySQL :
comment s'appelle ta table des clients ?
Je suppose que dans ta table tu enregistres le login qui te sert d'identifiant.
Dans ta page principale tu places un lien vers la page de login et tu testes jusqu'à ce que ça fonctionne.
edelweiss77
Messages postés
17
Date d'inscription
samedi 27 mai 2006
Statut
Membre
Dernière intervention
28 juin 2006
16 juin 2006 à 15:59
16 juin 2006 à 15:59
Oui, j'ai changé...lol
voila : sommaire4.php
Session4.php :
mdp_oublier.php :
utilisateur.php :
Oui, avant de commencer j'ai schématisé.
Voilà, j'espère que tu prendrai un peu de ton temps pour m'aider et je te serai trés reconnaissance si tu arrives a le faire et a m'aider jusqu'a ce que j'y arrive.
Et oui mes clients sont dans la table utilisateur (login, mdp, et email).
Merci BEaucoup.
voila : sommaire4.php
<html> <body bgcolor=orange> <form method="POST" action="session4.php"> <table > <tr><td > <table border=1> <tr><td align=left width=18%><center><u>S'identifier</u></center><br> <center> login : <br><input type="login" name="login"><br> <center> mot de passe :<br><input type="password" name="mdp"><br><br> <center><input type="submit" value="Valider"></form> <br><br> mot de passe oublier / devenir Client <a href="mdp_oublier.php"><center>cliquez ici.</center></center></a> <hr> <center><font face="Arial, Helvetica, sans-serif">Spéciale </font><br> <center><a href="fêtes.php" ><font face="Courier New, Courier, mono">Fêtes</a></font><br> <center><a href="anni.php" >Anniversaire </a><br> <center><a href="mariage.php" >Mariage </a><br> <center><a href="naissance.php" >Naissance</a><br> <hr> <center><a href="voire_panier.php" >Voir Panier</a><br> <center><a href="contact.html" >Contact</a><br></center> </td> <td align=center width=40%> <? include("pageprincipale4.php"); ?> </td> </tr> </table></font> </body> </html>
Session4.php :
<? { $login=$_POST['login']; $mdp=$_POST['mdp']; { include("vars.inc"); $sql="SELECT *FROM utilisateur WHERE (login='$login') AND (mdp='$mdp')"; $query=mysql_query($sql)or die('erreur'); $nb=mysql_num_rows($query);//nbre de ligne du résultat de la requete if($nb==0) { // si passe ok demarre session session_start(); // initialisation variable autorise = ok $_SESSION['autorise']=""; echo"Incorrecte,veuillez Vérifier"; } else { // si login et mdp ok demarre session session_start(); // initialisation variable autorise = ok //echo"Bienvenue"$email; $_SESSION['autorise']="ok"; //echo"acces autorise OK"; echo"<center>Bienvenue {$_POST['login']}</center>"; //echo"Bienvenue<a href = pageprincipale4.html target=c></a>"; } } } include("sommaire4.php"); ?>
mdp_oublier.php :
<html><body bgcolor=" 63B8FF "> <table align=center border=1 width=100%><div align=left> <tr> <td><center>Mot de passe oublié : </center></td> <td><center>Identification gratuite : tous les champs sont obligatoires</center> </td></tr> <tr> <td>Saisir votre email , si vous ne vous souvenez plus de votre mot de passe.<br></td> <td><br><br>Choississez votre mot de passe (de 5 caractères), qui vous permettra d'accéder aux <br>espaces sécurisés pour le suivi de votre commande et à vos services personnalisés.<br><br>Veillez indiquer votre login sans apostrophe, ni caractères spéciaux.<br></td> </tr> <tr><td> <form method="POST" action="mdp_remplacer.php"> <table border=0 align=center> <tr><td></td><td align=center ><u>Déjà client</u> <br><br></td></tr> <tr><td >login : <td><input type="login" name="login"></td></td> <tr><td >email : <td><input type="text" name="email"></td></tr> <td><td align=center><input type='submit' value='Valider'></td></td> </table> </td></div> </form> <td align=left> <table border=0 align=center><br> <form method="POST" action="utilisateur.php"> <tr><td><td align=center ><u>S'inscrire</u><br><br> </td></td></tr> <tr><td align=right > login : <td><input type="login" name="login"></td></tr> <tr><td align=right>email : <td><input type='email' name="email"></td></tr> <tr><td align=right>mot de passe : <td><input type="password" name="mdp"></td></tr> <td><td align=center><input type='submit' value='Valider'></td></td> </td></tr> </table> </form> </table> <a href="sommaire4.php">retour à la page principale</a> </html>
utilisateur.php :
<?php /* définir les champs à tester*/ $email=$_POST['email']; $login=$_POST['login']; $info = array ("login" => "login","email" =>"email","mdp" => "mdp"); foreach($_POST as $clé=>$valeur) { /* controler tous les champs sauf celui du telephone*/ if($valeur =="") { $champVide[$clé] = "blanc"; } //vérification de la validité des noms propres //vérifie si login existe déjà ds ma bd ,si oui ,changer le champs incorrects elseif ($clé =="login") {include("essai_utilisateur.php"); {if(strlen($valeur)>8) { $mauvaisFormat[$clé]= "mauvais"; } } } elseif ($clé =="email") {if(!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'. '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $valeur)) { $mauvaisFormat[$clé]= "mauvais"; } } //elseif ($clé =="mdp" and $clé =="mdp1") //if ($mdp <> $mdp1) //{ $mauvaisFormat[$clé]= "mauvais"; //} //pour ton password (de 4 à 5 caractères alphanumérique seulement) elseif ($clé =="mdp") {if(strlen($valeur)<>5) {if(!eregi("^[a-zA-Z0-9]{4,5}$",$valeur)) { $mauvaisFormat[$clé]= "mauvais"; } } } }// fin de la boucle foreach pour $_POST /* si l'un des champs est incorrect, afficher un message */ if(@sizeof($champVide) >0 or @sizeof($mauvaisFormat)>0) { if(@sizeof($champVide) >0) { /* message pour information manquante */ echo"<b><br>Un des champs obligatoires n'a pas été renseigné. Vous devez saisir :</b></br>"; /* affichage du nom des informations requises */ foreach($champVide as $clé =>$valeur) { echo " {$info[$clé]}<br>"; }//fin de la boucle foreach pour les champs vierges } if (@sizeof($mauvaisFormat) >0) { /* message pour information invalide */ echo"<b><br>Un ou plusieurs champs contiennent des informations qui semblent incorrectes. Corrigez le format de :</b></br>"; /* affiche la liste des informations incorrectes*/ foreach($mauvaisFormat as $clé => $valeur) { echo " {$info[$clé]}<br>"; } } include("reaffichage_utilisateur.inc"); } echo"<center>Récapitulatif de votre saisie</center>"; echo"Pensez à les mémoriser ou les noter : <br>"; //afficher simplement les noms, prenom... foreach ($_POST as $info=> $valeur) {echo " $info : $valeur<br>";} include("ajout_utilisateur.php"); echo"Bienvenue {$_POST['login']}"; include("sommaire4.php"); ?>
Oui, avant de commencer j'ai schématisé.
Voilà, j'espère que tu prendrai un peu de ton temps pour m'aider et je te serai trés reconnaissance si tu arrives a le faire et a m'aider jusqu'a ce que j'y arrive.
Et oui mes clients sont dans la table utilisateur (login, mdp, et email).
Merci BEaucoup.
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
18 juin 2006 à 11:45
18 juin 2006 à 11:45
Bjr
J'ai pas tout lu parce que ça fait quand même beaucoup de codes LOL
bien, à priori ton code pour s'identifier me semble correct.
par contre dans la page session4.php inutile de sauver "ok" dans la session car cette information ne t'apporte pas grand chose hormis le fait de savoir que l'utilisateur s'est identifié :
Sauve plutôt le login (attention le login doit être unique ! 2 utilisateurs ne peuvent pas avoir le même login !)
Pour savoir si un utilisateur est connecté il te suffit de tester
L'intérêt de conserver le login est que tu vas pouvoir l'enregister ultérieurement dans ta table com_onlin et donc savoir qui à passer telle ou telle commande .
J'ai un peu bricolé ta page sommaire4.php en ajoutant une feuille de style interne et en supprimant les attributs de mise en page devenus inutiles (c'est la feuille de style qui les gère désormais)
De plus j'ai supprimé le tableau imbriqué dans le <td> qui ne servait à rien.
Note l'attribut class="..." dans certaines balises qui permet de faire référence aux styles.
Ca donne :
Qu'est-ce que c'est que cette variable $clé avec un "e acccent aigu" N'utilise pas les accents dans les variables !!!
J'ai pas tout lu parce que ça fait quand même beaucoup de codes LOL
bien, à priori ton code pour s'identifier me semble correct.
par contre dans la page session4.php inutile de sauver "ok" dans la session car cette information ne t'apporte pas grand chose hormis le fait de savoir que l'utilisateur s'est identifié :
$_SESSION['autorise']="ok";
Sauve plutôt le login (attention le login doit être unique ! 2 utilisateurs ne peuvent pas avoir le même login !)
$_SESSION['login']=$login;
Pour savoir si un utilisateur est connecté il te suffit de tester
$autorise = isset($_SESSION['login']) && ($_SESSION['login'] != ""));
L'intérêt de conserver le login est que tu vas pouvoir l'enregister ultérieurement dans ta table com_onlin et donc savoir qui à passer telle ou telle commande .
J'ai un peu bricolé ta page sommaire4.php en ajoutant une feuille de style interne et en supprimant les attributs de mise en page devenus inutiles (c'est la feuille de style qui les gère désormais)
De plus j'ai supprimé le tableau imbriqué dans le <td> qui ne servait à rien.
Note l'attribut class="..." dans certaines balises qui permet de faire référence aux styles.
Ca donne :
<html> <style> /* Style par défaut pour la page body et toutes les tables */ body, table { font-size : 10pt; /* Taille police */ font-family : Arial, Helvetica, sans-serif; /* Polices */ background-color : orange; /* Couleur du fond */ } /* Style pour les cellules du tableau */ .cellule_gauche, .cellule_droite { text-align : center; /* Centrer le contenu horizontalement */ } .titre { font-weight : bold; /* Mettre en gras */ text-decoration : underline; /* Souligné */ } </style> <body > <table border="1"> <tr> <td class="cellule_gauche"> <form method="POST" action="session4.php"> <span class="titre">S'identifier</span><br /><br /> login : <br /> <input type="login" name="login"><br /> mot de passe :<br /> <input type="password" name="mdp"><br /><br /> <input type="submit" value="Valider"><br /><br /> Mot de passe oublié / Devenir Client <a href="mdp_oublier.php">cliquez ici.</a> <hr /> <span class="titre">Spécial</span><br /> <a href="fêtes.php" >Fêtes</a><br /> <a href="anni.php" >Anniversaire </a><br /> <a href="mariage.php" >Mariage </a><br /> <a href="naissance.php" >Naissance</a><br /> <hr /> <a href="voire_panier.php" >Voir Panier</a><br /> <a href="contact.html" >Contact</a><br /> </form> </td> <td class="cellule_droite"> <? include("pageprincipale4.php"); ?> </td> </tr> </table> </body> </html>
Qu'est-ce que c'est que cette variable $clé avec un "e acccent aigu" N'utilise pas les accents dans les variables !!!
edelweiss77
Messages postés
17
Date d'inscription
samedi 27 mai 2006
Statut
Membre
Dernière intervention
28 juin 2006
18 juin 2006 à 22:55
18 juin 2006 à 22:55
bonsoir, php et donc
$autorise = isset($_SESSION['login'] && ($_SESSION['login'] != "")); = il faut que je le met a chaque début de mes pages que je t'ai donné et surtout pour ajout dans le panier..?
Merci de me réprendre et de m'aider STP c'est important pour moi dit arriver.
Merci d'avance et Bonne soirée.
$autorise = isset($_SESSION['login'] && ($_SESSION['login'] != "")); = il faut que je le met a chaque début de mes pages que je t'ai donné et surtout pour ajout dans le panier..?
Merci de me réprendre et de m'aider STP c'est important pour moi dit arriver.
Merci d'avance et Bonne soirée.
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
19 juin 2006 à 11:15
19 juin 2006 à 11:15
Bjr,
Dans toutes les pages peut-être pas mais dans ajout_bd.php c'est certain.
Tu as dit que tu voulais que l'utilisateur puisse remplir son panier sans forcément s'identifier : donc attend le moment où il va enregistrer sa commande avant de vérifier s'il est identifié.
Naturellement rien n'empêche l'utilisateur de s'identifier dès le départ.
N'oublie pas le session_start() également
Dans toutes les pages peut-être pas mais dans ajout_bd.php c'est certain.
Tu as dit que tu voulais que l'utilisateur puisse remplir son panier sans forcément s'identifier : donc attend le moment où il va enregistrer sa commande avant de vérifier s'il est identifié.
Naturellement rien n'empêche l'utilisateur de s'identifier dès le départ.
N'oublie pas le session_start() également
edelweiss77
Messages postés
17
Date d'inscription
samedi 27 mai 2006
Statut
Membre
Dernière intervention
28 juin 2006
19 juin 2006 à 18:14
19 juin 2006 à 18:14
Bonjour, décidement je n'y arrive pas, j'ai beau changé, transformé testé... soit il reconnait pas la session meme si je l'ai ouverte , soit il l'a reconnait meme si elle est pas ouverte.
Et j'ai changé, je le met plus dans ajout_bd le teste de la session mais avant sa.
Alors j'ai fait la modif , que tu m'avais dit pour la page session4.php :
Et Donc quand les gens vont appuyer sur le bouton ajouter au panier : ajout_test_panier1.php , la je teste si une session est ouverte ou pas
Et donc c'est ce code qui fait :"soit il reconnait pas la session meme si je l'ai ouverte , soit il l'a reconnait meme si elle est pas ouverte" => verification_ajout_test_panier.php.
Voilà, j'espère que tu pourrais me corriger mon code ..
Merci d'avance.
Et j'ai changé, je le met plus dans ajout_bd le teste de la session mais avant sa.
Alors j'ai fait la modif , que tu m'avais dit pour la page session4.php :
<? { $login=$_POST['login']; $mdp=$_POST['mdp']; { include("vars.inc"); $sql="SELECT *FROM utilisateur WHERE (login='$login') AND (mdp='$mdp')"; $query=mysql_query($sql)or die('erreur'); $nb=mysql_num_rows($query);//nbre de ligne du résultat de la requete if($nb==0) { // si passe ok demarre session session_start(); // initialisation variable autorise = ok $_SESSION['login']=""; echo"Incorrecte,veuillez Vérifier"; } else { // si login et mdp ok demarre session session_start(); // initialisation variable autorise = ok //echo"Bienvenue"$email; //$_SESSION['autorise']="ok"; $_SESSION['login'] = $login; //echo"acces autorise OK"; echo"<center>Bienvenue {$_POST['login']}</center>"; //echo"Bienvenue<a href = pageprincipale4.html target=c></a>"; } } } include("sommaire4.php"); //include("session_check_login.php"); ?>
Et Donc quand les gens vont appuyer sur le bouton ajouter au panier : ajout_test_panier1.php , la je teste si une session est ouverte ou pas
<?php //permet de voir le résultat en détail //echo var_dump($_POST); //vérifier la connection de la session : login + mdp correctes et Autorisés avant voir le contenu du panier { include("verification_session.php"); } //foreach ($com as $ref_art => $qtite_com) //{ echo "Article : ".$ref_art." Nom : ".$nom." Prix : ".$prix." quantité : ".$qtite_com."<br/>"; } //$info = array ("ref_art" =>"ref_art","qtit_com" =>"qtite_com","prix" => "prix","nom" => "nom"); $cde=$_POST["cde"]; // Test si au moins 1 article est commandé $ok = false; foreach ($cde as $art=>$donnees) { $qtite_com = $donnees["qtite_com"]; if ($qtite_com) .....
Et donc c'est ce code qui fait :"soit il reconnait pas la session meme si je l'ai ouverte , soit il l'a reconnait meme si elle est pas ouverte" => verification_ajout_test_panier.php.
<?php session_start(); $access=true; if (isset($_POST["login"]) && isset($_POST["mdp"])) { // Normalement ici tu vérifies dans MySQL si l'utilisateur est autorisé ou non // et pas en "dur" comme ici ! $access = ($_SESSION["login"]==$login) && ($_SESSION["mdp"]==$mdp); //La j'ai essayé de mettre mon code comme pr session4.php pr tester le mdp et login : mais marche pas... } //else if (!$access) { // On vide le panier ? Pas obligatoire ... //if (isset($_SESSION["panier"])) $_SESSION["panier"] = array(); // Redirection vers page de login // On retourne sur la page login.php : il faut mettre l'url complète après Location: !!! header("Location: http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/mdp_oublier.php"); exit; } ?>
Voilà, j'espère que tu pourrais me corriger mon code ..
Merci d'avance.
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
19 juin 2006 à 20:24
19 juin 2006 à 20:24
Bonsoir
" Ce qui se conçoit bien s'énonce clairement
Et les mots pour le dire arrivent aisément."
Boileau, L'art poétique
sauf que Boileau n'a jamais touché à un ordinateur ! LOL
Dans verification_session.php tu mets
Test on verra bien ...
Pourquoi as-tu essayé de tester $_SESSION['mdp'] alors qu'on ne l'a même pas sauvé dans la session dans la page session4.php ?
" Ce qui se conçoit bien s'énonce clairement
Et les mots pour le dire arrivent aisément."
Boileau, L'art poétique
sauf que Boileau n'a jamais touché à un ordinateur ! LOL
Dans verification_session.php tu mets
<?php session_start(); // Test si l'utilisateur s'est identifié $access=isset($_SESSION['login']) && ($_SESSION['login'] != ""); if (!$access) { // On vide le panier ? Pas obligatoire ... //if (isset($_SESSION["panier"])) $_SESSION["panier"] = array(); // Redirection vers page de login // On retourne sur la page login.php : il faut mettre l'url complète après Location: !!! header("Location: http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/mdp_oublier.php"); exit; } ?>
Test on verra bien ...
Pourquoi as-tu essayé de tester $_SESSION['mdp'] alors qu'on ne l'a même pas sauvé dans la session dans la page session4.php ?
edelweiss77
Messages postés
17
Date d'inscription
samedi 27 mai 2006
Statut
Membre
Dernière intervention
28 juin 2006
19 juin 2006 à 21:42
19 juin 2006 à 21:42
Bonsoir, j'ai testé et non sa ne fait rien...
JE fais pas mal de testes, je suis un peu désespérer que sa ne marche pas, alors j'espère que tu ne vas m'abandonner...
Merci de continuer à m'aider.
JE fais pas mal de testes, je suis un peu désespérer que sa ne marche pas, alors j'espère que tu ne vas m'abandonner...
Merci de continuer à m'aider.
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
19 juin 2006 à 23:17
19 juin 2006 à 23:17
C'est quoi toutes ces accolades en trop dans session4.php
C'est mieux comme ça
<? $login=$_POST['login']; $mdp=$_POST['mdp']; include("vars.inc"); $sql="SELECT * FROM utilisateur WHERE login='".$login."' AND mdp='".$mdp."'"; $query=mysql_query($sql)or die('erreur'); $nb=mysql_num_rows($query);//nbre de ligne du résultat de la requete if($nb==0) { // si passe ok demarre session session_start(); // initialisation variable autorise = ok $_SESSION['login']=""; } else { // si login et mdp ok demarre session session_start(); // Sauve le login $_SESSION['login'] = $login; } include("sommaire4.php"); ?>
C'est mieux comme ça
edelweiss77
Messages postés
17
Date d'inscription
samedi 27 mai 2006
Statut
Membre
Dernière intervention
28 juin 2006
20 juin 2006 à 10:55
20 juin 2006 à 10:55
ouai ya ds tites truc inutiles certes..lol mais sa sa marche donc.lol
stp...aide moi .
stp...aide moi .
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
20 juin 2006 à 14:13
20 juin 2006 à 14:13
Bjr,
1 ou 2 trucs inutiles ?!!! Un bien beau B _ _ _ _ L oui ! LOL
Ca marche finalement ou non ?
1 ou 2 trucs inutiles ?!!! Un bien beau B _ _ _ _ L oui ! LOL
Ca marche finalement ou non ?
edelweiss77
Messages postés
17
Date d'inscription
samedi 27 mai 2006
Statut
Membre
Dernière intervention
28 juin 2006
20 juin 2006 à 19:11
20 juin 2006 à 19:11
non pas si bordélique que sa je trouve.
Et non a mon desespoir sa ne marche toujours pas!
bs
Et non a mon desespoir sa ne marche toujours pas!
bs
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
20 juin 2006 à 20:27
20 juin 2006 à 20:27
Bsr
Hé ben j'espère que ca fonctionnera avant d'atteindre la barre symbolique des 100 messages postés !! ! LOL
Reprenons dans l'ordre
Ta page : sommaire4.php elle fonctionne sans pb : OK ?
Lorsque tu cliques sur Valider pour s'identifier la page session4.php fonctionne-t-elle ?
Pour être tout à fait sûr que tout va bien :
tu sauves ce code dans le fichier test_login.php
Dans ta page sommaire4.php tu ajoutes
Tu t'identifies avec login + mdp puis de retour au sommaire clique sur le lien "Tester login"
Hé ben j'espère que ca fonctionnera avant d'atteindre la barre symbolique des 100 messages postés !! ! LOL
Reprenons dans l'ordre
Ta page : sommaire4.php elle fonctionne sans pb : OK ?
Lorsque tu cliques sur Valider pour s'identifier la page session4.php fonctionne-t-elle ?
Pour être tout à fait sûr que tout va bien :
tu sauves ce code dans le fichier test_login.php
<html> <head> <title>Test login</title> <style> .msg { font-size : 24pt; font-weight : bold; font-family : Arial; } </style> </head> <body> <p class="msg"> <?php session_start(); // Test si l'utilisateur s'est identifié $access=isset($_SESSION['login']) && ($_SESSION['login'] != ""); if (!$access) { echo "Vous n'êtes pas connecté !"; } else { echo "Vous êtes bien connecté sous le login ".$_SESSION['login']; } ?> </p> </body> </html>
Dans ta page sommaire4.php tu ajoutes
<a href="test_login.php">Tester login</a>
Tu t'identifies avec login + mdp puis de retour au sommaire clique sur le lien "Tester login"
edelweiss77
Messages postés
17
Date d'inscription
samedi 27 mai 2006
Statut
Membre
Dernière intervention
28 juin 2006
21 juin 2006 à 11:03
21 juin 2006 à 11:03
Bonjour, et oui avec ce que tu m'as donné cela prouve que ma session marche meme qd je vais sur des pages de produits et que je retourne aprés a l'accueil et que je reclique sur teste login sa me mai login..est connectée donc sur sa ya pas de soucis.
C'est pour tester la session ouverte, avant d'ajouter dans le panier qui bloque.
Merci .
C'est pour tester la session ouverte, avant d'ajouter dans le panier qui bloque.
Merci .
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
21 juin 2006 à 13:40
21 juin 2006 à 13:40
Bjr
Bon c'était juste pour m'assurer que ton provider avait bien autorisé les sessions PHP sur son serveur.
Donc c'est dans ta page ajout_test_panier1.php que ca ne fonctionne pas ?
Ca me paraît curieux qd même ...
Normalement si test_login.php fonctionne alors
ajout_test_panier1.php doit fonctionner également
Modifie ajout_test_panier1.php comme ci-dessous et teste :
ajout_test_panier1.php :
Bon c'était juste pour m'assurer que ton provider avait bien autorisé les sessions PHP sur son serveur.
Donc c'est dans ta page ajout_test_panier1.php que ca ne fonctionne pas ?
Ca me paraît curieux qd même ...
Normalement si test_login.php fonctionne alors
ajout_test_panier1.php doit fonctionner également
Modifie ajout_test_panier1.php comme ci-dessous et teste :
ajout_test_panier1.php :
<html> <body> <?php //vérifier la connection de la session : login + mdp correctes include("verification_session.php"); echo "Votre login est ".$_SESSION["login"]."<br />"; ?> <? $cde=$_POST["cde"]; // Test si au moins 1 article est commandé $ok = false; foreach ($cde as $art=>$donnees) { $qtite_com = $donnees["qtite_com"]; if ($qtite_com) { $ok = true; // on a au moins 1 article en cde break; // on sort de la boucle : pas la peine de continuer les tests } } if ($ok) // Si au moins 1 article en cde { echo'<form action="ajout_bd.php" method="POST">'; echo "<u>Contenu de votre panier</u> : <br><br>"; foreach ($cde as $art=>$donnees) { $ref_art=$donnees["ref_art"]; $nom=$donnees["nom"]; $prix = $donnees["prix"]; $qtite_com = $donnees["qtite_com"]; if ($qtite_com) { // Place ici le code pour sauver dans MySQL echo "<table><tr><td>Référence d'article :$ref_art<input name='cde[".$ref_art."][ref_art]' type='hidden' value=$ref_art></td></tr>"; echo "<tr><td>Nom :$nom<input name='cde[".$ref_art."][nom]' type='hidden' value=$nom></td></tr>"; echo "<tr><td>Quantité :<input name='cde[".$ref_art."][qtite_com]' type='text' value=$qtite_com></td></tr>"; echo "<td>Prix : $prix<input name='cde[".$ref_art."][prix]' type='hidden' value=$prix></td></tr></table>"; } } echo '<td align=right><input type="submit" name="save" value="Ajouter articles dans bd"></td></tr></form>'; echo "<td align=right><form action='sommaire4.php' method='POST'><input type='submit' value='Poursuivre Achats'></form>"; } else { echo "Votre panier est vide !<br />"; } ?> </body> </html>
edelweiss77
Messages postés
17
Date d'inscription
samedi 27 mai 2006
Statut
Membre
Dernière intervention
28 juin 2006
21 juin 2006 à 14:09
21 juin 2006 à 14:09
Non c'est bon.
Bonjour, donc le teste de la session avant l'ajout ds le panier marche à peu prés..merci
Maintenant j'en suis à mon panier d'achat pour le visualiser,donc
pour moi je vais retester l'ouverture d'une session et aprés grace a
leur login je vais afficher les produits qu'ils ont commandé et leur
num_com pt etre, aprés je récupére ce num_com pour qu'il soit
identique dans com_online(coordonnées), je vais voir si c'est
faisable.lol
je voulais avoir une précision et traduction en français, je suis pas
sûr : sur le code suivant
Merci d'avance.
Bonjour, donc le teste de la session avant l'ajout ds le panier marche à peu prés..merci
Maintenant j'en suis à mon panier d'achat pour le visualiser,donc
pour moi je vais retester l'ouverture d'une session et aprés grace a
leur login je vais afficher les produits qu'ils ont commandé et leur
num_com pt etre, aprés je récupére ce num_com pour qu'il soit
identique dans com_online(coordonnées), je vais voir si c'est
faisable.lol
je voulais avoir une précision et traduction en français, je suis pas
sûr : sur le code suivant
$access=(isset($panier["login"]) && ($panier["login"] != "")); if (!$access)= "autrement" ..?
Merci d'avance.