IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

SQL avant validation [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 211
    Par défaut SQL avant validation
    bonjour à tous,

    Voilà, j'ai un formulaire qui m'envoie vers une page 2.

    Je voudrais quand un utilisateur clique sur "Envoyer" cela déclenche avant une requête sql(insertion des champs dans une table) puis l'envoie vers la page 2.

    Je signale que je ne peux pas mettre ma requête au niveau de la page 2 puisqu'elle n'est pas mienne...

    Merci à tous.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par AbouZaid Voir le message
    Je signale que je ne peux pas mettre ma requête au niveau de la page 2 puisqu'elle n'est pas mienne...
    Bonjour,
    dans ce cas, une solution possible est de déclencher la requête(+enregistrement en Bdd ?) via Ajax, sur l'évènement onsubmit.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 211
    Par défaut
    Tu pourrais me dire comment faire stp, je ne connais pas AJAX...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Lis ce tuto => Web 2.0, allez plus loin avec AJAX et XMLHttpRequest

    Dans le principe :
    une fonction javascript : go() qui sera déclenchée sur le submit du formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="page2.php" onsubmit="go(); return true;">
    Dans cette fonction go() :
    - récupérer les valeurs des champs du formulaire
    - les transmettre à une page PHP traitement.php qui va créer la requête (et la traiter)
    - return true; pour envoyer le formulaire à la page2.php

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 211
    Par défaut
    Merci pour le lien.

    Donc à ton avis, il n'y a pas de méthode plus simple?

    Je pourrais par exemple envoyer mon formulaire vers une pagedetraitement.php et faire ma requête puis diriger vers la page2. Mais comment faire pour le passage des champs avec le POST depuis pagedetraitement.php vers page2 ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    La méthode aavec Ajax suppose un traitement "invisible".
    Citation Envoyé par AbouZaid Voir le message
    Je pourrais par exemple envoyer mon formulaire vers une pagedetraitement.php et faire ma requête puis diriger vers la page2.
    C'est la solution la plus simple.
    Citation Envoyé par AbouZaid Voir le message
    Mais comment faire pour le passage des champs avec le POST depuis pagedetraitement.php vers page2 ?
    Voilà toute la question.
    -> En ré-affichant un nouveau formulaire.

    A/ page1.php :
    remplacer action="page2.php" par action="pagedetraitement.php"

    B/ pagedetraitement.php :
    1/ récupérer les champs du formulaire simplement en $_POST
    2/ faire la requête, la traiter
    3/ AFFICHER UN NOUVEAU FORMULAIRE :
    - avec des champs type="hidden" (par exemple) contenant les valeurs (à transmettre à page2.php)
    - un bouton submit "envoyer à la page2"

    Et le tour est joué.

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 211
    Par défaut
    En fait si j'ajoute un autre bouton ça devrait être de trop pour le visiteur :

    1ère page : celle ou le visiteur saisie ses données + bouton envoyer
    2ème page : celle ou j'affiche un récap des données déjà saisie + bouton payer
    3ème page : page de traitement et je voudrais qu'elle soit invisible pour le visiteur et qu'il se redirige vers la 4ème page.
    4ème page : celle d'un autre site

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par AbouZaid Voir le message
    En fait si j'ajoute un autre bouton ça devrait être de trop pour le visiteur :
    C'est justement pour cette raison que j'avais d'abord proposé la solution en Ajax...

    IL FALLAIT LE DIRE que c'est pour un "paiement en ligne" !
    "autre site" = PayPal, ou autre, non ?

  9. #9
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 211
    Par défaut

    C'EST DANS CETTE PAGE qu'il faut faire la requête !
    En fait je ne voudrais pas faire le traitement avant que le visiteur n'est cliqué qur le bouton "Payer", sinon, je vais remplir ma base pour rien...

    sinon j'ai trouvé ça pour envoyer un formulaire directement sans cliquer sur le bouton juste après le <form> et les champs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    //<![CDATA[
    document.getElementById('id_du_formulaire').submit();
    //]]>
    </script>
    ça peut marcher?

  10. #10
    Invité
    Invité(e)
    Par défaut
    Normalement :
    1/ on remplit la base avec toutes les données, en mettant un champ validation_paiement=0
    2/ UNE FOIS LE PAIEMENT REGLE, on met validation_paiement=1
    Ça peut se faire par "retour d'info" (de Paypal)

    Sinon, il suffit de "nettoyer" la base de données de temps en temps (via un script ou à la main), et supprimer les ligne où validation_paiement=0 après un certain temps.

    Car même si la personne clique sur le bouton "payer", rien ne prouve qu'elle va effectivement aller jusqu'au bout du paiement.
    Sauf la confirmation de paiement elle-même.

  11. #11
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 211
    Par défaut
    Ok.

    Je ne me casse plus la tête avec cette page alors.

    Je vais suivre ton conseil et vider la base de temps en temps.

    Merci pour ta compréhension...

  12. #12
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    même si la personne clique sur le bouton "payer", rien ne prouve qu'elle va effectivement aller jusqu'au bout du paiement.
    +1

    Vu qu'il s'agit de paiement en ligne, il faut commencer par le début :
    Quel est le système de paiement ? (paypal, propre à ta banque, autre, etc ...)

    Quelque soit le moyen utilisé, ces gens là fournissent de la doc afin d'intégrer le système de paiement, parfois même ça demande d'intégrer des fichiers sur son serveur (ou alors l'hébergeur les a déjà).


    Dans tous les cas, enregistrer la commande avant que le client paie sur la plate forme de paiement n'est pas la solution.

    Normalement ceci ce fait via une communication entre la banque et ton site de manière transparente (très souvent effectué par des sockets, ou cUrl).
    C'est ceci qui permet d'enregistrer la commande après que la banque ait envoyée une confirmation de la transaction.
    Ce n'est pas pour t'effrayer, mais ceci est loin d'être simple à faire.


    Question comme ça à tout hasard.
    Pourquoi ne pas t'orienter vers des solutions genre Open Source de commerce en ligne, qui en général intègrent des solutions de paiement ?

  13. #13
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 211
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    +1

    Question comme ça à tout hasard.
    Pourquoi ne pas t'orienter vers des solutions genre Open Source de commerce en ligne, qui en général intègrent des solutions de paiement ?
    Bonjour,

    Et bien au Maroc, il y a un seul mode de paiement en Ligne et je n'ai pas le choix. Il faut que je passe par cet établissement.
    Donc je vais enregistrer la commande avant le paiement et nettoyer la base de temps en temps.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Valider la syntax d un script SQL avant execution
    Par Alec6 dans le forum Développement
    Réponses: 2
    Dernier message: 12/11/2010, 14h48
  2. [sql] instruction sql non valide
    Par liloo31 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 15/12/2006, 15h15
  3. demander saisi avant validation formulaire en javascript
    Par calitom dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/10/2006, 16h33
  4. comparaison avant validation
    Par the watcher dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/05/2006, 15h18
  5. Réponses: 7
    Dernier message: 11/02/2006, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo