8800 sujets

Développement web côté serveur, CMS

Bonsoir,

Je veut enfaite, quand le client saisi le montant, que sa le redirige sur paypal pour qu'il paye et ensuite paypal le redirige à nouveau sur mon site pour ajouter aux crédits actuel la somme qu'il à payé.

Tout marche parfaitement sauf l'ajout des nouveaux crédits à son compte.

J'ai cherché pendant trois jours sans réponses à mon problème.

Voici les codes de mes deux pages principales, les autres contiennent simplement un message en html si le paiement est annulé ou validé.

crediter.php, le formulaire de saisi du montant : http://paste.pocoo.org/show/471343/
validation_paiement.php, traitement du paiement : http://paste.pocoo.org/show/471345/

Merci de vos réponses.

Cordialement,
Kaetsu
Modérateur
Bonjour,

Je n'ai pas le temps d'analyser ton code en détails, mais j'ai remarqué que ta requête SQL est la suivante :

UPDATE utilisateurs SET  credits = :montant WHERE adresse_mail = :email


Ce ne serait pas plutôt :

UPDATE utilisateurs SET  credits = credits + :montant WHERE adresse_mail = :email
Oui, mais même avec la requête, il était censé modifié par le montant, il ne le fait pas.

Rien ne se passe et aucune erreur ne s'affiche je trouve sa super bizarre.
Modérateur
Tu utilises $id_user (custom de Paypal) dans ta condition pour le email. C'est voulu?

Si tu fais un dump de ta requête SQL, elle semble logique?

Le problème est peut-être ailleurs, mais c'est par là que je commencerais à vérifier.
Modifié par Tony Monast (06 Sep 2011 - 22:23)
Oui c'est voulu parce que enfaite le champ dans mon formulaire contient l'adresse e-mail du membre qui est dans mon cas la session de connexion.

Ensuite je la récupere dans mon formulaire $id_user = $_POST['custom']

Et puis je la met dans ma condition pour que sa ajoute les crédits à cette adresse uniquement.
Modérateur
jb_gfx, je ne connais pas très bien le PHP, mais le $ajout_credits->execute(); me semble être l'exécution de la requête, non?

Kaetsu, as-tu vérifié si ton script se rend jusqu'à l'exécution de ta requête SQL? As-tu fait un dump du code SQL avant de l'exécuter, juste pour voir si ça se tient?
Oui mais en regardant les conditions (de loin) je me demande si on arrive à un moment à l’exécution de la requête.
Les requêtes SQL ne plantent pas en cas d'erreur SQL. C'est un réglage à effectuer, sous PDO, et une honte à configurer, pour les vieilles API mysql et mysqli.
Ca plus le réglage serveur habituellement déplorable ("hop, on masque les erreurs et on mate jamais le log"), et on voit rien.

Vérifies réellement. Places du debug sur ta requête. Il nous faut du code.