• STATISTIQUES
  • Il y a eu un total de 3 membres et 5263 visiteurs sur le site dans les dernières 24h pour un total de 5 266 personnes!


    Membres: 2 606
    Discussions: 3 580
    Messages: 32 820
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Root-Me
    Notre équipe se base sur un constat : à l'heure actuelle ou l'information tend à devenir...
    Hacking
    [EN] Lost-chall
    Site de challenge présenté sous la forme de différente saison. Pour passer une saison vous devez avoir accumul...
    Challenges
    [FR] Microcontest
    Cryptographie: 7, Mathématiques: 8, Image Son Vidéo: 5, Intelligence artificielle: 3, Réseau: 2, Divers: 7, Phy...
    Challenges
    [FR] Asp-php
    Tutoriaux sur ASP, PHP, ASP.net, XML, SQL, Javascript, HTML, VML - Scripts et ressources pour webmasters - Forums d&#...
    Programmation
    [EN] Listbrain Version 3
    Site proposant 66 challenges présentés dans une liste mélangée.
    Challenges
    [EN] Dare your mind
    JavaScript: 6, Crypto: 44, Stegano: 36, Logic: 13, Special: 27, Science: 11, Realistic: 7, Programming: 10, Crack It: 6,...
    Challenges
    [FR] PHP Débutant
    Apprendre le PHP par l'exemple, facilement et simplement. Réservé d'abord aux débutants....
    Programmation

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[php] Code source ?
17-11-2013, 10h27
Message : #1
Yuri Hors ligne
Czech Membre
*



Messages : 53
Sujets : 7
Points: 4
Inscription : Aug 2013
[php] Code source ?
Salut j'aimerais savoir si on pouvais raccourcir ce type de code, il s’agit d'additionner et redonner aux membres des points :

Code PHP :
$connect mysql_connect($ip$id$mdp);
mysql_select_db($database);

// On affiche le nombre de points que le membre a déjà et on stock l'information dans une variable

$table2 mysql_query("SELECT * FROM accounts WHERE account='$username'");
while (
$tab_contenu=mysql_fetch_assoc($table2))
{
$points $tab_contenu['points'];
}

$username $_SESSION['username'];
$point $points+$point_par_appel;

// On additionne les points du membre avec les points achetés

$table mysql_query("UPDATE accounts SET points='$point' WHERE account='$username'");
$rows = ($table);

if(
$rows==1)
// si tout est OK, on lui remet les points achetés et on le prévient du nombre qu'il a gagné.
{


echo 
"<em style='color:green;'>Felicitation ! Vous avez été créditée de $point_par_appel points !</em>";

}else echo
"<p style='color:red;margin-left:500px;'>Erreur, code invalide</p>"
Citation :" Pour apprendre à boxer il suffit d'une nuit. Il faut une vie entière pour apprendre à combattre. "
+1 (1) -1 (0) Répondre
17-11-2013, 10h41 (Modification du message : 17-11-2013, 10h43 par Dobry.)
Message : #2
Dobry Hors ligne
Tueur de lamouz
*



Messages : 206
Sujets : 25
Points: 73
Inscription : Aug 2011
RE: [php] Code source ?
Bonjour,
Je ne suis pas sûr d'avoir saisi ce que tu souhaite faire, mais il y a un certains nombre d'éléments qui me dérangent dans ton code, et qui ne peuvent être negligés !
En effet, tu ne fais aucune vérification sur les variables qui tu ajoutes dans tes requêtes qui sont donc à priori toutes vulnérables aux injections SQL, par exemple si $username contient " ' ", la requete va être completement transformée et le pirate pourra faire ce qu'il veut sur ta base de donnée.
Tu peux trouver une explication sur ce type de faille http://n-pn.fr/t/Comment+exploiter+une+f...ction/1199, mais je trouve que ce "tuto" est très incomplet car il ne présente aucune solution à ce problème.

Je pense que la meilleur solution pour pallier à ce problème est d'utiliser les requetes préparées, disponible avec PDO ou Mysqli par exemple, cependant, si tu souhaite garder ton code similaire, tu peux utiliser la fonction http://php.net/manual/fr/function.mysql-...string.php sur tes variables (ce qui confirme ce que je disais avant).

Je me suis peut être éloigné de la question principale et peut être que tu fais ce traitement dans une partie du code que tu ne nous a pas montré, tout ca pour dire qu'il faudrait changer pour PDO ou Mysqli !

Une autre chose qui me gène c'est que tu fais appel à $username dans ta première requête, avant même de l'instancier à l'aide de la session (et il manque le sessions_start()) encore une fois, peut être que ce n'est juste pas dans la partie du code que tu nous a montré, et dans ce cas, j'aurais écrit tout cela pour rien.
Aestuārium Erudītiōnis

There are only two hard things in Computer Science: cache invalidation, naming things, and off-by-one errors.
+1 (2) -1 (0) Répondre
17-11-2013, 10h50
Message : #3
Yuri Hors ligne
Czech Membre
*



Messages : 53
Sujets : 7
Points: 4
Inscription : Aug 2013
RE: [php] Code source ?
Ceci-ci est juste une partie du code, le bout de code dédiée aux remises de points aux membres.
Je prends note pour PDO Wink
Merci
Citation :" Pour apprendre à boxer il suffit d'une nuit. Il faut une vie entière pour apprendre à combattre. "
+1 (0) -1 (0) Répondre
17-11-2013, 10h51
Message : #4
0pc0deFR
Non-enregistré



 
RE: [php] Code source ?
Tu ne peux pas vraiment réduire le code sauf en te passant des variables que tu définis type $username ou $point. Je rejoins ce qui à été dit sur le post précédent, pas mal de choses ne vont pas.
positive (0) negative (0) Répondre
17-11-2013, 11h04 (Modification du message : 17-11-2013, 12h44 par Kiwazaru.)
Message : #5
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: [php] Code source ?
si c'est juste de la réduction de code :
Code PHP :

$connect = mysql_connect($ip, $id, $mdp);
mysql_select_db($database);
// On affiche le nombre de points que le membre a déjà et on stock l'information dans une variable
while ($tab_contenu=mysql_fetch_assoc(mysql_query("SELECT * FROM accounts WHERE account='$username'")))
$points = $tab_contenu['points'];
// On additionne les points du membre avec les points achetés
if(mysql_query("UPDATE accounts SET points='$points+$point_par_appel' WHERE account='$_SESSION['username']'")==1)
echo "<em style='color:green;'>Felicitation ! Vous avez été créditée de $point_par_appel points !</em>";
else echo"<p style='color:red;margin-left:500px;'>Erreur, code invalide</p>";
 

devrait fonctionner.
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (2) -1 (0) Répondre
17-11-2013, 16h17
Message : #6
Sh4dows Hors ligne
Tweetos
*



Messages : 293
Sujets : 5
Points: 49
Inscription : Dec 2012
RE: [php] Code source ?
Citation :Ceci-ci est juste une partie du code, le bout de code dédiée aux remises de points aux membres.
Après si tu as juste besoin d'ajouter des points sans avoir à afficher le nombre de point que le membre possède avant l'achat, tu peux faire ça en une requête SQL au lieu de 2 Tongue

Code PHP :

<?php
$username = $_SESSION['username'];
$point_par_appel = 10;
$table = mysql_query("UPDATE account SET points=points+$point_par_appel WHERE account=$username");
$rows = ($table);
if($rows==1){
        echo "<em style='color:green;'>Felicitation ! Vous avez été créditée de $point_par_appel points !</em>";
} else {
        echo"<p style='color:red;margin-left:500px;'>Erreur, code invalide</p>";
}
 

En gros tu SET tonchamp=tomchamp+n Wink
Faites ce que je dis et non ce que je fais !
+1 (1) -1 (0) Répondre
17-11-2013, 19h14
Message : #7
Yuri Hors ligne
Czech Membre
*



Messages : 53
Sujets : 7
Points: 4
Inscription : Aug 2013
RE: [php] Code source ?
@Instinct :
Code PHP :
points='$points+$point_par_appel' 
Erreur ici mais c'est bon corriger. Merci à vous tous. Pour votre aide Wink

@Sh4dow : Cool Thx je link this Wink


Yuri.
Encore merci
Citation :" Pour apprendre à boxer il suffit d'une nuit. Il faut une vie entière pour apprendre à combattre. "
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  LFI .log Finder (+ Source PHP) Hypnoze57 11 595 01-02-2013, 19h10
Dernier message: Hypnoze57

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut