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 :

addslashes sur guillemets


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut addslashes sur guillemets
    Bonjour,

    Voila j'ai voulu utiliser la fonction addslashes pour échapper les quotes et guillemets dans mes chaines pour créer des liens html mais petit problème : les guillemets ne s'échappent pas.

    Enfin si mais les liens ne sont pas comme il faut

    en fait je fais un lien comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="mapage.php?parametre='.escape($var).'">'.$var.'</a>';
    et la fonction escape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function escape($chain)
    	{
    		$newChain = addslashes($chain);
    		return $newChain;
    	}
    seulement en faisant ainsi les liens dans le code source (lorsque je fais clic droit > afficher la source) sont bon mais dans le naviguateur ca met : http://host/mapage.php?parametre=am\ (en considérant que $var = am"stramgram)

    Une idée ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Utilise plutôt rawurlencode().

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    pour générer le lien ca marche plutot bien j'ai remplacé la fonction addslashes par rawurlencode, mais pour la suite j'utilise donc rawurldecode à la place de stripslashes mais ca marche plutot mal ici je n'arrive pas à insérer des enregistrements et les redirections après insertion (car il agit comme si l'insertion était bonne) sont foireuses (pardonnez moi l'expression)

    Je ne vois pas trop.

    Exemple : je crée un type de projet nomé test"er une description en tapan sur mon clavier pour que le champ soi rempli et une position => aucun pb jusque la

    je clique sur le nom de ce nouveau type de projet pour afficher la liste des projets qu'il contient, rien dans le tableau c'est normal

    je fai ajouter
    et la dans le champ du nom du type de projet assoché j'ai test&quot;er
    et le bouton annuler qui renvoie vers la liste de ses projets a comme paramètre : test%26amp%3Bquot%3Ber

    donc voila je n'utilise peut être pas bien le code (je vais essayer d'en importer pour vous montrer car je ne code pas sur le même pc)

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    j'ai trouvé une clef usb ^^

    alors l'index qui liste les types de projet dans un tableau (je liste just l'affichage d'un enregistrement) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    echo '<tr>';
    	echo '<td>'.$row[2].'</td>';
    	echo '<td><a href="projets.php?type='.escape($row[0]).'" >'.$row[0].'</a></td>';
    	echo '<td>'.$row[1].'</td>';
    	echo '<td><a href="modifier.php?type='.escape($row[0]).'">Modifier</a></td>';
    	echo '<td><a href="supprimer.php?type='.escape($row[0]).'">Supprimer</a></td>';
    echo '</tr>';
    ensuite la liste des projets (idem) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    echo '<tr>';
    	echo '<td>'.$row[3].'</td>';
    	echo '<td><a href="applications.php?projet='.escape($row[0]).'&type='.escape($type).'" >'.$row[0].'</a></td>';
    	echo '<td>'.$row[1].'</td>';
    	echo '<td>'.$row[4].'</td>';
    	echo '<td>'.$row[5].'</td>';
    	echo '<td><a href="modifier.php?projet='.escape($row[0]).'&typeApp='.escape($type).'" >Modifier</a></td>';
    	echo '<td><a href="supprimer.php?projet='.escape($row[0]).'&typeApp='.escape($type).'" >Supprimer</a></td>';
    echo '</tr>';

    la fonction escape évidement ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            function escape($chain)
    	{
    		$newChain = rawurlencode($chain);
    		return $newChain;
    	}
    et la partie pour la création d'un projet :
    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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    //on ouvre une connexion a la base de donnees
    include (DCROOT."/scripts/connexion.php");
     
    //on affiche un formulaire de creation de projet
    echo '<h3>Veuillez remplir le formulaire : </h3>';
    echo '<form method="post" action="creer.php?obj=Projet" name="formulaire" onsubmit="return (verifEmail() && verifPosition());" >';
    	echo '<table>';
    		echo '<tr>';
    			echo '<td>';
    				echo 'Associer le projet au type d\'application suivant : ';
    			echo '</td>';
    			echo '<td>';
    				echo '<select name="type" onchange="enable_disable();" >';
    				if ($presenceType)
    				{
    					echo '<option value="'.$type.'">'.$type.'</option>';
    				}
    				else
    				{
    					//on cree une requete a executer
    					$requeteSQL = 'SELECT TypeAppName FROM TypeAppli ORDER BY position';
     
    					//on execute la requete
    					include (DCROOT."/scripts/requete.php");
     
    					echo '<option value=""></option>';
    					//on affiche une option par type d'application
    					while ($row = oci_fetch_array($stmt, OCI_BOTH))
    					{
    						echo '<option value="'.$row[0].'" >'.$row[0].'</option>';
    					}
    				}
    				echo '</select>';
    			echo '</td>';
    		echo '</tr>';
     
    		echo '<tr>';
    			echo '<td>';
    				echo 'Nom du projet : ';
    			echo '</td>';
    			echo '<td>';
    				echo '<input type="text" name="name" maxlength="30" onchange="enable_disable();" />';
    			echo '</td>';
    		echo '</tr>';
     
    		echo '<tr>';
    			echo '<td>';
    				echo 'Description : ';
    			echo '</td>';
    			echo '<td>';
    				echo '<input type="text" name="desc" value="'.$desc.'" size="40" maxlength="200" onchange="enable_disable();" />';
    			echo '</td>';
    		echo '</tr>';
     
    		echo '<tr>';
    		        echo '<td>';
    				echo 'Position (pour l\'ordre d\'affichage) : ';
    			echo '</td>';
    			echo '<td>';
    				echo '<input type="text" name="position" value="'.$position.'" size="1" maxlength="2" onchange="enable_disable();" />';
    			echo '</td>';
    		echo '</tr>';
     
    		echo '<tr>';
    			echo '<td>';
    				echo 'Necessit&eacute; d\'un mot de passe pour acc&eacuteder au projet : ';
    			echo '</td>';
    			echo '<td>';
    				echo '<select name="pwd" onchange="enable_disable();" >';
    					echo '<option value=""></option>';
    					$requeteSQL = 'SELECT Valeur FROM listes WHERE TypeValeur=\'password\'';
    					include (DCROOT."/scripts/requete.php");
    					while ($pwdVal = oci_fetch_array($stmt, OCI_BOTH))
    					{
    						if ($pwd == $pwdVal[0])
    						{
    							echo '<option value="'.$pwdVal[0].'" selected="selected">'.$pwdVal[0].'</option>';
    						}
    						else
    						{
    							echo '<option value="'.$pwdVal[0].'">'.$pwdVal[0].'</option>';
    						}
    					}
    				echo '</select>';
    			echo '</td>';
    		echo '</tr>';
     
    		echo '<tr>';
    			echo '<td>';
    				echo 'E-mail associ&eacute; au projet : ';
    			echo '</td>';
    			echo '<td>';
    				echo '<input type="text" name="email" value="'.$email.'" maxlength="50" onchange="enable_disable();" />';
    			echo '</td>';
    		echo '</tr>';
    	echo '</table>';
    	echo '<input type="submit" value="Cr&eacute;er" id="boutonValider" disabled="disabled" />';
    	echo '<input type="reset" value="Recommencer" />';
    	echo '<input type="button" value="Annuler" onClick="document.location.href=\'projets.php?type='.escape($type).'\'" />';
    echo '</form>';
     
    //on se deconnecte de la base de donnees
    include (DCROOT."/scripts/deconnexion.php");
    donc voila si vous avez des questions n'hésitez pas

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    T'as pas un htmlentities() à l'insertion en base de données par hasard ?

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    ben si j'en fait un a la récupération des données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_POST['ma_var']) && $_POST['ma_var'] != null)
    {
            $ma_var = htmlentities($_POST['ma_var']);
    }
    et pour la méthode get je fais pareil ormis que je fais en plus un rawurldecode sur la variable

    if (isset($_POST['ma_var']) && $_POST['ma_var'] != null)
    {
    $ma_var = htmlentities($_POST['ma_var']);
    $mavar = rawurldecode($ma_var);
    }
    [/CODE]

    donc normalement ca devrait être bon nan ?

Discussions similaires

  1. Addslashes sur un tableau
    Par ETVigan dans le forum Langage
    Réponses: 11
    Dernier message: 16/07/2010, 13h09
  2. Réponses: 4
    Dernier message: 30/04/2009, 13h57
  3. précision sur parenthèses et guillemets
    Par nazaire dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/07/2008, 14h48
  4. Réponses: 1
    Dernier message: 06/10/2006, 12h50
  5. explication sur les guillemet
    Par donny dans le forum Oracle
    Réponses: 3
    Dernier message: 23/06/2006, 11h03

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