Erreur de script introuvable !

Répondre
leboti
le 24/06/2012 à 21:59
leboti
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 :

<?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
anasha
le 20/07/2012 à 13:12
anasha
Bonjour leboti,

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 :-)
Anasha [php-kiche-nomore]
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours