Manuels
Divers
Erreur de script introuvable !
Bonjour !
Je me permet de vous demander votre aide car je suis sur un script php qui bug depuis 5h, et je n'arrive pas à trouver mon erreur..
Le voici :
Alors deux choses :
- Tout ce passe bien, je remplis le nom du compte, il exécute jusqu'à la fin, m'annonce l'ajout des points, mais aucun point n'est ajouter dans la DB.
- Deuxieme chose, il affiche le message de réussite alors que les points ne se sont pas rajouter, comment faire pour modifier ça ?
je suis débutant, je connais les bases, et j'apprend en essayant, et en recherchant.. D'habitude je trouve, mais la j'ai beau essayer différente méthodes d'approche, ca ne marche tjrs pas...
Un conseil à m'apporter ?
Merci
Je me permet de vous demander votre aide car je suis sur un script php qui bug depuis 5h, et je n'arrive pas à trouver mon erreur..
Le voici :
- <?php
- session_start();
- $points = 10; // NOMBRE DE POINT(S) AJOUTE(S)
- $host = "localhost"; // HOTE SQL
- $user = "MYLOGIN"; // NOM D'UTILISATEUR DE LA DB
- $pass = "MYMDP"; // MOT DE PASSE
- $db = "auth"; // NOM DE LA DB
- $dbsite = "site"; //Nom de la db site
- $name = "Don de point"; // NOM DE LA PAGE
- ?>
- <title><?php echo $name; ?></title>
- <form action="" method="POST">
- <h3>Nom de compte :</h3><input type="text" name="username"/> <input type="submit" value="Continuer" name="submit" />
- </form>
- <?php
- if (isset($_POST['submit']))
- {
- $username = mysql_real_escape_string(trim($_POST['username']));
- if ($username == "")
- {
- echo "Veuillez saisir votre nom de compte.";
- }
- else
- {
- $cnx = mysql_connect($host, $user, $pass) OR DIE (mysql_error()); // Je me connecte à ma DB
- mysql_select_db($db) OR DIE (mysql_error()); // Je selectionne ma db
- $requete = "SELECT count(*) as nb FROM account WHERE username = '$username'"; // Je creer ma requete pour verifier si l'user existe
- $req_exec = mysql_query($requete, $cnx); // Je l'execute
- $resultat = mysql_fetch_assoc($req_exec); // Je recupere la reponse
- if ($resultat['nb'] == 0)
- {
- echo "Ce compte n'existe pas."; // Si c'est faux, on affiche ca
- }
- else // Sinon on continue
- {
- $sql = "SELECT id FROM account WHERE username='$username'"; // Je creer ma requete pour allez chercher l'id du compte de username
- $req = mysql_query($sql, $cnx) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // j'execute
- $id = mysql_fetch_array ($req); // je récupère le résultat
- mysql_select_db($dbsite) OR DIE (mysql_error()); // je change de db
- $nbrdp = "SELECT dp FROM account_data WHERE id='$id'"; // je creer ma requete pour allez chercher le nombre de db que le comptre username a
- $reqdp = mysql_query($nbrdp, $cnx) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // j'execute
- $dp = mysql_fetch_array ($reqdp); // je recupere le resultat
- $newdp = $dp+$points; // je calcule le nouveau nombre de DP
- $sqlupdate = "UPDATE account_data SET dp ='$newdp' WHERE id='$id'"; // je creer ma requete pour modifier la valeur de dp du compte username
- mysql_query($sqlupdate) OR DIE ('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // j'execute
- mysql_close (); // je ferme ma connexion
- echo htmlentities($points." point(s) ajouté(s) sur le compte : ".$username); // j'affiche que les points ont été ajouté
- }
- }
- }
- ?>
Alors deux choses :
- Tout ce passe bien, je remplis le nom du compte, il exécute jusqu'à la fin, m'annonce l'ajout des points, mais aucun point n'est ajouter dans la DB.
- Deuxieme chose, il affiche le message de réussite alors que les points ne se sont pas rajouter, comment faire pour modifier ça ?
je suis débutant, je connais les bases, et j'apprend en essayant, et en recherchant.. D'habitude je trouve, mais la j'ai beau essayer différente méthodes d'approche, ca ne marche tjrs pas...
Un conseil à m'apporter ?
Merci
Bonjour leboti,
Lorsque que tu crées la nouvelle valeur des points (ligne 52) :
Tu utilise la variable $dp, qui n'est pas un entier, mais un tableau.
En effet, cette variable est le résultat de mysql_fetch_array($reqdp).
Creuse par là.
Pour éviter ce genre de souci, je t'invite à utiliser une norme pour nommer tes variables :
Tu y verras plus clair dès la lecture de ton code.
Dis-moi si ça t'aide :-)
Lorsque que tu crées la nouvelle valeur des points (ligne 52) :
- <?php
- $newdp = $dp+$points;
- ?>
Tu utilise la variable $dp, qui n'est pas un entier, mais un tableau.
En effet, cette variable est le résultat de mysql_fetch_array($reqdp).
Creuse par là.
Pour éviter ce genre de souci, je t'invite à utiliser une norme pour nommer tes variables :
- <?php
- $aVariable; // pour les array
- $iVariable; // pour les integer
- $sVariable; // pour les string
- $oVariable; // pour les objets
- $bVariable; // pour les booleen
- ?>
Tu y verras plus clair dès la lecture de ton code.
Dis-moi si ça t'aide :-)
Accès rapide :
Remonter 

