Vous n'êtes pas identifié(e).
Pages :: 1
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 :
$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 ,
Dernière modification par Le_gnou (06-09-2011 19:13:10)
Hors ligne
VALUES prend un S
a++
Hors ligne
Merci infiniment, Pierrot...
Mais pourquoi alors l'instruction qui se trouve avant ne s'éxécute pas ?
Hors ligne
'UPDATE $main_AUP_table SET points=points+'
les variables ne sont pas parsées entre les simples cote de porc
a++
Hors ligne
Merci... Corrigé aussi mais ça ne fonctionne toujours pas : aucune écriture dans la base de donnée
Hors ligne
Je réactive ce sujet étant donné le problème évoquer est similaire au mien.
Mon soucis est qu'à l'enregistrement. Les données introduitent par l'arrivant ne s'enregistrent pas dans la BDD.
La page inscription.php pour s'enregistrer
<p>
<label>Votre pseudo</label> <input type="
Et voici ma page add.php pour mettre dans la table membre_tbl les nouveaux inscripts au site.
if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";
if(isset($_POST['password'])) $password=$_POST['password'];
else $password="";
if(empty($pseudo) OR empty ($email) OR empty ($password));
{
echo '<font color="red">'Il manque un champs, veuillez réessayer !'</font>;
}
else
}
$db = mysql_connect('sql.lhebergeur.com', '00000_site', 'motdepasse') or die('Erreur de connexion '.mysql_error());
mysql_select_db('membre_tbl',$db) or die('Erreur de selection '.mysql_error());
$sql = INSERT INTO membre_tbl VALUES('','.$pseudo.','.$email.', '.$password.');
mysql_query ($sql) or die( 'Erreur SQL !'.$sql.'</br>'.mysql_error());
echo <h3>'Vous êtes enregistré'</h3>;
}
mysql_close();
}
?>
</html>
Il doit surement manquer quelques choses. Etant donne qu'aucune donnée arrive dans la table membre_tbl.
Pouvez-vous m'aiguiller, s'il vous plait.
Hors ligne
l'erreur est là
<input type="password" name="mot de passe" id="mot de passe" required />
if(isset($_POST['password'])) $password=$_POST['password'];
else $password="";
et là :
entre autre
$sql = INSERT INTO membre_tbl VALUES('','.$pseudo.','.$email.', '.$password.');
j'arrete là, parce que y trop d'erreur
a++
Hors ligne
Si j'ai bien compris l'exemple. Je dois changer les indications "mot de passe" et mettre à la place "password" ?
Hors ligne
Pages :: 1