Ma connection admin ne fonctionne pas tres bien. [Résolu]

Signaler
Messages postés
221
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
22 décembre 2010
-
Messages postés
2083
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2020
-
 

Miss1
J'ai crée une base de donnée ds laquel j'ai entré un mot de passe et un login admin. l'inconvénient c'est kil me connecte a ma base de donnée mais je doit rentré une info exacte sur les deux pour kil puisse me connecter. Il ne m'en interdit pas l'acés si l'une des infos est mauvaise. Je n'arrive pas a remédier a se pb. Quelequ'un pourrait-il m'aider. Merci.
Je laisse mon code

Et celle si ma page connection
<form name="form" method="GET" action="admin.php">
         
                 
              
           
        </form
Cette page est la page admin

<?php
//include est un fichier dans lequel je fait appele à la base de donnée
include "config.php";




//connexion au serveur
$connexion=mysql_connect($serveur,$login,$mdp);





// verifie si connection possible
if (!$connexion) {
echo( "Impossible de se connecter au serveur en ce moment.

" );
exit();
}
// connection à la base de donnée
mysql_select_db("$base", $connexion);





if (array_key_exists('Login_Admin', $_POST))
{
      
        $login = $_POST['Login_Admin'];
        $password = $_POST['Password'];





}
elseif (array_key_exists('Login_Admin', $_GET))
{
        // Get variable
        $login =  $_GET['Login_Admin'];
        $password = $_GET['Password_Admin'];
}





// test si un seul des deux est bon alors il recommence
if($password=='' or $login=='')
    {
    echo 'Vous avez oublié de remplir un champs.

';
    include('connectionadmin.php');
    exit;
    }





?>

11 réponses

Messages postés
315
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
21 mars 2011
1
Ceci devrait fonctionner.

<?php
  
  //Connexion au serveur
   $link = mysql_connect ('localhost','root');
  //Connexion à la BD
   mysql_select_db ('tabase');
print "
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'
 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
 <html xmlns='http://www.w3.org/1999/xhtml'>
 <head>
  <meta http-equiv='Content-type' content='text/html; charset=iso-8859-1' />
 </head>
 
 ";
  
  $form_rec = "";
  if (isset($_GET['form_rec'])) $form_rec = $_GET['form_rec'];




if ($form_rec=="yes")
{
  $query="Select * from tatable";
  $result=mysql_query($query);
  while (list($nom, $mdp) = mysql_fetch_row($result))
  {   if ($nom $_GET['nomsaisie'] and $mdp $_GET['mdpsaisie'])
   {
    print "
    <script>
         open('tapage.php','_self')
    </script>
     ";   
   }
  }
}
else
{


  print "
   <form method='GET' action='index.php' name='form_creation'>
   
   
   

      ----
Login : ,
   Mot de passe : ,
   ,
   

   

   </form>
   
   ";
}


print "
 
 </html>
 ";


//Fermeture de la base de données
mysql_close($link) ;


 ?>
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
$query = 'SELECT mdp FROM tatable WHERE nom ='.$_GET['nom'];
$result=mysql_query($query);
$arr = mysql_fetch_array($result);
if ($arr['mdp'] == $_GET['mdp'])

Meme question:

>> Quel interet de selectionner toute la table si c'est pour faire un choix apres ?
$q 'SELECT COUNT(*) FROM tatable WHERE nom "'.$_POST['nom'].'" AND password = "'.$POST['password'].'" ';
$r = mysql_query($q);
$row = mysql_fetch_row($r);
 if ( (int) $row[0] === 1 ) {
      // Ok
 } else {
     // Pas Ok
 }

C'est si compliqué ?
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Déja, on fait passer un formulaire comme celui la en POST.

Et ton code est incomplet la...

if (array_key_exists('Login_Admin', $_POST))

Huhu, j'avais jamais vu ca :p
>
 if ( isset($_POST['Login_Admin']) ) ....

// test si un seul des deux est bon alors il recommence
if($password=='' or $login=='')

Beurk, methode à l'ancienne ca ...
>
 if ( empty($password) || empty($login) ) { // }

Mais y'a aucun test à ta base de donnée la je me trompe ?
Messages postés
221
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
22 décembre 2010

 

Miss1
Oui c vrai que la méthode est ancienne mais c'est la version que j'ai apprise a l'ecole . Je vien de remarquer que je ne fé appel qua la base de donnée sans la tester. La g changer en post mon get ds le formuaire. Mais ou alors si je doit fer un teste sur ma base de donné ou dois-je le mettre? car maintenant en ayant aremplacer get par post il ne veut plus me connecter.
Parce que la je suis complétement larguer.
Messages postés
221
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
22 décembre 2010

 

Miss1
J'avais oublié de dire que je remarque qu'il reconnait le login exact  (ex admin mais mon mdp est admin si je mé administrateur) mais si je mé un autre mot de passe il va me laisser entrer et mm chose ds lotre sens. dc voudré empecher que cela ne se produise.
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
9
if (array_key_exists('Login_Admin', $_POST))
{
      
        $login = $_POST['Login_Admin'];
        $password = $_POST['Password'];




}

Il y a pas un problème avec le 'Password' qui n'existe pas dans ton formulaire ?




<hr size="2" width="100%" />
Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
Messages postés
221
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
22 décembre 2010

si g un pb avec le password mais je é appele a lui ds le formualire
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Déja, on veut bien t'aider mais il vaut mieux faire un effort sur le français quand même. C'est pas parce qu'on est sur un forum où on parle de $php['comme_des_geeks'] qu'il faut écrire n'importe comment :)

Voici le modèle pour une identification via formulaire (que ce soit admin ou membre simple) :

 -> écriture des identifiants dans le champ "login" et "password"
 -> soumission du formulaire
 -> traitement du formulaire :
         -> vérification de la soumission du formulaire (champs existes etc...)
         -> vérification des champs (non vides, caractères spéciaux etc...)
         -> traitement avec la base de donnée
                     -> connection
                     -> vérification du login/password du formulaire avec celui de la base de donnée
                     -> Si il existe un enregistrement avec le bon couple login/password, alors on en déduis que celui qui veut se logger est bien la personne qu'on souhaite. On lui donne les droits nécessaires
                    -> on redirige la personne au bon endroit.

-> si mauvais traitement, on relance la procédure du formulaire.

Voila comment ca se passe.
 Jpeux pas mieux faire :)
Messages postés
221
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
22 décembre 2010

 

Miss1
merci
Messages postés
2083
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2020
1
  $query="Select * from tatable";
  $result=mysql_query($query);
  while (list($nom, $mdp) = mysql_fetch_row($result))
  {   if ($nom $_GET['nomsaisie'] and $mdp $_GET['mdpsaisie'])
   {



>> Quel interet de selectionner toute la table si c'est pour faire un choix apres ?
$query 'SELECT mdp FROM tatable WHERE nom'.$_GET['nom'];
$result=mysql_query($query);
$arr = mysql_fetch_array($result);
if ($arr['mdp'] == $_GET['mdp'])
    ...

Flachy Joe
Messages postés
2083
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2020
1
uhuhuh, t'as raison ;-) Je sais pas si on peut faire encore plus simple.

Flachy Joe