Soucis d'affichage et d'execution

Soucis d'affichage et d'execution - PHP - Programmation

Marsh Posté le 16-07-2008 à 15:06:42    

Bonjour !
 
Voici mon problème ! Je veux installer une page de dons sur mon site avec les points des membres. En gros le membre clique sur un bouton radio et clique sur Valider pour donner 10 points.
 
Voilà comment j'ai déroulé le système :
 

  • une page dons.php
  • une autre dons2.php
  • une table dans MySQL avec ceci : champs : cout ; type : Int(11) ; Null : Non ; Défaut : 10


Voici le script de la page dons.php :
 

Code :
  1. <?
  2. $info_membre=mysql_fetch_array(mysql_query("SELECT points FROM membres WHERE id='".$_SESSION['id_membre']."'" ));
  3. ?>
  4. Vous avez actuellement <?=$info_membre['points']." ";?>points.<br />
  5. Faire un don de 10 points
  6. <form action='accueil.php?page=dons2' method="post">
  7. <input type='radio' name='statut' value='oui' >Oui
  8. <input type='radio' name='statut' value='non' >Non
  9. <input type='hidden' value='<?=$_SESSION['id_membre'];?>' name='id_membre'>
  10. <input type='submit' value='Valider'>
  11. </form>


 
Et voici celui de la page dons2.php
 

Code :
  1. <?php
  2. $dons=mysql_fetch_array(mysql_query('SELECT * FROM `dons`'));
  3. if($_POST['statut'] == 'oui') {
  4. $query_info_membre=mysql_query("SELECT * FROM membres WHERE id=".$_SESSION['id_membre']."" );
  5. $info_membre=mysql_fetch_array($query_info_membre);
  6. if($info_membre['points'] <= $dons['cout']){
  7.  die ('Vous n\'avez pas assez de points pour faire un don');
  8. }
  9. else{
  10.  $nouveau_points=$info_membre['points']-$dons['cout'];
  11.  mysql_query("UPDATE membres SET points='".$nouveau_points."' WHERE id='".$_SESSION['id_membre']."'" );
  12.  echo "Merci !";
  13.  }
  14. ?>


 
Ça m'affiche une erreur à la ligne 21 de la page dons2.php
 
D'où vient le problème ? Merci pour votre aide.


Message édité par foudecodes le 16-07-2008 à 15:17:56
Reply

Marsh Posté le 16-07-2008 à 15:06:42   

Reply

Marsh Posté le 16-07-2008 à 15:28:52    

Bon t'aurais pu donner l'erreur quand même !  :pfff:  
Je suppose que c'est unexpected $end ou un truc du genre.
Tu as oublié un crochet de fermeture de ton premier if ( } )


Message édité par Profil supprimé le 16-07-2008 à 15:29:08
Reply

Marsh Posté le 16-07-2008 à 15:34:50    

une vraie passoire ce site au passage, le paradis du SQL Injecteur [:benou_miam]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 16-07-2008 à 15:36:38    

Excusez moi, l'erreur est la suivante :  
 
Parse error: syntax error, unexpected $end in /homepages/3/d211235487/htdocs/studio-astuces/membres/dons2.php on line 23


Message édité par foudecodes le 16-07-2008 à 15:36:47
Reply

Marsh Posté le 16-07-2008 à 15:41:12    

bon t'as lu mon post ?
Tu as oublié un crochet de fermeture de ton premier if ( } ) !
c'est çà l'erreur !
dons2.php corrigé :
 

Code :
  1. <?php
  2.  
  3. $dons=mysql_fetch_array(mysql_query('SELECT * FROM `dons`'));
  4.  
  5. if($_POST['statut'] == 'oui') {
  6. $query_info_membre=mysql_query("SELECT * FROM membres WHERE id=".mysql_real_escape_string($_SESSION['id_membre'])."" );
  7. $info_membre=mysql_fetch_array($query_info_membre);
  8.  
  9.     if($info_membre['points'] <= $dons['cout']){
  10.         die ('Vous n\'avez pas assez de points pour faire un don');
  11.     }
  12.     else{
  13.         $nouveau_points=$info_membre['points']-$dons['cout'];
  14.         mysql_query("UPDATE membres SET points='".mysql_real_escape_string($nouveau_points)."' WHERE id='".mysql_real_escape_string($_SESSION['id_membre'])."'" );
  15.         
  16.         
  17.         echo "Merci !";
  18.         }
  19. }
  20.         
  21.             
  22. ?>


 
EDIT : au passage, mysql_real_escape_string(), tu connais ?
 :jap:


Message édité par Profil supprimé le 16-07-2008 à 15:43:09
Reply

Marsh Posté le 16-07-2008 à 15:41:53    

foudecodes a écrit :

Excusez moi, l'erreur est la suivante :

 

Parse error: syntax error, unexpected $end in /homepages/3/d211235487/htdocs/studio-astuces/membres/dons2.php on line 23


luc@s t'a donné la réponse.
tu devrais vraiment sécuriser ton site, tel que je lis le code, je suis capable de récupérer tous les mots de passe des membres


Message édité par Harkonnen le 16-07-2008 à 15:42:17

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 16-07-2008 à 15:44:09    

Pourquoi êtes vous si méprisant ? Calmez vous !  
 
Déjà, il manquait peut être ça, mais ça ne corrige rien du tout, a part qu'il affiche le "merci" au lieu de la phrase d'erreur, sinon, l'exécution du script ne marche pas.  
 
Pour Harkonnen, tu ne vois qu'une petite partie d'un script d'un site, les mots de passes sont cryptés en MD5.

Reply

Marsh Posté le 16-07-2008 à 15:49:56    

On est pas méprisant, c'est juste que tu nous demandes de l'aide sans nous donner toutes les informations. Ensuite, je te réponds et tu ne lis pas mon message correctement.  
PS : ton md5 suivant ton système c'est pas suffisant.
 
Ensuite si le crochet est mal placé, à toi de le placer au bon endroit : ou explique chaque condition de ton script pour que l'on puisse savoir ou le placer.


Message édité par Profil supprimé le 16-07-2008 à 15:52:48
Reply

Marsh Posté le 16-07-2008 à 15:54:51    

Je vous ai tout donner sauf le message d'erreur ! Alors ne m'agressez pas non plus ! Rooo !
 
Pour le MD5, et tout ce qui suit, je sais que mon site est très bien sécurisé par mon serveur, et par notre script, ensuite, le crochet, je l'ai placé avant et après, c'est la même chose !

Reply

Marsh Posté le 16-07-2008 à 15:59:25    

1/Alors il s'agit d'une erreur de conception  :o  
2/Très bien sécurisé ? Regardes ce que c'est une injection sql  :p


Message édité par Profil supprimé le 16-07-2008 à 15:59:39
Reply

Marsh Posté le 16-07-2008 à 15:59:25   

Reply

Marsh Posté le 16-07-2008 à 16:03:12    

Et bien laquelle ?  
 
(oui je connais -__- et je te rappelle que ce n'est qu'une partie du script)

Reply

Marsh Posté le 16-07-2008 à 16:04:20    

foudecodes a écrit :

Pourquoi êtes vous si méprisant ? Calmez vous !  
 
Déjà, il manquait peut être ça, mais ça ne corrige rien du tout, a part qu'il affiche le "merci" au lieu de la phrase d'erreur, sinon, l'exécution du script ne marche pas.  
 
Pour Harkonnen, tu ne vois qu'une petite partie d'un script d'un site, les mots de passes sont cryptés en MD5.


personne n'est méprisant, je te fais juste part d'une faille de sécurité dans ton site :spamafote:
tu fabriques tes requêtes en concaténant des chaines de caractères. c'est très dangereux car ça laisse la possibilité à l'utilisateur de saisir des bouts de SQL dans tes formulaires, que ton script interpretera comme des requetes completes et renverra à l'utilisateur les infos souhaitées


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 16-07-2008 à 16:07:21    

tout est dit.

Reply

Marsh Posté le 16-07-2008 à 16:08:26    

c'est bon, j'ai résolu mon problème :  
 
 
<?php
 
$dons='10';
 
 
if($_POST['statut'] == 'oui') {
$query_info_membre=mysql_query("SELECT * FROM membres WHERE id=".$_SESSION['id_membre']."" );
$info_membre=mysql_fetch_array($query_info_membre);
 
 if($info_membre['points'] <= $dons){
  die ('Vous n\'avez pas assez de points pour faire un don');
 }
 else{
  $nouveau_points=$info_membre['points']-$dons;
  mysql_query("UPDATE membres SET points='".$nouveau_points."' WHERE id='".$_SESSION['id_membre']."'" );
   
   
  echo "Merci !";
  }
   
   }
?>

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed