Problème d'un site ecommerce

Ce sujet est résolu
193189
,

Salut a tous, en se moment je boss sur un site de vente, du coup j'ai suivis tout les tutos de Grafikart, espace membre, et le gestion de panier, quand j'essaie de m'inscrire, les donnés ne s'enregistre pas sur ma base des donnés, et le bouton deconnecté ne s'affiche pas. Pour le coté panier, quand j'essaie de mettre un produits dans le panier, la page qui suit s'affiche aucune produits n'a été séléctionné. Je suis bloquer, j'arrive pas avancer, je suis nouveaux dans le php, svp quelqu'un peut m'aider svp. Merci d'avance

23 Réponse

1
17162
,

Petite information, la fonction isset, accepte plusieurs arguments, quelle vérifiera chacune d'elles dans l'ordre donnée et s'arrêtera dès que l'une est incorrecte, tu peux donc facilement remplacer isset($_GET['id']) && isset($_GET['token']) par isset($_GET['id'], $_GET['token']).
Plus d'informations sur cette fonction ici: PHP: isset - Manual.
La partie de code suivante à une erreur:

$req->execute([$_GET]['id'], $_GET['token']]);

La partie SQL suivante n'a aucun sens :

reset_token = IS NOT NULL AND reset_token = ?

À mon avis la seconde partie de cette chaîne, devrait plutôt être confirmation_token et non reset_token.
Tu as également une erreur dans la partie de code suivante :

if(!empty($_POST['password']) && _$POST['password'] == $_POST['password_confirm ']){

C'est $_POST['password'] et non _$POST['password'].
Une autre erreur ici : $password = password_verify($_POST['password']PASSWORD_BCRYPT);.
Tu vas également avoir un problème pour la requête SQL de type UPDATE, étant donné que tu passe une simple chaîne de caractère fixe (password) à la méthode execute.
Pour terminer, inutile de nous retranscrire du code inutile à la résolution de ton problème, je fais bien sùr référence à ce gros pavé de code CSS qui prend facilement 70% de la hauteur du bloc de code pour rien.

17162
,

Bonsoir.
Sans plus d'informations concernant la situation et notament sans du code, je vois mal comment nous pourrons t'aider.

17162
,

Bonjour.
Pour commencer, est-ce que tu as bien pensé à vérifier que les erreurs PHP sont bien activées ?
Si c'est bien le cas, tu devrais faire attention à la casse, la méthode se nomme lastInsertId et non LastInsertId.
Sinon, niveau sécurité, ton code c'est la porte ouverte pour les hackers de type brute force.

Ce pseudo est deja pris
Cet email est deja utilisé pour un autre compte

Rien qu'avec ces deux informations, tu leurs bacle le travail, en une seule fois ils peuvent savoir si le nom d'utilisateur et l'email existe dans la base de données.
Autre chose à ce sujet, le mot de passe, tu devrais imposer un certain format, et non laisser libre en plus à l'utilisateur le nombre de caractères qu'il peut utiliser pour le mot de passe.
Penses à nous présenter le code correctement, dans le bloc prévu à cet effet, car là le code que tu nous présente est illisible.

40917
,

Bonjour,

  • Active les erreurs PDO (cf la doc)
  • Commente la redirection car la tu changes de page et tu ne verras pas l'affichage des erreurs.
  • Tu as écrit $erros['passsword'] au lieu de $errors
193189
,

Merci de m'avoir repondu Carouge10, j'ai activer les erreurs PDO, j'ai modifier $errors, sa marche toujours pas

40917
,

Affiche le nouveau code (la partie php suffit) afin de vérifier les changements
Merci

193189
,

Déolé, j'avais redemarrer mon pc, apres avoir modifier maintenant sa m'affiche comme sa. Merci de Carouge10

Avertissement : mail (): Impossible de se connecter au serveur de messagerie sur le port "localhost" 25, vérifiez vos paramètres "SMTP" et "smtp_port" dans php.ini ou utilisez ini_set () dans C: \ wamp64 \ www \ nom_du_site\ inscription.php sur la ligne 36
40917
,

Il te faut renseigner le smtp dans php.ini avec celui de ton FAI (free, orange, sfr...

193189
,

orange, je suis au Sénégal...

193189
,

Quelqu'un peut m'aider svp, sa marche toujours pas.

Warning: mail(): SMTP server response: 550 Adresse @orange.sn requis pour envoi in C:\wamp64\www\nom_du_site\inscription.php on line 36

Merci...

40917
,

Bah le message est très clair non ?

193189
,

euh...cela veux dire que l'adresse email ne passe pas non ?

40917
,

as-tu adresse de forme toto@orange.sn pour l'envoi de ton mail ?

193189
,

non j'en ai pas....j'ai que gmail

40917
,

il te faut une adresse orange.sn pour faire l'envoi depuis ton site actuelle.

Pour le problème initiale, les données s'enregiste bien dans la BDD ?

193189
,

Non pas encore, les donnée s'enregistre pas a cause de sa

Warning: mail(): SMTP server response: 550 Adresse @orange.sn requis pour envoi in C:\wamp64\www\Clique_boutique\inscription.php on line 36
193189
,

Salut a tous, désolé si je vous dérange, ce que je suis bleu sur php, du coup maintenant je recois mes mails, sa le redirige vert le header, mais les données ne s'enregistre pas dans ma base des donnés, y'a mon petit bouton déconnecté qui s'affiche pas. Merci de m'aider...

40917
,

Je t'ai dit de mette en commentaire la fonction de redirection car sinon, tu ne vois pas les erreurs.
Remets le code avec les modifications demandés.
Tu peux aussi mettre en commentaire le mail puisque maintenant il marche.

193189
,

J'ai mis le mail en commentaire, il dit que mon token n'est plus valide

193189
,

J'ai changer tout le code, j'ai enlever le panier, maintenat sa m'affiche comme sa

Erreur fatale : exception PDO non capturée: SQLSTATE [HY000]: erreur générale: 1364 Le champ 'reset_token' n'a pas de valeur par défaut dans C: \ wamp64 \ www \ Clique_boutique \ inscription.php: 34 Trace de pile: # 0 C: \ wamp64 \ www \ nom_du_site \ inscription.php (34): PDOStatement-> execute (Array) # 1 {main} jeté dans C: \ wamp64 \ www \ Clique_boutique \ inscription.php sur la ligne 34
1