Reflexion sur php

Fermé
Stazus Messages postés 95 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 4 août 2013 - Modifié par Stazus le 24/06/2011 à 18:21
Stazus Messages postés 95 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 4 août 2013 - 25 juin 2011 à 09:34
Bonjour,

Je suis en train de coder un système de paiement allopass.
Voilà comment ça fonctionne:

Le client fait sa commande et définit son offre, ensuite un bon de commande est tiré avec en dessous un choix de paiement en allopass ou paypal(que je ferais plutard).
lorsque l'on clique sur allopass, une page s'affiche est annonce
À payer: 10€
Payé: 0€
et au fort est a mesure que la personne entre des codes corrects cela incrémente
Code bon:
À payer: 9€
Payé: 1€
....

Le soucis c'est qu'il suffit de rentrer un code bon et de rafraichir la page sans entré de code pour que sa incrémente quand même :D

Quelqu'un aurait une idée pour que je puisse contrer cela?


(ps:
page allopass début de payement: allopass1.php,
page code bon(avec incrémentation: allopass2.php
et page de code incorrecte allopasserror.php)

Merci pour vos futurs réponses et réflexions :p
Cordialement!

¤¤ Stazus ¤¤
A voir également:

17 réponses

Montre nous ton code...

Lucas
0
Stazus Messages postés 95 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 4 août 2013 4
24 juin 2011 à 18:30
Alors:
allopass1.php :

<?php session_start(); 
   $total = $_SESSION['total'];
   $paye = "0";
 $_SESSION['paye'] =  $paye;
   ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Allopass</title>
</head>

<body>
<p>À payer:
  <?php
	echo "<strong>";
	 echo $total; 
	 	echo "</strong>";
	 ?>
€<br/>
Payé: <?php echo $paye; ?>€</p>
<div style="width:300px;font-family:Arial,Helvetica,sans-serif;font-size:10px;background-color:#ffffff;color:#000">
  <div style="height:25px;text-align:center"> <img src="http://payment.allopass.com/imgweb/script/fr_uk/acces_title.jpg" width="300" height="25" alt="Logo" /> </div>
  <div style="width:300px;text-align:right"> <img src="http://payment.allopass.com/imgweb/script/fr_uk/acces_left.jpg" width="79" height="29" alt="" style="float:left" /> </div>
  <form action="http://payment.allopass.com/acte/access.apu" method="post" name="APform" id="APform" style="text-align:center;clear:both">
    <input type="hidden" id="ids" name="ids" value="258022" />
    <input type="hidden" id="idd" name="idd" value="1026567" />
    <input type="hidden" id="lang" name="lang" value="fr" />
    <strong>Entrez votre code d'accès - <br />
      Enter your access code</strong><br />
    <br />
    <input type="text" size="8" maxlength="10" value="" name="code[]" style="background-color:#e7e7e7;border:#000080 1px solid;color:#000080;cursor:text;font-family:Arial;font-size:10pt;font-weight:bold;letter-spacing:normal;width:70px;text-align:center;" />
    <br />
    <br />
    <input type="button" name="APsub" value="" onclick="this.form.submit();this.form.APsub.disabled=true;" style="border:0px;margin:0px;padding:0px;width:48px;height:18px;background:url('http://payment.allopass.com/imgweb/common/bt_ok.gif');" />
    <br />
  </form>
</div>
</body>
</html>



allopass2.php :

<?php session_start(); 
   $totalavant = $_SESSION['total'];
   $total = $totalavant - 1;
   
      $payeavant = $_SESSION['paye'];
	  $paye = $payeavant + 1;

   ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Allopass</title>
</head>

<body>
<p>À payer:
    <?php
	echo "<strong>";
	 echo $total; 
	 	echo "</strong>";
	 ?>
  €<br/>
  Payé:<?php echo $paye; ?>€</p>
  <?php echo $_POST['ids']; ?>
<div style="width:300px;font-family:Arial,Helvetica,sans-serif;font-size:10px;background-color:#ffffff;color:#000">
  <div style="height:25px;text-align:center"> <img src="http://payment.allopass.com/imgweb/script/fr_uk/acces_title.jpg" width="300" height="25" alt="Logo" /> </div>
  <div style="width:300px;text-align:right"> <img src="http://payment.allopass.com/imgweb/script/fr_uk/acces_left.jpg" width="79" height="29" alt="" style="float:left" /> </div>
  <form action="http://payment.allopass.com/acte/access.apu" method="post" name="APform" id="APform" style="text-align:center;clear:both">
    <input type="hidden" id="ids" name="ids" value="258022" />
    <input type="hidden" id="idd" name="idd" value="1026567" />
    <input type="hidden" id="lang" name="lang" value="fr" />
    <strong>Entrez votre code d'accès - <br />
      Enter your access code</strong><br />
    <br />
    <input type="text" size="8" maxlength="10" value="" name="code[]" style="background-color:#e7e7e7;border:#000080 1px solid;color:#000080;cursor:text;font-family:Arial;font-size:10pt;font-weight:bold;letter-spacing:normal;width:70px;text-align:center;" />
    <br />
    <br />
    <input type="button" name="APsub" value="" onclick="this.form.submit();this.form.APsub.disabled=true;" style="border:0px;margin:0px;padding:0px;width:48px;height:18px;background:url('http://payment.allopass.com/imgweb/common/bt_ok.gif');" />
    <br />
  </form>
</div>
<?php
	   $_SESSION['total'] = $total;
	  $_SESSION['paye'] = $paye;
 ?>
</body>
</html>


Voilà :)
0
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
Modifié par lucas06150 le 24/06/2011 à 18:41
Voilà la partie qui ne va pas :
<?php session_start();  
   $totalavant = $_SESSION['total']; 
   $total = $totalavant - 1; 
    
      $payeavant = $_SESSION['paye']; 
   $paye = $payeavant + 1; 

   ?> 


Effectivement, si tu rafraîchis allopass2.php la décrémentation se fera forcément.
Il faut que tu test, d'abord, si le code est correct puis tu décrémente.

Par exemple :

 <?php 
if ($_POST['code'] == "un_code_correct") {
   $total = $totalavant - 1; 
    
      $payeavant = $_SESSION['paye']; 
   $paye = $payeavant + 1; 
}

0
Stazus Messages postés 95 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 4 août 2013 4
24 juin 2011 à 18:42
Tout d'abord merci pour ta réponse,
Le soucis c'est que la vérification du code est fait chez allopass donc je n'ai de réponse de allopass a part qui faire une redirection sur allopass2.php
cordialement
0

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

Posez votre question
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
24 juin 2011 à 18:47
donne moi le code de allopass.php
0
Stazus Messages postés 95 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 4 août 2013 4
24 juin 2011 à 18:47
Il y a que 2 pages, allopass1.php(début) et allopass2.php(incrémentation)
0
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
24 juin 2011 à 18:57
Je ne vois pas la vérification dans allopass1 ?
0
Stazus Messages postés 95 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 4 août 2013 4
24 juin 2011 à 18:59
Car allopass ne s'affiche que une fois ^^"
0
Stazus Messages postés 95 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 4 août 2013 4
24 juin 2011 à 22:05
up
0
Bilow Messages postés 1014 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
24 juin 2011 à 22:09
Salut,

Dans ta variable de session, tu définis un tableau où tu inscris les codes déjà utilisés.

Ensuite, avant de prendre en compte ce code, tu vérifies s'il n'est pas déjà dans la liste.

;-)
0
Stazus Messages postés 95 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 4 août 2013 4
24 juin 2011 à 23:07
Salut, merci pour ta réponse, mais le soucis c'est que je n'ai pas possibilité de reprendre le code inscris car cela va directement sur le serveur allopass ducoup je peux pas récupérer le $_POST :/
Cordialement
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
Modifié par naruto-94 le 25/06/2011 à 00:11
là ou il y a le script allopass tu fais une session 'activation' à 0 , quand il va sur la page payante tu fais une condition SI activation == 0 ALORS on modifie le total à payer ensuite tu la met à 1 , comme ça s'il rafraichit ça passe plus .
0
Stazus Messages postés 95 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 4 août 2013 4
25 juin 2011 à 01:36
Oui mais ducoup si la personne a 3 allopass a mettre sa bloquera au bout de deux? car une fois arrivé sur allopass2.php la session activation sera toujours a 1
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
25 juin 2011 à 01:44
Ben en faite tu vas jamais trouver un moyen si déjà tu mets un script allopass dans une page déja protégé par allopass , puis surtout si tu veux gérer le paiement que par session .. parceque la si tu fermes le navigateur pendant les transactions ben les sessions disparaissent .. et tout revient à 0

faut que tu gères ça par un autre moyen ( avec bdd en l'occurrence) .
0
Stazus Messages postés 95 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 4 août 2013 4
25 juin 2011 à 01:48
Oui c'est vrai tu as raison...
Je verrais cela demain avec une bdd histoire de voir comment positionner les tableaux...
Mais cela restera le même soucis, avec l'histoire du rafraichissement cela incrémentera la bdd.
En tout cas merci pour tes réponses c'est vraiment gentil..

Cordialement
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
25 juin 2011 à 01:54
Ben avec la BDD il suffira que d'une session comme je l'ai dis précédemment . et tu fais retourner le visiteur sur allopass1.php àa la fin du traitement , comme ça l'histoire peut se répéter sans soucis .

et de rien :)
0
Stazus Messages postés 95 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 4 août 2013 4
25 juin 2011 à 09:34
Ah oui!!! pas bète une sorte de redirection rapide vers alloapss1.php afin d'éviter un rafraichissement
0