Un HTTP en trop

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

Pour l'activation de compte, j'envoie un mail avec un lien dedans. Lorsque le client clique, je viens activer son compte avec sa clé.

Ça fonctionne très bien, cependant, un ami viens de faire le test avec Hotmail. Lorsqu'il clique sur le liens, ça rajoute un https://. Etant donné que mon adresse commence par ns366377.ovh.net/..... Ça vient faucher le jeu ^^

Avez-vous une idée de comment gérer ce genre de cas ? Car là j'avoue coincer :p

En vous remerciant d'avance !

Édité par Moufle

+0 -0
Auteur du sujet

Bonjour :)

La voici :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
// Librairie - fonction d'envoie de mail
            include_once("lib/envoie_mail.php");

            // Génération du mail de confirmation
            $html  = '<html><body>';
            $html .= 'Bonjour <b>'.$pseudo.'</b><br><br>';
            $html .= 'Pour activer votre compte, ';
            $html .= '<a href=\'ns366377.ovh.net/lepetit/perso/monpanierlivre-v5/?module=user&action=activation&key='.$key.'\'>cliquez ici !</a><br>';
            $html .= '<b><i>Bonne journée à vous !</i></b><br>';
            $html .= '<body><html>';

            envoie_mail('Mon Panier Livré', 'monpanierlivre@gmail.com', 'monpanierlivre@gmail.com', $mail, '', 'Confirmation d\'inscription à Mon Panier Livré', '', $html, '');

(Là on est à l'intérieur d'un de mes controller d'inscription)

Je pense pas que ma fonction envoie_mail(); ne vous intéresse. (si?). En tout cas, comme vous pouvez voir, je commence bien mon <a href=""> par ns366377.ovh.net..... Mais sur certains Emailer, comme Hotmail, il me rajoute un http:// devant lorsqu'on clique sur le lien.

Comment je pourrais gérer ce genre de cas ? :/

Merci encore.

+0 -0

Cette réponse a aidé l'auteur du sujet

C'est normal, ce n'est pas "valide". Et encore, t'as du bol, parce que théoriquement c'est une adresse relative, donc ça devrait donner l'adresse du webmail pour lire le message où on enlève le nom de fichier courant et où on recolle le contenu de ton href.

Genre : https://mail.google.com/mail/ns366377.ovh.net/lepetit/perso/monpanierlivre-v5/?module=user&action=activation&key=X

Mais comme c'est un webmail, je pense qu'ils ont compris que le but n'était pas de faire un lien vers leur propre serveur donc "corrigent" bêtement en ajoutant http(s) en scheme.

Conclusion : pourquoi tu ne mets pas "http://" en début de ton href histoire d'avoir une URL valide et qui ne prête pas à ambiguïté ?

HS : tu devrais utiliser la syntaxe HEREDOC, ce serait, AMHA, plus lisible

Édité par vibrice

+1 -0
Staff

Cette réponse a aidé l'auteur du sujet

C'est normal qu'il y ai un protocole. Par contre si il tente d'y accéder en HTTPS, la ca peut déconner si ca n'ai pas configuré sur ton serveur.

Ajoute http:// devant tes liens et ca devrait aller.

+1 -0
Auteur du sujet

Je pensais pas que j'étais obligé de le marqué en plus dans mon lien, étant donné que lorsque je regardais l'url en haut du navigateur, il n'était pas mentionné…

Merci à vous en tout cas, au top :)

HS : tu devrais utiliser la syntaxe HEREDOC, ce serait, AMHA, plus lisible

Je suis pas sûr d'avoir compris ^^

+0 -0
1
2
3
4
5
6
7
8
9
<?php
$html = <<<EOT
<html><body>
Bonjour <b>{$pseudo}</b><br><br>
Pour activer votre compte
<a href="http://ns366377.ovh.net/lepetit/perso/monpanierlivre-v5/?module=user&action=activation&key={$key}">cliquez ici !</a><br>
<b><i>Bonne journée à vous !</i></b><br>
<body><html>
EOT;

N'est-ce pas mieux ?

Édité par vibrice

+0 -1

Sauf quand tu dois les échapper parce que tu les utilises dans ton code HTML (ou autres) … (ie ce n'est pas strictement identique) C'est tout l'intérêt du HEREDOC : aucun échappement à gérer et tu as l'interpolation des variables.

Personnellement, je ne la trouve pas complexe, au contraire, le tout, je pense, c'est de savoir qu'elle existe même si la syntaxe existe ailleurs (shells, ruby, …) et est documentée.

Les goûts et les couleurs … mais pour "déclarer" un document XML ou une requête préparée en tant que chaîne de caractères PHP, je pense qu'on fait difficilement plus pratique que du NOWDOC quand même.

Édité par vibrice

+0 -0

Attention à la confusion heredoc / nowdoc. Le premier c'est avec interpolation des variables, l'autre pas.

Parce que j'ai dit et/ou mon code d'illustration font le contraire ?

J'ai dû mal à comprendre ce que vous avez contre ma proposition d'utiliser la syntaxe HEREDOC. Personne ne la trouve appropriée dans ce cas de figure ? Vous préférez tous les double quotes et échapper celles dans la chaîne ?

Édité par vibrice

+0 -0

Parce que j'ai dit et/ou mon code d'illustration font le contraire ?

Non pas dans le code, mais à la fin de ton message tu mentionnes nowdoc comme si c'était synonyme. Je voulais juste rappeler que ça ne l'est pas tout à fait.

J'ai dû mal à comprendre ce que vous avez contre ma proposition d'utiliser la syntaxe HEREDOC. Personne ne la trouve appropriée dans ce cas de figure ?

Si, je suis un grand fan d'heredoc moi-même, je l'utilise tout le temps. A tel point que dans mes sources perso il n'y a quasiment plus de chaînes classiques contenant du code HTML. Dès qu'il y a plus que deux ou trois double-quotes, hop, je switche en heredoc. Même pour une ligne ou deux.

Ma plateforme avec 23 jeux de société classiques en 6 langues et 13000 joueurs: http://qcsalon.net/ | Apprenez à faire des sites web accessibles http://www.openweb.eu.org/

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte