atari54
Messages postés20Date d'inscriptionvendredi 11 novembre 2011StatutMembreDernière intervention 6 juin 2012
-
3 juin 2012 à 18:37
atari54
Messages postés20Date d'inscriptionvendredi 11 novembre 2011StatutMembreDerniè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
}
}
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 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.
atari54
Messages postés20Date d'inscriptionvendredi 11 novembre 2011StatutMembreDerniè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.