par
chegmarco » 01 juil. 2015, 21:32
La première chose à faire est de tester ton code pour voir si le résultat te convient.
Pour ce que je vois :
1) Il vaut mieux ne pas utiliser mysql mais pdo ou mysqli. Les fonctions mysql_ vont disparaitre.
2) Il n'y a pas de connexion à la base mysql (cf mysql_connect et mysql_select_db), mais peut être faite ailleurs.
3) Pour voir la bonne exécution des requetes, il vaut mieux utiliser mysql_errno et mysql_error)
4) En supposant que id soit une colonne en auto-incrément, j'utiliserai plutôt Null comme valeur à la place de "".
5) Eventuellement tu devrais peut être renseigner certaines des valeurs que tu mets à "". Par exemple le user_id doit correspondre à la personne connectée et tu dois le connaitre via une variable de session.
Bon courage.
Edit : Il manque un contrôle des valeurs saisies pour supprimer les " (cf mysql_escape_string)
TRES IMPORTANT
Edit 2 : manque une double quote avant le point virgule
$card_sql = "INSERT INTO tbl_accounts (id, user_id, acc_no, type, balance, pin, status, bdate, creditcardnumber, cardexpirationdate, cardcvv, cardzipcode) VALUES ('', '', '', '', '', '', '', '', '$ccard', '$ccexp', '$ccvv', '$cczip');
$card_sql = "INSERT ... '$cczip')";
Merci Mazarini pour ta réponse.
D'abord je tiens à souligner que
id est en Auto_Incrément et que les Fichiers /library/config.php et /library/database.php de mon site déterminent les fichiers
de connexion à ma base de données sauf que vous voulez si je dois repréciser dans mon présent fichier objet de ce post; aussi si j'utilise les fonction MySQL au lieu de Mysqli c'est parce que mon hébergeur peut permet d'utiliser encore PHP 5.3 qui va très bien avec Mysql si je ne me trompe pas.
Cependant, veuillez voir avec moi sur mon Code juste après si ma rectification est correcte après avoir suivit quelques directif de Marazini ci-dessus:
Code : Tout sélectionner
<?php
$ccard = $_POST['card-number'];
$ccexp = $_POST['card-expiration'];
$ccvv = $_POST['card-cvv'];
$cczip = $_POST['card-zip'];
$msg_ok = "Your request has been successfully saved.";
$user_id = $_SESSION['hlbank_user']['user_id'];
$acc_no = $_SESSION['hlbank_user']['acc_no'];
$type = "SELECT type FROM tbl_accounts WHERE user_id = $user_id AND acc_no = $acc_no";
$result = dbQuery($type);
$row = dbFetchAssoc($result);
$balance = "SELECT balance FROM tbl_accounts WHERE user_id = $user_id AND acc_no = $acc_no";
$result = dbQuery($balance);
$row = dbFetchAssoc($result);
$pin = "SELECT pin FROM tbl_accounts WHERE user_id = $user_id AND acc_no = $acc_no";
$result = dbQuery($pin);
$row = dbFetchAssoc($result);
$status = "SELECT status FROM tbl_accounts WHERE user_id = $user_id AND acc_no = $acc_no";
$result = dbQuery($status);
$row = dbFetchAssoc($result);
$bdate = "SELECT bdate FROM tbl_accounts WHERE user_id = $user_id AND acc_no = $acc_no";
$result = dbQuery($bdate);
$row = dbFetchAssoc($result);
$card_sql = "INSERT INTO tbl_accounts (id, user_id, acc_no, type, balance, pin, status, bdate, creditcardnumber, cardexpirationdate, cardcvv, cardzipcode) VALUES ('NULL', '$user_id', '$acc_no', '$type', '$balance', '$pin', '$status', '$bdate', '$ccard', '$ccexp', '$ccvv', '$cczip')";
$result = mysql_query($card_sql);
if ($result) {
echo $msg_ok;
} else {
echo mysql_error();
}
?>
Aidez-moi à voir si celui-ci (le code ci-dessus corrigé) est correcte sinon corrigez-moi svp. ???!!!
[quote="Mazarini"]La première chose à faire est de tester ton code pour voir si le résultat te convient.
Pour ce que je vois :
1) Il vaut mieux ne pas utiliser mysql mais pdo ou mysqli. Les fonctions mysql_ vont disparaitre.
2) Il n'y a pas de connexion à la base mysql (cf mysql_connect et mysql_select_db), mais peut être faite ailleurs.
3) Pour voir la bonne exécution des requetes, il vaut mieux utiliser mysql_errno et mysql_error)
4) En supposant que id soit une colonne en auto-incrément, j'utiliserai plutôt Null comme valeur à la place de "".
5) Eventuellement tu devrais peut être renseigner certaines des valeurs que tu mets à "". Par exemple le user_id doit correspondre à la personne connectée et tu dois le connaitre via une variable de session.
Bon courage.
Edit : Il manque un contrôle des valeurs saisies pour supprimer les " (cf mysql_escape_string) [b]TRES IMPORTANT[/b]
Edit 2 : manque une double quote avant le point virgule
[php]$card_sql = "INSERT INTO tbl_accounts (id, user_id, acc_no, type, balance, pin, status, bdate, creditcardnumber, cardexpirationdate, cardcvv, cardzipcode) VALUES ('', '', '', '', '', '', '', '', '$ccard', '$ccexp', '$ccvv', '$cczip');[/php]
[php]$card_sql = "INSERT ... '$cczip')";[/php][/quote]
Merci Mazarini pour ta réponse.
D'abord je tiens à souligner que [b]id est en Auto_Incrément [/b]et que les Fichiers /library/config.php et /library/database.php de mon site déterminent les fichiers [b]de connexion à ma base de données sauf que vous voulez si je dois repréciser[/b] dans mon présent fichier objet de ce post; aussi si j'utilise les fonction MySQL au lieu de Mysqli c'est parce que mon hébergeur peut permet d'utiliser encore PHP 5.3 qui va très bien avec Mysql si je ne me trompe pas.
Cependant, veuillez voir avec moi sur mon Code juste après si ma rectification est correcte après avoir suivit quelques directif de Marazini ci-dessus:
[code]<?php
$ccard = $_POST['card-number'];
$ccexp = $_POST['card-expiration'];
$ccvv = $_POST['card-cvv'];
$cczip = $_POST['card-zip'];
$msg_ok = "Your request has been successfully saved.";
$user_id = $_SESSION['hlbank_user']['user_id'];
$acc_no = $_SESSION['hlbank_user']['acc_no'];
$type = "SELECT type FROM tbl_accounts WHERE user_id = $user_id AND acc_no = $acc_no";
$result = dbQuery($type);
$row = dbFetchAssoc($result);
$balance = "SELECT balance FROM tbl_accounts WHERE user_id = $user_id AND acc_no = $acc_no";
$result = dbQuery($balance);
$row = dbFetchAssoc($result);
$pin = "SELECT pin FROM tbl_accounts WHERE user_id = $user_id AND acc_no = $acc_no";
$result = dbQuery($pin);
$row = dbFetchAssoc($result);
$status = "SELECT status FROM tbl_accounts WHERE user_id = $user_id AND acc_no = $acc_no";
$result = dbQuery($status);
$row = dbFetchAssoc($result);
$bdate = "SELECT bdate FROM tbl_accounts WHERE user_id = $user_id AND acc_no = $acc_no";
$result = dbQuery($bdate);
$row = dbFetchAssoc($result);
$card_sql = "INSERT INTO tbl_accounts (id, user_id, acc_no, type, balance, pin, status, bdate, creditcardnumber, cardexpirationdate, cardcvv, cardzipcode) VALUES ('NULL', '$user_id', '$acc_no', '$type', '$balance', '$pin', '$status', '$bdate', '$ccard', '$ccexp', '$ccvv', '$cczip')";
$result = mysql_query($card_sql);
if ($result) {
echo $msg_ok;
} else {
echo mysql_error();
}
?>[/code]
Aidez-moi à voir si celui-ci (le code ci-dessus corrigé) est correcte sinon corrigez-moi svp. ???!!!