problème avec script php

problème avec script php - PHP - Programmation

Marsh Posté le 06-08-2013 à 12:07:59    

bonjour, j'ai un problème avec ce script php, son but c'est de tester l'existence d'une base de données associée à une adresse IP "router" saisie par 'utilisateur
l'instruction if ($database == $router) fonctionne et le message est affiché,
cependant l'insctrction else ne veut pas fonctionner (une page blanche est renvoyée).

Code :
  1. <?php
  2. $router = $_POST['router'];
  3. $db = mysql_connect('localhost', 'root', 'Orange2424');
  4. mysql_select_db('INX',$db)  or die('Erreur de sélection '.mysql_error());
  5. //vérifier si le routeur sélectionner possède une base de données
  6. $query = mysql_query("show databases like '".$router."'" );
  7. while ($donnees = mysql_fetch_array($query))
  8.    {
  9.      $database = addslashes($donnees["Database ($router)"]);
  10.       echo $database;
  11.       echo $router;
  12.       // si une base correspond au routeur, redirrection vers cette base
  13.        if ($database == $router)
  14.          {
  15.             session_start();
  16.             $_SESSION['database']=$router;
  17.                 echo "<script>
  18.                  alert('Router selection successful.');
  19.                  history.back();
  20.                 </script>";
  21.          }
  22.  
  23.      // sinon demander à l'utilisateur d'instancier le serveur pour le routeur sélectionné
  24.        else
  25.          {   echo "<script>
  26.                  alert('No data currently available for this router.');
  27.                  history.back();
  28.                 </script>";
  29.          }
  30.    }
  31. ?>


 
merci

Reply

Marsh Posté le 06-08-2013 à 12:07:59   

Reply

Marsh Posté le 06-08-2013 à 13:17:43    

Bizarre ton truc de mettre du javascript :/ Et si l'utilisateur le désactive :??: Pourquoi tu n'utilise pas le $_SERVER['HTTP_REFERER'] et header("location: $url" ); ?
 
Pour ton pb, je pense que ça vient du fait que t'as fait des echo avant ton session_start();
Bizarre du reste que t'ai pas de msg d'erreur affiché par php :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 10-08-2013 à 20:48:24    

Bonsoir,
Suis pas sûr de la possibilité d'intégrer un if/else dans une boucle while... Qu'en pensez-vous ?

Reply

Marsh Posté le 12-08-2013 à 09:58:52    

Ben oui, tu peux mettre des if/else dans un while.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-08-2013 à 10:47:02    

Dans ce cas, tu n'as pas besoin d'une boucle while.. car à la première itération tu vas quitter ta boucle,
 
Aussi fait attention quand tu postes ton code de bien cacher identifiant/mot de passe, la ça va vu que c'est ton localhost, mais attention
 
EDIT : Tu devrais aussi vérifier que tes variables post ne sont pas vide et également mettre une sécurité contre les injections sql (dans ton cas c'est bon mais pour certaines requêtes, tu dois de faire ça, par exemple lorsque tu te log sur un site, si t'as une requête du type "select * from users where login='$log' and pwd='$pwd'", si $pws = "' or ''=''" une personne pourrait se logger sans problème (c'est un tout petit exemple))


Message édité par sltpaulo le 12-08-2013 à 10:51:47
Reply

Sujets relatifs:

Leave a Replay

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