Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: CapitaineMatteo, Clouder
Ce topic a été résolu
Auteur Sujet: Fonction strpos() ne fonctionne plus

CapitaineMatteo

Messages: 30

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

Messages: 144

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://"
Publicité

Clouder

Messages: 144

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://"

CapitaineMatteo

Messages: 30

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

CapitaineMatteo

Messages: 30

A merci j'ai compris ton idée


Vous devez vous connecter ou créer un compte pour poster une réponse