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

Langage PHP Discussion :

requête maj sous conditions


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut requête maj sous conditions
    bonjour à tous

    j'ai créé une page de modif des coordonnées clients.

    il peut entre autre modifier son login et mdp
    dans le champs text j'ai mis en value, le pseudo du client, et pour le mdp j'ai mis un blanc

    mais le problème, est que la mise à jour, via php, de données identiques à celles enregistrées dans la bdd, ne donne rien.

    donc j'ai fait ça :
    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
     
    if ( (($pseudo == $_POST['pseudo']) && ($mdp == $_POST['mdp'])) || (($pseudo != $_POST['pseudo']) && ($mdp == $_POST['mdp'])) || (($pseudo == $_POST['pseudo']) && ($mdp != $_POST['mdp'])) || (($pseudo != $_POST['pseudo']) && ($mdp != $_POST['mdp'])) )
     
     
    $sql = "UPDATE client SET adresse = '".$_POST['adresse']."', complement = '".$_POST['complement']."', ville = '".$_POST['ville']."', cp = '".$_POST['cp']."',
      tel = '".$_POST['tel']."', mail = '".$_POST['mail']."', pseudo = '".$_POST['pseudo']."', mdp = '".$_POST['mdp']."' WHERE id_stagiaire = '".$idstag."'";
      echo $sql;
      $quer = mysql_query($sql);
      $fe = mysql_affected_rows();
     
     
    if   ($fe)
      {
     
        echo "<font color = red size = +1><center>Vos données ont bien été modifiées</center></font>";
     
        echo "<META http-equiv='refresh' content='5; URL=accueil.php'>";
       }
    }
    mais au lieu de me redirigirer vers la page d'accueil, ça ne me fait rien..

    normalement avec les conditions que j'ai mis, ça devrait marcher snif..

    quelqu'un pourrait il me dire où est ce que j'ai fauté?

    merci beaucoup....

  2. #2
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 185
    Points
    185
    Par défaut
    Pour la redirection utilise plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('location: url');

  3. #3
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut réécriture du code
    Citation Envoyé par oceane751
    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
     
    if ( (($pseudo == $_POST['pseudo']) && ($mdp == $_POST['mdp'])) || (($pseudo != $_POST['pseudo']) && ($mdp == $_POST['mdp'])) || (($pseudo == $_POST['pseudo']) && ($mdp != $_POST['mdp'])) || (($pseudo != $_POST['pseudo']) && ($mdp != $_POST['mdp'])) )
     
     
    $sql = "UPDATE client SET adresse = '".$_POST['adresse']."', complement = '".$_POST['complement']."', ville = '".$_POST['ville']."', cp = '".$_POST['cp']."',
      tel = '".$_POST['tel']."', mail = '".$_POST['mail']."', pseudo = '".$_POST['pseudo']."', mdp = '".$_POST['mdp']."' WHERE id_stagiaire = '".$idstag."'";
      echo $sql;
      $quer = mysql_query($sql);
      $fe = mysql_affected_rows();
     
     
    if   ($fe)
      {
     
        echo "<font color = red size = +1><center>Vos données ont bien été modifiées</center></font>";
     
        echo "<META http-equiv='refresh' content='5; URL=accueil.php'>";
       }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if(isset($_POST['valider'])){ // Si ta balise <input type=submit name='valider' ... />
    	// htmlspecialchars() et strip_tags() conbinés ensemble permet de se protéger contre les attaques XSS et CSRF
    	$pseudo = htmlspecialchars(strip_tags($_POST['pseudo']), ENT_QUOTES); 
    	// tu fais pareil avec toutes les autres variables transmises par POST
     
    	$sql = "UPDATE client SET adresse='".$_POST['adresse']."', complement='".$_POST['complement']."', ville='".$_POST['ville']."', cp='".$_POST['cp']."', tel='".$_POST['tel']."', mail='".$_POST['mail']."', pseudo='".$_POST['pseudo']."', mdp='".$_POST['mdp']."' WHERE id_stagiaire = '".$idstag."'";
    	echo $sql;
    	$quer = mysql_query($sql);
    	$fe = mysql_affected_rows() or trigger_error("Les données n'ont pas été modifiées!", E_USER_ERROR);
     
        echo '<font color="red" size="1"><center>Vos données ont bien été modifiées</center></font>';
        header("locationaccueil.php");	
    }

  4. #4
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    oauis mais j'aime bien le meta qui me permet d'afficher ce message "Vos données ont bien été modifiées" puis de faire la redirection


    sinon, zyongh je vais tester ce que tu ma donné, je reviens apres..

  5. #5
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    ok ça marche

    ppourrais tu m'expliquer cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pseudo = htmlspecialchars(strip_tags($_POST['pseudo']), ENT_QUOTES);
    j'ai lu que le htmlspecialchars convertit tous les caractères spéciaux en entité HTML, que strip_tags supprime les balises HTML et PHP d'une chaîne

    mais je ne vois pas la logique de l'utilisation de ces fonctions dans mon cas.

    merci d'avance pour ces explications..

  6. #6
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut je prends un exemple tout simple
    imagine que dans ton formulaire tu ais un champ de texte (type="text") ou une zone de texte (<textarea></textarea>).

    Si la personne saisit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>alert('XSS')</script>
    et que tu n'as pas utilisé htmlspecialchars et strip_tags, tu viens de subir une attaque XSS car le script est entièrement pris en compte et peut donc être exécuté.

    Il s'agit là d'un exemple inoffensif. Mais on peut supprimer toutes les données d'un disque dur en quelques lignes de script seulement.

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

Discussions similaires

  1. [XL-2003] requêtes sur fichier fermé sous conditions
    Par mickisa dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/11/2013, 15h58
  2. MAJ données cellule sous condition
    Par redstoff dans le forum Excel
    Réponses: 1
    Dernier message: 02/04/2012, 11h55
  3. Réponses: 5
    Dernier message: 10/08/2011, 11h45
  4. [AC-2007] Requête SQL Ajout enregistrement sous condition
    Par pop.paki dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 05/08/2011, 17h17
  5. Requête SQL avec création de table sous condition
    Par misig dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 04/11/2007, 08h58

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