Gérer les sous-domaines (wildcard) pour afficher le bon site

Vous avez un soucis de développement et ce n'est pas du ressort de notre support ? N'hésitez pas à soumettre vos petits soucis de développement et à vous entre aider par la même occasion.
Inconnu
Cet utilisateur a supprimé son compte et n’existe plus.
Messages : 6340
Inscription : 29 décembre 2010 à 18:15

Bonjour, voici mon problème,

J'ai activé les wildcard pour mon domaine, cette option permet au système de basculer tous les sous domaine de ce site sur lui même. Il vous reste ensuite à gérer la récupération de l'adresse en PHP en créant votre propre script ou même d'utiliser de la réécriture d'URL pour simuler des contenus totalement différents.

Le problème c'est que je voudrais, de manière automatique, afficher le site correspondant au sous-domaine. Le problème c'est que je ne connais pas les sous-domaines utilisé à l'avance, donc comment faire?

J'ai pensé à quelque chose:

Code : Tout sélectionner

switch( $_SERVER['HTTP_HOST'] ) {
\tcase valeur1:
\t\tAction pour avoir contenu 1
\t\tbreak;
\tcase valeur2:
\t\tAction pour avoir contenu 2
\t\tbreak;
\tdefault:
\t\tAction pour avoir contenu par défaut
\t\tbreak;
}

Le problème c'est que je ne connais pas les sous-domaines à l'avance...
Alors à moins qu'à l’inscription je demande le nom du sous-domaine, je le stocke dans une BDD qui stocke tout les sous-domaines, et que je fasse une requête sur la page index... le problème c'est que cela me parait compliqué et peut-être pas la solution la plus simple...

De plus j'ai essayé sous cette forme:

$redirection=$_SERVER["HTTP_HOST"];

Code : Tout sélectionner

switch ($redirection)
{
\t$var;
}
ou var est la variable récupérée dans une BDD, $var contient donc par exemple:

case valeur1:Action pour avoir contenu 1;break;case valeur2:Action pour avoir contenu 2;break; ...

Mais cela ne fonctionne pas.
Mon site ne s'affiche plus.

D'avance merci
Didier07
Messages : 291
Inscription : 15 mai 2011 à 09:44

Explique ce que tu veux avec des exemples concret parce que là je suis largué et je comprends pas ce que tu veux exactement
Inconnu
Cet utilisateur a supprimé son compte et n’existe plus.
Messages : 6340
Inscription : 29 décembre 2010 à 18:15

bonsoir, merci de vous interesser à mon probleme.

Par exemple, vous vous inscrivez sur mon site vous désirez appeler votre site didier07. Bon et bien a l'inscription le nom sera enregistré dans une base de données, comme tout les autres.
De ce fait, grace au wildcard, le sous domaine didier07.info-3C.fr existe déjà. Mais il renvoie le site info-3C.fr et pas le site qui se trouve dans info-3C.fr/site/didier07.

Manuellement sur ma page index.php je peux faire une redirection si $_SERVER["HTTP_HOST"] renvoie didier07.info-3C.fr
Le probleme c'est que je veux le faire automatiquement, donc je dois trouver un moyen qui, en fonction de $_SERVER["HTTP_HOST"] renvoie le site se trouvant dans le dossier de l'utilisateur en question (ici info-3C.fr/site/didier07).

J'espere avoir été plus clair.
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7938
Inscription : 2 avril 2010 à 20:14

Bonsoir,
iccc a écrit :vous vous inscrivez sur mon site vous désirez appeler votre site didier07. Bon et bien a l'inscription le nom sera enregistré dans une base de données, comme tout les autres.
Vous avez donc une liste des sites perso disponibles avec un contenu (page HTML par exemple) que l'utilisateur publie.
iccc a écrit :Manuellement sur ma page index.php je peux faire une redirection si $_SERVER["HTTP_HOST"] renvoie didier07.info-3C.fr
Le probleme c'est que je veux le faire automatiquement, donc je dois trouver un moyen qui, en fonction de $_SERVER["HTTP_HOST"] renvoie le site se trouvant dans le dossier de l'utilisateur en question (ici info-3C.fr/site/didier07).
Vous vérifiez si le dernier élément du tableau pointé de la variable $_SERVER["HTTP_HOST"] est présent dans cette liste de sites perso. Si c'est présent vous affichez alors le contenu correspondant, s'il n'existait pas vous proposer à l'internaute de s'inscrire par exemple.

Je ne vois pas trop le problème pour automatiser le système :)
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Didier07
Messages : 291
Inscription : 15 mai 2011 à 09:44

Bonjour

Code : Tout sélectionner

$user = str_replace( '.info-3C.fr', '', $_SERVER["HTTP_HOST"] ));
Te donne la chaine de caratère qui est placée avant .info-3C.fr

La il faut vérifier que cette cahine soit un utilisateur dans la base de donnée.
Si oui,

Code : Tout sélectionner

header('location:/site/'.$user);
pour le rediriger

Si non, lui proposer de s'inscrire par exemple

Tu comprends mieux ?
Inconnu
Cet utilisateur a supprimé son compte et n’existe plus.
Messages : 6340
Inscription : 29 décembre 2010 à 18:15

Bonjour, oui c'est clair, sauf que:

Code : Tout sélectionner

$user = str_replace( '.info-3C.fr', '', $_SERVER["HTTP_HOST"] ));
me renvoie une erreur serveur, le site ne s'affiche donc plus.
Didier07
Messages : 291
Inscription : 15 mai 2011 à 09:44

Exact, il y a une ) en trop à la fin :)
Inconnu
Cet utilisateur a supprimé son compte et n’existe plus.
Messages : 6340
Inscription : 29 décembre 2010 à 18:15

merci beaucoup didier07, cela fonctionne (enfin str_replace ne fonctionné pas il renvoyer le lien cmplet j'ai donc utilisé explode) mais le résultat est que tout fonctionne. Merci beaucoup
Répondre