Exécuter un lien sous conditions
Comment ouvrir une page avec le lien suivant sous certaines conditions ?
Lien
<?php
echo '<a href="MaPage.php">Ouvrir ici</a>';
?>
Conditions
<?php
if($a == 1)
{
// On ouvre MaPage.php
}
else
{
// On n'ouvre pas MaPage.php et on affiche un message d’erreur : Exp. $a n’est pas bon !
}
?>
Je fais ce qui me plaît, et ce que je fais me plaît !
le 24/03/2010 à 06:19
Keika
deux facons:
-PHP - tu verifies tes conditions avec le serveur et tu actives ou non le lien (en integrant la balise HTML <a href=""></a> autour du mot)
-javascript: lors de l'event onClick, tu verifies tes parametres et tu autorises ou non le chargement de la page.
Le PHP --> C'est dur !
Tout cela est très beau, merci.
Mais comment je dis tout ça en PHP ?
Le lien est déjà présent, c'est la condition qui fait que la page s'ouvre ou non au click.
Je fais ce qui me plaît, et ce que je fais me plaît !
le 24/03/2010 à 13:07
Amery
Si je comprends bien (pas sûr
), tu veux rediriger le visiteur vers une autre page? Dans ce cas, il faut utiliser la fonction
header :
<?php
if($a == 1)
{
header('Location: mapage.php');
exit(); // Pour mettre fin à l'exécution du script
}
else
{
print("$a n’est pas bon !");
}
?>
Par contre, si tu veux ouvrir une fenêtre supplémentaire, là il faut passer par du javascript, mais c'est pas mon dada...
Ok, je ceci au départ
<?php
echo '<a href="MaPage.php">Ouvrir ici</a>';
?>
Si je te comprends bien c'est à peu près le code suivant qui fait l'affaire ?
<?php
echo '<a href="if(isset($_SESSION['privilege']))
{
header('Location: FavorisLigne.php');
exit();
}
">'Favoris en ligne'</a>';
?>
Je fais ce qui me plaît, et ce que je fais me plaît !
le 25/03/2010 à 08:19
Amery
non...
le code qui fait l'affaire si tu veux rediriger le visiteur vers une autre page, c'est juste :
<?php
header('Location : mapage.php');
exit();
?>
Pas besoin de balise <a href=...>.
Mais je pense que pour ce que tu veux faire, il faut utiliser du javascript, et là, je m'y connais pas bien... Va peut-être voir sur des sites spécialisés javascript.
Heu non, Amery avait donné la bonne solution.
Dans ton premier message, tu dis vouloir simuler un clic sur un lien (tu parles d'ouvrir une page) si une condition est valide.
Ceci est équivalent à une redirection : tu balances le visiteur sur la page ciblé par ce lien sans que le visiteur clic sur un lien.
Donc :
<?php
if ($condition_validee) {
header('location: la_page.php');
exit();
}
else {
echo 'une erreur';
}
?>
Vous avez tous les deux raison.
mais il faut que le lien soit là avant tout, un peu comme un bouton.
<?php
echo '<a href="MaPage.php">Ouvrir ici</a>';
?>
Tu cliques dessus, la page s'ouvre si la condition est remplie plus haut, mais ce que vous me proposez ne s'applique pas vraiment à mon problème.
Je fais ce qui me plaît, et ce que je fais me plaît !
Ah ok.
Bon ben si la condition est remplie, tu affiches le lien et si elle n'est pas remplie, ben soit tu affiches du texte, ou bien un lien vers une page qui explique pourquoi le lien n'est pas activée ou bien une alert javascript, ou ce que tu veux.
En tout cas, sans faire des trucs crappy (javascript inside, c'est à dire qui ne marchera pas si la personne n'active pas le javascript), tu ne pourras pas afficher un "lien qui n'est pas clickable".
Par contre, il te faudra aussi faire une vérification dans MaPage.php pour vérifier que la personne avait bien le droit de clicker sur le lien (car clicker sur un lien et saisir une URL dans le navigateur, niveau PHP, c'est pareil).
le 28/03/2010 à 16:25
Keika
c'est quoi en fait la condition ?
et tu veux mettre un lien devant le nez de ton utilisateur mais sans le laisser y acceder ? alors qu'il pourrait tout simplement le copier et coller dans la barre d'adresse...
Je pense que verifier la condition avant d'afficher le lien serait meilleur.
Le PHP --> C'est dur !