• STATISTIQUES
  • Il y a eu un total de 0 membres et 33170 visiteurs sur le site dans les dernières 24h pour un total de 33 170 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] xda-developers
    Très bon site pour les gros bidouilleurs de smartphone de windows à androïd et de Apple jusqu'...
    Phreaking
    [FR] Comment ca marche
     Gratuit et accessible à tous, ce site de communauté permet de se dépanner, se faire aider ...
    Webmaster
    [EN] Security Traps
    Site de challenge qui prétend être construit non pas dans le but de parfaire vos connaissances, mais plutôt dan...
    Challenges
    [EN] social-engineer
    Site dédié au Social Engineering en général.
    Hacking
    [EN] Rosecode
    Programming: 36, Math: 29, Probability: 5, Sequence: 7, Crypto: 4, Brainf**k: 13, TimeRace: 4, Hack: 9
    Challenges
    [EN] SecurityFocus
    SecurityFocus a été conçu pour faciliter la discussion sur des sujets liés la sécu...
    Vulnérabilités
    [FR] Infomirmo
    Challenge présenté sous la forme de 6 niveaux de difficultés diverses et variées avec chacun plusieurs chall...
    Challenges

  • 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 621 01-02-2013, 19h10
Dernier message: Hypnoze57

Atteindre :


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