Problème de requête....

Problème de requête.... - PHP - Programmation

Marsh Posté le 25-01-2009 à 18:10:47    

Bonjour à tous,
 
J'ai un problème de sécurité sur mon site,
En effet, j'utilise une vérification au-dessus de chaque page php (pour les pages réservées aux membres).
Quand celui-ci se connecte, il reçoit un id qui s'ajoute aux liens des pages sur lesquelles il va.  
NB: Cet id change à chaque nouvelle connection.
Donc une fois connecté, on devrait avoir par ex: www.monsite.com/membres/calculs.php?id=12245sqsddf554
Le problème est que si je tape l'adresse complète, donc sans l'id (et la suite) comme par exemple: www.monsite.com/membres/calculs.php
j'arrive à rentrer sur la page.
Ce n'est pas le cas pour tous, pourtant!
Voici le code que j'utilise en début de page:

Code :
  1. <?
  2. require("conf.php3" );
  3. // CONNEXION MYSQL
  4. $db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
  5. if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;}
  6. // SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
  7. $requete=mysql_db_query($sql_bdd,"select * from acces, membres where id=\"$id\" AND id_membre=idmembre",$db_link) or die(mysql_error());
  8. $erreur2="http://www.self-defense-hrj-namur.be/fichiers/fr/membres/erreur2.php?id=$id";
  9. // SI L'ID N'EXISTE PAS
  10. if(mysql_num_rows($requete)==0)
  11. {
  12. // REDIRECTION PAGE ERREUR
  13. header("Location:$erreur2" );
  14. exit;
  15. }
  16. // LIGNE FACULTATIVE : RECUPERATION DU PSEUDO
  17. $pseudo_membre=mysql_result($requete,0,"pseudo" );
  18. $nom=mysql_result($requete,0,"nom" );
  19. $prenom=mysql_result($requete,0,"prenom" );
  20. $idmembre=mysql_result($requete,0,"id_membre" );
  21. // DECONNEXION MYSQL  
  22. mysql_close($db_link);
  23. ?>


Je pense que mon problème pourrait être résolu en demandant à la requête de vérifier s'il existe bien un id dans l'url, mais comment faire?
merci d'avance!

Reply

Marsh Posté le 25-01-2009 à 18:10:47   

Reply

Marsh Posté le 25-01-2009 à 18:32:38    

Problème résolu merci. J'ai rajouté une condition "||empty($var)" et cela fonctionne...

Reply

Sujets relatifs:

Leave a Replay

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