Page 1 sur 1

Page aléatoire

Posté : 19 avr. 2021, 10:35
par jeanyveso
Bonjour.
Je ne connais pas grand chose au développement.
Avec mes élèves, dans le cadre d'un projet, on cherche à afficher une vidéo aléatoire grâce à un qrcode.
J'ai récupéré ce code sur internet :

Code : Tout sélectionner

<?php $sites = array( "https://.../video001.mp4", "https://.../video002.mp4", "https://.../video003.mp4", "https://.../video004.mp4", "https://.../video005.mp4", "https://.../video006.mp4", "https://.../video007.mp4" ); $minimum = 0; $maximum = count($sites); $nb = rand($minimum, $maximum); header('Location: '.$sites[$nb]); ?>

Je rencontre un problème :

Lorsqu'on ouvre la page, ça mène toujours à la même vidéo. La fonction "aléatoire" ne fonctionne pas apparemment.

Merci d'avance pour votre aide.

Bonne nuit.

Re: Page aléatoire

Posté : 19 avr. 2021, 11:01
par @rthur
Bizarre car le code semble plutôt correct à première vue...

Quelques conseils :
- Après un header('Location...'); toujours mettre un exit; ça permet d'éviter que du code ou un espace HTML ou quoique ce soit soit envoyé au navigateur et puisse provoquer un bug bizarre
- Un index de tableau commence effectivement à 0 et la conséquence c'est que la valeur maximum est count($tableau)-1
- Pour aider au debugage, remplace la fonction header() par var_dump() afin de voir l'url vers lequel doit se faire la redirection
##edit : Je viens de tester en faisant un var_dump() et ça fonctionne de mon côté

Re: Page aléatoire

Posté : 19 avr. 2021, 11:34
par jeanyveso
Merci pour votre message.
J'ai corrigé le problème de la valeur maximum du tableau.
Lorsque je colle mon url dans un navigateur, ce dernier me redirige vers une vidéo aléatoire. Tout va bien.

Je rencontre un autre problème.
Cette page doit être accessible grâce à un qr code.
Lorsque scanne le code pour aller sur la page, il me redirige toujours vers la même vidéo...
Ça fonctionne pourtant bien avec copier coller de l'url.

Merci pour votre aide.

Re: Page aléatoire

Posté : 19 avr. 2021, 11:50
par @rthur
Es-tu sûr d'avoir généré un QRcode qui ne contient que l'url que tu as indiqué ?
Car si tu passes par un générateur en ligne, ils ont tendance à mettre une url intermédiaire genre qrco.de ou un truc du genre pour te donner des statistiques, et il est possible du coup qu'ils gardent en mémoire cache l'url finale de la vidéo au moment où ils l'ont consulté la 1ʳᵉ fois.

Tu peux utiliser par exemple le site suivant mais sans mettre l'option "Scan Tracking" :
https://www.qr-code-generator.com/

Re: Page aléatoire

Posté : 19 avr. 2021, 11:52
par @rthur
Et également pour limiter le risque de mise en cache, tu peux ajouter cette ligne juste avant ton header(location)
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");

Re: Page aléatoire

Posté : 19 avr. 2021, 12:07
par jeanyveso
J'ai justement utilisé ce site pour générer le qrcode. Mais ça ne fonctionne pas.
J'en ai testé un autre, et j'ai un autre résultat... qui fonctionne. https://www.unitag.io/
Mais le lien passe par un site puis est redirigé de nouveau vers ma page... bizarre.
En tout cas, merci pour votre aide... je dois pouvoir m'en sortir avec toutes infos.
Merci.
Bonne journée.