Comparer deux chaînes de caractères

atari54 Messages postés 20 Date d'inscription vendredi 11 novembre 2011 Statut Membre Dernière intervention 6 juin 2012 - 3 juin 2012 à 18:37
atari54 Messages postés 20 Date d'inscription vendredi 11 novembre 2011 Statut Membre Dernière intervention 6 juin 2012 - 6 juin 2012 à 20:09
Bonjour,

Le but de de mon "bidouillage", est de faire en sorte de comparer deux chaînes de caractères, mais dans un contexte bien précis.
L'utilisateur rentre le nom du lien qu'il souhaite voir supprimé d'un site internet. Pour vérifier que le lien rentré dans le champ correspond bien à un des liens qui existe dans la base de données, j'effectue une requête pour extraire la colonne de la table en question, puis je passe en revue les données ligne par ligne. Ensuite, je compare la donnée entrée par l'utilisateur avec chacune des lignes, ce qui donne :

if($_POST['nom_lien1_supp']===$lien1)


Je souhaiterai savoir si cette façon de faire est bonne, voire "conventionnelle" (en tout cas de mon côté, ça fonctionne), ou si ma façon de coder est maladroite.
Je mets ici le code en entier pour qu'il n'y ait pas de confusion :

include 'connexion_bdd.php';
$requete = $bdd->query('SELECT nom_lien_1 FROM la_renaissance_liens_1');
While($ligne = $requete->fetch())
{            
   $lien1 = $ligne['nom_lien_1'];
}
$requete->closeCursor();
               
if(isset($_POST['nom_lien1_supp']) && !empty($_POST['nom_lien1_supp']) ){
        if($_POST['nom_lien1_supp']===$lien1){ 
?>


<form action="javaTest2.php" method="POST" name="formulaire">            
SUPPRESSION DE LIENS



SITES GENERALISTES

              
           Voulez-vous vraiment supprimer le lien \"<?php echo $_POST['nom_lien1_supp'] ?>\" ?

</td>" required/>,
----
,
----

<-Ne pas supprimer et retourner au formulaire

            

</form>          
     

<?php
                        }
                        else
                        {
                                ?>
                                <script>
                                        alert('Le lien n\'existe pas');
                                        document.location.replace('javaTest_form.html');
                                </script>
                                <?php
                        }
                }


Merci !

2 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
4 juin 2012 à 23:09
Salut,

Concernant la comparaison elle même, tu as eu raison d'utiliser l'opérateur triple égal et non le double. En effet, le double égale cause quelques problèmes... cf dernier point de cet article : Quelques étrangetés de PHP. Tu aurais pu également utiliser la fonction strcmp() et ses dérivées afin de faire ta comparaison, l'avantage de cette utilisation contrairement au triple égal est que si un de tes chaînes n'en est pas véritablement une (objet par exemple), elle sera alors convertie.

Sinon les points crades de ton code :
- Le mélange du PHP et du HTML, sérieux c'est dégueu. Templates powa quoi (smarty par exemple).
- Le HTML lui même est crade, il faut utiliser les balises pour ce pour quoi elels sont faites uniquement, les utilsier pour faire de la mise en page c'est naze.
- La division de ton code PHP est inexistante, c'est mal.
0
atari54 Messages postés 20 Date d'inscription vendredi 11 novembre 2011 Statut Membre Dernière intervention 6 juin 2012
6 juin 2012 à 20:09
Salut TychoBrahe,

Merci pour ta réponse bien précise.
- Ok concernant la séparation du code de présentation et du code métier via Smarty : je regarde ça.
- Concernant les balises HTML que j'utilise pour de la mise en page, tu veux parler des et autres ?
- Pour la division du code PHP, que veux-tu dire par là ?

Merci en tout cas, je prends en compte tes conseils.
0
Rejoignez-nous