PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#2 Forum Général PHP » [DEBUTANT] Echange de données à double sens entre deux scripts » 26-10-2012 13:59:34

Le_gnou
Réponses : 6

Bonjour à tous,

Il est fréquent de voir un script envoyer des données vers un autre.

Est-il possible que le script#1 envoie des données au script#2 et attende une réponse ?

Voici ma problématique detaillée :
- script#1 est appelé par un user pour commander un article (il renseigne son adresse e-mail), script#1 envoie l'adresse mail du user à script#2 ainsi que le montant de la commande,
- script#2 récupère cette data et interroge une DB MySQL : Quel ID de user dans ma base possède cet e-mail ? Combien ce user possède de crédit ? Son crédit est il suffisant pour payer sa commande ? NON > script#2 répond "non" à script#1 - OUI > script#2 répond "oui" à script#1
- script#1 récupère la réponse de script#2 et agir en conséquence (valide la commande ou pas)

#3 Forum Général PHP » Syntaxe de $_GET » 10-09-2011 22:28:18

Le_gnou
Réponses : 1

Bonjour à tous,

J'ai un petit bout de code que je n'arrive pas à débeuguer... Tout me laisse croire à une faute de syntaxe :

$docId  = (int) $_GET['docId'];
$uid    = $_GET['uid'];
$awards = (int) $_GET['awards'];
$trId   = $_GET['trId'];
$promoId  = ((isset($_GET['promoId'])) ? (int) $_GET['promoId'] : 0 );
$hash = $_GET['hash'];

Si je mets les valeurs "en dur" ($docId = 123, etc) mon code fonctionne à merveille...

Une idée ?

#4 Re : Forum Général PHP » Mon script n'écrit pas dans ma BD MySQL :( » 15-02-2012 22:17:13

Merci... Corrigé aussi mais ça ne fonctionne toujours pas : aucune écriture dans la base de donnée sad

#5 Re : Forum Général PHP » Mon script n'écrit pas dans ma BD MySQL :( » 15-02-2012 22:17:13

Merci infiniment, Pierrot...

Mais pourquoi alors l'instruction qui se trouve avant ne s'éxécute pas ?

    # Adding points
    mysql_query( 'UPDATE $main_AUP_table SET points=points+'.$awards.' WHERE userid=''.addslashes($uid).''', $cnx);

#6 Forum Général PHP » Mon script n'écrit pas dans ma BD MySQL :( » 15-02-2012 22:17:13

Le_gnou
Réponses : 7

Bonjour à tous...

Je suis grand débutant en PHP que je me mets à apprendre depuis le début de la semaine dernière...

Voici mon script. Il s'agit d'un Callback, c'est à dire que ce script reçoit la réponse suite au paiement d'un utilisateur sur un site externe et utilise les données transmises pour :
   - 1/ AJOUTER DES POINTS SUR LE COMPTE DE CET UTILISATEUR
   - 2/AJOUTE UN ENREGISTREMENT DANS UNE TABLE MYSQL POUR GARDER UN HISTO DE LA TRANSACTION

VOICI MON CODE QUI NE SEMBLE PAS FONCTIONNER :

<!-- script adding Points to a user who had posted a form -->
<?php
## DATAS SENTS BACK BY THE FORM
$MYSECRETKEY = 'mysecretkey';

$docId    = (int) $_GET['docId'];
$uid    = $_GET['uid'];
$awards   = (int) $_GET['awards'];
$trId   = $_GET['trId'];
$promoId  = ((isset($_GET['promoId'])) ? (int) $_GET['promoId'] : 0 );
$hash   = $_GET['hash'];

## DATAS NEEDED TO ADD POINTS TO THE CORRECT USER
$database     = 'my_jommla_database'
$host       = 'localhost'
$main_AUP_table   = 'jos_alpha_userpoints'
$custom_AUP_table   = 'jos_alpha_userpoints_history_payments'
$DB_user      = 'myDBuser'
$DB_password    = 'myPassword'


## CHECK HASH VALUE
if(md5($uid . $awards . $trId . $MYSECRETKEY) == $hash) {
  # DB connect
  $cnx = mysql_connect($host, $DB_user, $DB_password);
  mysql_select_db($database, $cnx);
 
 
  $rs = mysql_query("SELECT COUNT(1) AS NB FROM $custom_AUP_table WHERE external_reference = ''.addslashes($trId).''", $cnx);
  $ifFindTr = (int) mysql_result($rs, 0, 'NB');
  unset($rs);
 
  if($ifFindTr == 0) {
    # all is OK
    # we can add $awards points to the user and save transaction
   
    # Adding points
    mysql_query("UPDATE $main_AUP_table SET points=points+'.$awards.' WHERE userid=''.addslashes($uid).''", $cnx);
   
    # Register in jos_alpha_userpoints_history_payments
    mysql_query( "INSERT INTO $custom_AUP_table (doc_id, user_id, awards, external_reference, promo_id, date)"
          .'VALUES('.$docId.', ''.addslashes($uid).'', '.$awards.', ''.addslashes($trId).'', '.$promoId.', NOW())', $cnx);
   
    echo 'OK';
   
  }
  else {
    # this transaction reference already added
    # add in error log  
   
    echo 'this transaction reference already added';
  }
 
  mysql_close($cnx);
}
else {
  # hash error
  # add in error log  
 
  echo 'hash error';
 
}


?>

Des idées, Mesdames et Messieurs les experts , wink

Pied de page des forums

Propulsé par FluxBB