Le rechargement d'une page avec des paramètres
J'ai une page montrant une image aléatoire sur chaque recharge. Cette page s'affiche uniquement si un nombre est passé par $_GET (représente un profil d'utilisateur). Pour aller à la prochaine aléatoire de l'image, je voudrais un bouton de soumission de recharger la page. Cependant, je suis à frapper deux hics:
- En PHP à l'aide de la
header
fonction produit le fameux "headers already sent by" erreur. Plus l'utilisateur est redirigé car aucun paramètre n'est passé. - En Javascript, un
location.reload
ne recharge la page, mais, de nouveau, le paramètre est manquant menant au même résultat.
Donc ma question est de savoir si il est possible en Javascript pour recharger une page avec un paramètre? Ou connaissez-vous une autre solution?
Edit: Fait quelques tests avec une boîte d'alerte et l'url s'affiche tel qu'il apparaît dans la barre d'adresse. Aucune idée de pourquoi le paramètre n'est pas passée.
Vous devez vous connecter pour publier un commentaire.
Vous devriez vous demander pourquoi vous recevez le
headers already sent
erreur. C'est généralement parce que votre débit est incorrect. Assurez-vous de gérer votrePHP
avant de générer la sortie. Vérifiez pour le formulaire en haut de votre code et en toute sécurité rediriger sans l'exécution de toute autre chose. Devrait résoudre votre problème.require_once
lignes de ce qui sera difficile à déplacer ailleurs. J'ai essayé d'utiliserheader
au départ, mais sans succès jusqu'à présent.Dans un autre sujet, j'ai trouvé que
window.location.replace(window.location.href)
permettra de conserver les paramètres.
C'est assez simple: déplacer le code qui ne l'en-tête( ) appel vers le haut (avant toute autre sortie). "Headers already sent" est infâme, mais aussi incroyablement facile à résoudre.
De le passer? Cela devrait fonctionner, je pense?
isset($_GET['param']) && intval($_GET['param']) > 0
. Comme pour l'en-tête d'erreur, cela est probablement causé par un couple derequire_once
lignes au près de qui faire des choses comme initialiser l'utilisateur et la connexion de base de données.Au lieu de
location.reload
la page, vous pouvez utiliserdocument.location
pour rediriger la page vers la même page avec un paramètre passé par OBTENIR. Par exemple,Ok, je pourrais aussi bien mettre ce qu'il a été une douleur devient quelque chose de travail à l'aide de javascript et PHP, et je n'ai pas assez de temps pour obtenir quelque chose en ajax de travail. Une solution simple est tout simplement de spécifier le paramètre dans l'attribut action du formulaire (spécial balisage est de smarty).