IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

problème de tirer dans variable transmise par url


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Par défaut problème de tirer dans variable transmise par url
    Bonjour à tous, voila mon petit soucis de débutant je pense mais que je n'ai pas trouvé sur google !

    J'ai un "-" qui me pos problème dans la variable que je transmet dans mon lien qui est :

    http://www.monsite.com/url_redirect....om/forum/forum-general

    Le tiret entre forum et général me pose un problème car la page redirige vers http://www.monsite.com/forum au lieu de http://www.monsite.com/forum-general

    Merci beaucoup,

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 127
    Par défaut Urlencode souvent mais pas là
    Bonsoir,

    Les - sont autorisés dans les urls. Quel est le code en amont ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Par défaut voila le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function create_alias_for_url($com)
    {
    	$text = preg_match_all('`([^(<a.*>)])((https?:\/\/|https?:\/\/www\.|www\.){1}[\w/_\-\.\?\=]*)`i', $com, $m_url);
    	for ($i = 0, $flag = 0; isset($m_url[0][$i]); $i++)
    	{
    			$m_pattern[] = "/".str_replace(array('-','/','?'), array('\-','\/','\?'),$m_url[2][$i])."/";
    			$m_replace[] = '<a href="http://www.monsite.com/url_redirect.php?url='.$m_url[2][$i].'" rel="nofollow" >'.$m_url[2][$i].'</a>';
    			$flag = 1;
    	}
    	if ($flag == 1)
    		$com = preg_replace($m_pattern, $m_replace, $com);
    	return $com;
    }
    C'est peut etre une histore de regex précédente, mais le remplacement est bon, je ne comprends pas, quand je fais "copier l'adresse du lien" j'ai bien le "-" mais quand je valide l'url, ca renvoie vers .../forum au lieu de ..../forum-general :s

    Merci en tout cas de t'être penché sur la question.

    Bonne aprême.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Par défaut avec le code de url_redirect c'est mieux pour comprendre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    preg_match('`(https?:\/\/(?!www\.)|https?:\/\/www\.|www\.){1}(((:\d+)?)[\w/_\.]*(\?\S+)?)`i', $_GET['url'], $url);
    if (preg_match('`(https?)://`i',$url[1], $buff))
    	header("Location: ".$buff[1].'://www.'.$url[2]);
    else
    	header("Location: http://www.".$url[2]);
    Voila vous savez tout désormais,

    je pense que c'est bête et méchant, reste a trouver ou est ce que ca coince

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Par défaut Trouvé
    On finit toujours par trouver en bidouillant lol

    La solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('`(https?:\/\/(?!www\.)|https?:\/\/www\.|www\.){1}(((:\d+)?)[\w/_\.\-]*(\?\S+)?)`i', $_GET['url'], $url);

Discussions similaires

  1. [Problème] Recherche précise dans variable
    Par maloute80 dans le forum Langage
    Réponses: 12
    Dernier message: 10/12/2007, 13h37
  2. PRoblème d'apostrophe dans variable.
    Par jbidou88 dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/06/2007, 14h57
  3. Question sur les variables passées par URL
    Par cotlod dans le forum Langage
    Réponses: 7
    Dernier message: 11/10/2006, 00h04
  4. [SQL] Comment utiliser dans une requête une variable passée par URL
    Par foffa dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 31/08/2006, 12h27
  5. Réponses: 4
    Dernier message: 29/08/2006, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo