IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Accéder à une page que si le nom d'utilisateur et le mot de passe sont bons [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut Accéder à une page que si le nom d'utilisateur et le mot de passe sont bons
    J'ai un formulaire :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form action="" method="post">
    <p>
    <li>Nom d'utilisateur : <input type="text" name="user" /> </br>
    <li>Mot de passe      : <input type="password" name="mot_de_passe" />  </br> </br>
    <input type="submit" value="Valider" />
    </p>
    </form>

    J'aimerais donc accéder à une autre page que si les données entrées dans le formulaire sont bons, voila le code que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql="SELECT `nom_CDS` FROM `chef_de_service` WHERE nom_CDS='$user'";
    $resultat=mysql_query($sql)or die (mysql_error());
    $sql2="SELECT `nom_CDS` FROM chef_de_service WHERE mot_de_passe = '$mot_de_passe'" ;
    $resultat2=mysql_query($sql)or die (mysql_error());
    if(!empty($_POST['user']) and !empty($_POST['mot_de_passe'])){ 
    if( mysql_fetch_array($resultat) AND mysql_fetch_array($resultat2))
    {// si le nom d'utilisateur et le mot sont bons, on affiche la page cachée
    Le problème c'est que l'on peut accéder à la page cachée seulement si le nom d'utilisateur est bon, on peut taper n'importe quoi dans le mot de passe et ca passe quand même!!

    Cette ligne la ne sert à rien ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( mysql_fetch_array($resultat) AND mysql_fetch_array($resultat2))
    Merci pour vos réponses

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    y'a une arreur dans le mysql_query de la deuxieme requete; c'est mysql_query($sql2) et non mysql_query($sql) que tu aurais du écrire il me semble.

    De plus il vaut mieux tester je pense le nombre de lignes retournés du gerne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((mysql_num_rows($resultat)==1)&&(mysql_num_rows($resultat2)==1))
    Attention aussi, ta deuxieme requete est mauvaise , il vaudrait mieux que tu fasse un select * from user where login=$login et md=$mdp.

    Donc au final, une requete suffit a ton bonheur en fait.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Salut
    Pour autant que je sache, cett ligne vérifie bien qu'il ya un résultat des 2 côtés. (EDIT :effectivement si $resultat et $resultat2 n'ont pas la même requête ça marchera mieux )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( mysql_fetch_array($resultat) AND mysql_fetch_array($resultat2))
    Ce que tu peux faire, c'est récupérer les identifiants (si tu as un champ id par exmple) et les comparer.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $sql="SELECT id FROM `chef_de_service` WHERE nom_CDS='$user'";
    $resultat=mysql_query($sql)or die (mysql_error());
    $sql2="SELECT id FROM chef_de_service WHERE mot_de_passe = '$mot_de_passe'" ;
    $resultat2=mysql_query($sql2)or die (mysql_error());
    if(!empty($_POST['user']) and !empty($_POST['mot_de_passe'])){ 
      $data1=mysql_fetch_array($resultat); 
      $data2=mysql_fetch_array($resultat2);
      if($data1['id']== $data2['id'])
      {
        // si les 2 identifiants sont les mêmes...
      }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut
    Merci Raideman et Célira pour vos réponses, mon code marche à présent cependant, j'aimerais que lorsque le nom ou le mot de passe est incorrect on re-affiche la même page pour que l'utilisateur tente de se connecter à nouveau ce que j'ai essayé de faire avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    $sql="SELECT id_CDS FROM `chef_de_service` WHERE nom_CDS='$user'";
    $resultat=mysql_query($sql)or die (mysql_error());
    $sql2="SELECT id_CDS FROM chef_de_service WHERE mot_de_passe='$mot_de_passe'" ;
    $resultat2=mysql_query($sql2)or die (mysql_error());
    if(!empty($_POST['user']) and !empty($_POST['mot_de_passe'])){ 
    $data1=mysql_fetch_array($resultat); 
    $data2=mysql_fetch_array($resultat2);
    if($data1['id_CDS']== $data2['id_CDS'])
    {
    // si le nom d'utilisateur et le mot sont bons, on affiche la page cachée
    }
    else // le mot de passe ou le nom d'utilisateur n'est pas  bon
    {
    // On affiche la zone de texte pour s'enregistrer.
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>Identification de l'utilisateur</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
    <h2><strong>Cette page est réservée aux chefs de service ainsi qu'aux directeurs d'établissement.</strong></h2> <hr>
    <p>Veuillez saisir votre Nom ainsi que votre Mot de Passe.</p>
     
    <form action="" method="post">
    <p>
    <li>Nom d'utilisateur : <input type="text" name="user" /> </br>
    <li>Mot de passe      : <input type="password" name="mot_de_passe" />  </br> </br>
    <input type="submit" value="Valider" />
    </p>
    </form>
    </body>
    </html>
    }
    Cependant cela m'affiche une page blanche et nom la page d'identification!
    Merci encore pour tout !

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je ne sais pas si le problème vient de là, mais il manque une réouverture de balise à la fin.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    else // le mot de passe ou le nom d'utilisateur n'est pas  bon
    {
    // On affiche la zone de texte pour s'enregistrer.
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>Identification de l'utilisateur</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
    <h2><strong>Cette page est réservée aux chefs de service ainsi qu'aux directeurs d'établissement.</strong></h2> <hr>
    <p>Veuillez saisir votre Nom ainsi que votre Mot de Passe.</p>
     
    <form action="" method="post">
    <p>
    <li>Nom d'utilisateur : <input type="text" name="user" /> </br>
    <li>Mot de passe      : <input type="password" name="mot_de_passe" />  </br> </br>
    <input type="submit" value="Valider" />
    </p>
    </form>
    </body>
    </html>
    <?php
    }
    ?>
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut
    Voici le code de mon else en entier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    else // le mot de passe ou le nom d'utilisateur n'est pas  bon
    {
    // On affiche la zone de texte pour s'enregistrer.
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>Identification de l'utilisateur</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
    <h2><strong>Cette page est réservée aux chefs de service ainsi qu'aux directeurs d'établissement.</strong></h2> <hr>
    <p>Veuillez saisir votre Nom ainsi que votre Mot de Passe.</p>
     
    <form action="" method="post">
    <p>
    <li>Nom d'utilisateur : <input type="text" name="user" /> </br>
    <li>Mot de passe      : <input type="password" name="mot_de_passe" />  </br> </br>
    <input type="submit" value="Valider" />
    </p>
    </form>
    	</body>
    </html>
     
    <?php
              } // fin du else
     
    mysql_close(); // Déconnexion de MySQL
     
    // Fin du code
    ?>

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Effectivement, ça ne vient pas de la balise

    Si j'ai bien compris, tu remplis les champs, tu cliques sur valider. Si le login/mot de passe est incorrect, normalement on rentre dans le else et on affiche le formulaire... Et ton problème, c'est que la page reste blanche.
    Bon, on va reprendre aux sources :p Ton formulaire d'origine (le 1er) se trouve sur une page mettons identification.php, et charge une 2e page verification.php où se trouve le test et le 2e formulaire ? ou est-ce que tout se passe dans la même page ?
    Et si tu regardes le code source de la page blanche, qu'est-ce qu'il ya dedans ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut
    Merci de me venir en aide en tout cas.
    Bon, tout d'abord tu as bien compris le coeur de mon problème et pour répondre à ta question tout ce passe dans la même page.
    Je viens de testé une chose, c'est que lorsque je tape juste le nom sans le mot de passe je retombe bien sur la page d'identification mais c'est lorsque je rempli les deux cases et que l'une d'elle est fausse que je tombe sur un page blanche dont voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML><HEAD>
    <META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD>
    <BODY></BODY></HTML>
    J'espere que je me suis bien epliqué et que tu as cerné le problème!
    Merci encore !!!!

  9. #9
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut
    AAAAAHhhhhhhhhhhhhhhhh !!!!!!

    J'ai encore un gros problème la !!
    Des que je rentre n'importe quoi (quelque chose qui n'est pas dans la base) dans les deux cases (Nom et mot de passe) on peut quand même accéder à la page suivante !!

    AU SECOURS !!!

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je crois effectivement avoir compris ce que tu veux faire. En revanche, pourquoi ça ne marche pas...

    En plus, si ton test buggue totalement

    Je crois qu'à ce stade le plus simple serait que tu donnes le code entier de la page, qu'on puisse l'éplucher complètement
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut
    T'as pas peur de voir du code !!

    Voici le code de ma page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    <?php
     
     
    mysql_connect("localhost", "root", ""); // Connexion à MySQL
    mysql_select_db("evian royal resort"); // Sélection de la base evian royal resort
     
    if (isset($_POST['mot_de_passe']) || (isset($_POST['user'])))// Si les variables existent
    {
    // On se crée une variable utilisateur avec le nom entré et une variable $mot_de_passe avec le mot de passe entré
    $user = $_POST['user'];
    $mot_de_passe = $_POST['mot_de_passe'];
    }
    else // La variable n'existe pas encore
    {
    $user = ""; // On crée une varialble $user vide
    $mot_de_passe = ""; // On crée une variable $mot_de_passe vide
    }
     
    $sql="SELECT id_CDS FROM `chef_de_service` WHERE nom_CDS='$user'";
    $resultat=mysql_query($sql)or die (mysql_error());
    $sql2="SELECT id_CDS FROM chef_de_service WHERE mot_de_passe = '$mot_de_passe'" ;
    $resultat2=mysql_query($sql2)or die (mysql_error());
    if(!empty($_POST['user']) and !empty($_POST['mot_de_passe'])){ 
    $data1=mysql_fetch_array($resultat); 
    $data2=mysql_fetch_array($resultat2);
    if($data1['id_CDS']== $data2['id_CDS'])
    {// si le nom d'utilisateur et le mot sont bons, on affiche la page cachée
    	?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<title>Evian Royal Resort</title>
    			<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
    	</head>
    			<body>				
    			<center><h1>Simulateur de Masse Salariale</h1></center> <hr> </br>
    			<p> <?php echo '<strong> Utilisateur : </strong> '.$_POST['user'];?> </p>
     
    				<li> <a href ="U:\Pc\Lisa_Lovna\SitePHP\autres pages\Budget.php">Calcule du budget </a></li>
    				<li> <a href ="U:\Pc\Lisa_Lovna\SitePHP\autres pages\Liste_Perso.php">Consulter la liste du personnel de votre service </a></li>
    				<li> <a href ="U:\Pc\Lisa_Lovna\SitePHP\autres pages\Ajout_Perso.php">Ajouter un employé à votre service </a></li>
    				<li> <a href ="U:\Pc\Lisa_Lovna\SitePHP\autres pages\Sup_Perso.php">Supprimer un employé </a></li>
    				<li> <a href ="U:\Pc\Lisa_Lovna\SitePHP\autres pages\MAJ_Perso.php">Mettre à jour un employé du service</a> </li> </br>
     
     
        </body>
    </html>	
     
     
    	<?php
    	}
    }
    else // le mot de passe ou le nom d'utilisateur n'est pas  bon
    {
    // On affiche la zone de texte pour s'enregistrer.
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    		<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    		<head>
    			<title>Identification de l'utilisateur</title>
    			<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		</head>
    		<body>
    			<h2><strong>Cette page est réservée aux chefs de service ainsi qu'aux directeurs 	d'établissement.</strong></h2> <hr>
    			<p>Veuillez saisir votre Nom ainsi que votre Mot de Passe.</p>
     
    			<form action="" method="post">
    				<p>
    				<li>Nom d'utilisateur : <input type="text" name="user" /> </br>
    				<li>Mot de passe      : <input type="password" name="mot_de_passe" />  </br> </br>
    				<input type="submit" value="Valider" />
    				</p>
    			</form>
    		</body>
    </html>
     
    				<?php
    				} // fin du else
     
    mysql_close(); // Déconnexion de MySQL
     
    // Fin du code
    ?>

  12. #12
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut

  13. #13
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut
    Ca marche nickel, merci beaucoup en tout cas!!

    J'aimerais juste savoir à quoi correspond ce code et que fait-il :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	function quote_smart($value) {
    	             if (get_magic_quotes_gpc()) {
    			$value = stripslashes($value);
    		}
    		return mysql_real_escape_string($value);
    }

  14. #14
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tant mieux pour toi si ça marche (enfin)

    En ce qui concerne la fonction, je ne suis pas experte dans le domaine. Mais grosso modo, ça évite qu'un imbécile s'amuse à taper de l'html dans tes champs et fasse faire n'importe quoi à ton script.

    Citation Envoyé par julp dans [URL="http://julp.developpez.com/php/formulaires/"]Php et les formulaires[/URL]
    Selon la configuration du serveur, vous pourrez remarquer que certains caractères sont échappés (précédés par le caractère backslash (\)) comme le backslash lui-même ou encore l'apostrophe. La fonction get_magic_quotes_gpc() vous permet de savoir si c'est le cas et la fonction stripslashes() vous permet de les supprimer. Toutefois, lors d'une insertion en base de données du texte issu d'un formulaire vous devez impérativement échapper les caractères spéciaux (apostrophe, backslash, ...) si ce n'est pas déjà fait (à l'aide de fonctions comme addslashes() ou mysql_real_escape_string() ou mysqli_real_escape_string()).
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  15. #15
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Il a besoin d'une petite mise à jour celui-là

    C'est une fonction intermédiaire pour la protection de données en vue d'une utilisation dans une requête (MySQL) qui permet d'effectuer les traitements nécessaires en fonction de l'environnement (portable). Je m'explique : sur certains environnements avec magic_quotes_gpc à On (voir la sortie de phpinfo) les données externes (GET, POST, COOKIE et SESSION) sont automatiquement traitées par PHP en interne avant le début de votre script où il échappe un certain nombre de caractères génériques spéciaux (le backslash et l'apostrophe par exemple). Or, cet ensemble de caractères spéciaux qu'il [PHP] échappe de lui-même n'est pas forcément identique pour le SGBD (MySQL, PostGreSQL, ...). Il est donc plus approprié d'utiliser la fonction proposée par l'extension correspondant au SGBD afin de tenir compte de ses propres spécificités. (voir ma signature).

    C'est pourquoi cette fonction quote_smart teste si magic_quotes_gpc est actif (via get_magic_quotes_gpc). Si oui, on retourne en arrière en supprimant le travail que magic_quotes_gpc a effectué de manière incomplète (donc pas totalement sécurisée) par le biais de stripslashes puis on applique la fonction d'échappement spécifique au SGBD.

    La fonction addslashes est l'équivalent de la fonctionnalité magic_quotes_gpc, car elle effectue strictement le même travail que lui (mais de manière manuelle car c'est vous qui l'appelez) donc n'est également pas recommandée pour les mêmes raisons.

    Normalement, magic_quotes_gpc devrait aujourd'hui être à Off et sa suppression a été envisagée pour la version 6 de PHP laissant ainsi soin aux développeurs de traiter eux-mêmes leurs données en fonction de leur origine, de leur nature et de leur but. Pourquoi est-elle bien souvent active (serveur mutualisé principalement) ? Tout simplement pour protéger les personnes qui ne le font pas, notamment par manque de connaissances ...

  16. #16
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Citation Envoyé par julp
    Il a besoin d'une petite mise à jour celui-là
    Ben, si les informations de dvp.com ne sont pas justes, où allons-nous ?
    Merci pour le complément d'info
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  17. #17
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut
    Merci pour les informations, je m'instruit par la même occasion ca me fait plaisir. Faut que je relise encore quelques petites fois pour bien tout assimilé

    Merci pour votre aide à tous !!

  18. #18
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si ce poblème est résolu, n'oublies pas le
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  19. #19
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut
    C'est fait.
    Merci encore !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/04/2014, 14h38
  2. Réponses: 1
    Dernier message: 26/05/2012, 11h53
  3. Identification pour accéder à une page
    Par Alfred456654 dans le forum ASP
    Réponses: 16
    Dernier message: 20/11/2007, 19h06
  4. Réponses: 10
    Dernier message: 26/07/2006, 07h52
  5. Accéder à une page web sans passer par login et mdp
    Par benthebest dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 21/07/2006, 01h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo