Bonjour j'ai un petit problème avec mes if, je m'explique
j'ai ce code :
if(!empty($_GET['id']) && empty($_GET['s'])) {
echo "toto";
} else if (!empty($_GET['s']) && $_GET['s'] == "show" && !empty($_GET['id'])) {
echo "ZOOM";
} else {
//Redirection
header('Location: index.php');
exit;
}
si il y a rien alors on affiche toto profil.php?id=4 -> toto
si il y a show alors on affiche profil.php?id=4&s=show -> show
Si il y a n'importe quoi dans le show alors redirection
Mais j'ai un problème, si je fais profil.php?id=4&s= (j'ajoute rien)
Alors il m'affiche la première condition, comment faire pour dire que si il y a rien dans le s alors on redirige mais sans pour autant géné les autres conditions.
Ceci fonctionne pour moi :
if (!empty($_GET['id']) && !isset($_GET['s'])) {
echo "toto";
} elseif ($_GET['s'] == "show" && !empty($_GET['id'])) {
echo "ZOOM";
} else {
//Redirection
header('Location: index.php');
exit;
}
D'accord, alors après avoir regarder sur php.net je pense que la solution pour ton problème est la suivante:
if(!empty($_GET['id']) && !isset($_GET['s'])) {
echo "toto";
} else if (!empty($_GET['s']) && $_GET['s'] == "show" && !empty($_GET['id'])) {
echo "ZOOM";
} else {
//Redirection
header('Location: index.php');
exit;
}
"isset" vérifi si la variable existe et est différente de null, pour plus d'information je t'invites à visiter php.net et rechercher la fonction isst()
Bonjour, je ne suis pas un pro, mais d'après se que je vois ton code et répétitif et ne peut être éviter, car au final si tu regarde bien ta première condition peut être remplacer par la deuxième et donc avoir qu'un seule condition d'après se que tu dit ^^ car au final si j'ai bien compris tu veux que lorsque $_GET['s'] est vide alors tu rediriges peut importe si $_GET['id'] est vide ou pas.
Donc ton code pourrais resembler à ceci:
if (!empty($_GET['s']) && $_GET['s'] == "show" && !empty($_GET['id'])) {
echo "ZOOM";
} else {
//Redirection
header('Location: index.php');
exit;
}
En espérent avoir bien compris ton attente, et avoir répondu à cette dernière ^^
Salut, merci pour ta réponse mais c'est pas ce que je veux, par exemple je veux que si le membre est sur profil.php?id=4 il y a son profil d'affiché (toto) et si il va dans profil.php?id=4&s=show alors on affiche le show (zoom)
et si il y a rien sans le s ou alors qu'il ajoute autre chose que le show alors redirige. :)
Pour être sûr que cela redirige l'utilisateur vers index.php, il faut s'assurer que le header();
est declaré avant n'importe quel output est envoyé que ce soit du HTML ou des lignes blanches d'un fichier. Par exemple, ce code va générer une erreur car il y a une balise html en haut.
<html>
<?php
header('http://www.exemple.com');
exit;
?>
Ensuite, on fait un exit;
pour arrêter l'exécution du script. Voici quelque liens pour la référence: