Fonction strpos() ne fonctionne plus

Ce topic a été résolu
SkinDePewDiePie_

SkinDePewDiePie_ Le 19 septembre 2018 à 10:20 (Édité le 25 janvier 2019 à 17:54)

Bonjour, les enfants c'est CapitaineMatteo et je voulais vous parler d'un bug qu'il m'est arrivé pour ma redirection...
Alors commençons.
C'est la fonction strpos() qui me permet de vérifier si il y a dans L’URL le protocole: http:// ou https:// ou rien.

Exemples: 1. https://www.tradefac.tk/redirect?q=http://example.com => <a href="http://http//example.com">Accéder au site</a>,
                 2. https://www.tradefac.tk/redirect?q=https://example.com => <a href="http://https//example.com">Accéder au site</a> et
                 3. https://www.tradefac.tk/redirect?q=example.com => <a href="http://example.com">Accéder au site</a>.
Alors voila je voudrais savoir pourquoi dans la balise <a> ça me met soit 1. http://http//example.com ou 2. http://https//example.com.
Voici mon code:
<?php
if(isset($_GET['q'])) {
    if(!empty($_GET['q'])) {
        $q = htmlspecialchars($_GET['q']);
        if(strpos($q, "http://")) {
            $protocol = "http://";
        } else if(strpos($q, "https://")) {
            $protocol = "https://";
        } else {
            $protocol = "http://";
        }
     } else {
         header('Location: tradefac.tk');     
     }
} else {
    header('Location: tradefac.tk');
}
?>
<a href="<?= $protocol ?><?= $q ?>">Accéder au site</a>
Merci d'avoir lu mon topic 😋
Cordialement

CapitaineMatteo: Fondateur de tradefac.tk
Clouder

Clouder Le 19 septembre 2018 à 10:47

Bonjour @CapitaineMatteo,

Ton problème c'est ça :

Tu vérifies que tu as soit HTTP, HTTPS ou RIEN,
Pour HTTP tu rajoutes HTTP encore une fois
Pour HTTPS tu rajoutes HTTPS encore une fois
Pour RIEN tu ajoutes HTTP

Pour résoudre ton problème c'est si tu trouves HTTP ou HTTPS dans ton URL alors ta variable $protocol doit être comme cela $protocol = "" sinon $protocol = "http://"
Meilleure réponse
SkinDePewDiePie_

SkinDePewDiePie_ Le 19 septembre 2018 à 11:13

Au pire j'ai une idée je met la fonction strpos dans une variable et puuis je recupere la variable??
SkinDePewDiePie_

SkinDePewDiePie_ Le 19 septembre 2018 à 11:15

A merci j'ai compris ton idée
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte