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 :

URLRewriting


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 6
    Par défaut URLRewriting
    Bonjour

    Voilà je me met à l'URL REWRITING et j'ai chercher pas mal de tuto et j'avoue que je n'y comprend pas tout.

    Alors au début j'avais une page dynamic appelé go.php qui évidement ne changeait jamais d'adresse => On pouvait cliquer sur n'importe quel catalogue c'était toujours go.php mais sa chargeait bien les catalogue (merci HEADER).

    Donc par la suite j'ai fait un window.location qui prenait le nom du catalogue + id de l'image (il marche) et j'obtiens donc cela :

    var Chaine = String(window.location);
    var sous_chaine = "#?Client=";
    var Resultat = Chaine.indexOf(sous_chaine);
    var Resultat2 = Chaine.substring(0,Resultat);
    window.location = Resultat2 + "#?Client=" + document.getElementById("title" ).value + "&id=" + document.getElementById("MediaID" ).value;

    qui me donne => http://monsite.com/go.php#?Client= [...] ss&id=1563

    Par la suite j'ai tenté de faire un .htaccess qui me donne cela :

    RewriteEngine on

    #--------------------------------------------------
    # Règles de réécriture d'URL :
    #--------------------------------------------------
    RewriteBase /verif/
    # Article sans numéro de page :
    #RewriteRule ^#/go-(.+)-([0-9]+)\.html$ ^go.php?Catalogue=$1&Photo=$2# [L]
    RewriteRule ^go-(.+)-([0-9]+)\.html$ go.php#?Client=$1#&id=$2/ [L]

    qui me permet de rentrer directement l'adresse comme ça

    http://site.fr/verif/go-Kate Moss-1563.html

    Donc si je la rentre comme ça elle marche mais pas super.

    1) toujorus le window location à la suite => http://site.fr/verif/go-Kate%20Mos [...] ss&id=1563
    2)L'url ne change pas du tout => http://site.fr/verif/go-Kate%20Mos [...] ue&id=1636
    3)Donc quand on change les valeur directement dans l'url que ce soit pour le window.location ou avec l'html il ne se passe rien
    4)On ne peux pas sauvegarder l'URL sa ne ramène pas sur l'image mais le catalogue pas de retour en arrière.
    5) Je ne sais pas comment l'utiliser sans le window.location
    6) si j'enleve le # au debut sa part en boucle infinie/

    Donc si vous pouviez m'apporter quelques explications sur comment l'utiliser je vous en serrais reconnaissant. et aussi comment enlever le # sans que cela parte en boucle infinie

    Merci

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    je ne compris à quoi sert le code JavaScript
    montres des exemples d'URL pour accéder directement aux différentes parties du site

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 6
    Par défaut
    Bonjour

    et merci de ta réponse

    Alors voilà j'ai abandonné l'URL REWRITING. Et je vais m'expliquer pourquoi.

    En fait la personne qui à créer le site l'a fait en full ajax, ce qui veux dire dynamique = non rechargement des pages....
    Donc c'est pour cela que je trouve que l'url rewriting en fait ne me sert pas à grand chose vu que ma page ne serra jamais recharger.

    Ensuite l'autre soucis c'est que vu que c'est en full ajax il n'y a jamais l'URL qui change j'avais toujours monsite.fr/go.php.
    et c'est pour cela que j'ai fait du windows.location


    pour les images en fait le site sur la gauche il y a une série de nom de catalogue qui lorsqu'on clique dessus va afficher sur la droite les images du catalogue.

    Là où j'en suis à présent j'essaye de tout gérer par rapport au window.location.search et j'y arrive presque sauf que évidement j'ai une condition qui agit pour deux choses différentes que je n'arrive pas à modifier.

    Je poste mon code pour mieux comprendre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    //Je recupère le lien
    var Chaine = String(window.location);
     
     
    var test = 0;
    //Fonction qui me coup mon URL pour récupérer les variables
    function PrmUrl()
    {
    var prm = new Array();
    var tmp =
    unescape(window.location.search).substr(1).split("
    &");
    var inter;
    for ( i=0; i<tmp.length; i++)
    {
    inter=tmp[i].indexOf("=");
    if ( inter>=0 )
    {
     
    prm[tmp[i].substr(0,inter)]=tmp[i].substr(inter+1)
     
    }
    else {
    prm[tmp[i]]="";
    }
    }
    return prm;
    }
     
    Si il y a bien une URL
    if ( window.location.search )
    {
    var $_GET=PrmUrl();
    var tmp= "-----------------------\r\n"+
    "exemple par leur noms :\r\n"+
    "-----------------------\r\n"+
    "\tp1 = "+$_GET["Client"]+"\r\n"+
    "\tp2 = "+$_GET["id"]+"\r\n"+
    "------\r\n"+
    "tous :\r\n"+
    "------\r\n";
    for ( var n in $_GET )
    {
    tmp+="\t"+n+" = "+$_GET[n]+"\r\n";
    }
    Je passe ma variable Test à 1 pour éviter la boucle infinie voir plus bas
     
    test = 1;
    //alert ("client = " + $_GET["Client"]);
     
    //Si je change de catalogue je vérifie que mon titre catalogue est le meme que celui que j'avais récupéré sinon je met mon test a 0
     
    if( document.getElementById("title").value != $_GET["Client"]){
    test = 0;
    }
    }
     
    //Si test =0
    if (test == 0)
    {
    //Ici je vais découpé tout mon code pour juste avoir <a href="http://www.monsite/go.php" target="_blank">www.monsite/go.php</a> et pouvoir rajouté par la suite mes variables.
     
     
    var sous_chaine = "?Client=";
    var Resultat = Chaine.indexOf(sous_chaine);
    var Resultat2 = Chaine.substring(0,Resultat);
     
    test = 0;
    //window.location.href= Resultat2 + "?Client=" + document.getElementById("title").value;
    window.location.href= Resultat2 + "?Client=" + document.getElementById("title").value + "&id=" + document.getElementById("MediaID").value;
    }
    Donc voilà le problème c'est qu'a cause de mon "if" je ne peux pas dire quand je change directement l'URL et bien je ne le dis jamais parceque je ne peux pas faire la différence à cause du if( document.getElementById("title").value != $_GET["Client"])
    Donc j'aimerais faire la différence entre lorsque je clique sur un autre catalogue => titre different du $Get et lorsque j'ecris directement sur l'URL le nouveau titre même condition qu'avant sauf qu'au lieu de retourner sur mon window.location je devrais dire que document.getElementById("title").value = $_GET["Client"]

    Je commence a detester celui qui à programmer ça avant moi => Full ajax youpi....

Discussions similaires

  1. [URLRewriting] Trop de paramètres
    Par nicoalafac dans le forum Apache
    Réponses: 1
    Dernier message: 02/02/2007, 10h12
  2. Peut-on avoir deux fichier .htaccess pour 2 urlrewriting différents pour 1 même site
    Par JackBeauregard dans le forum Serveurs (Apache, IIS,...)
    Réponses: 3
    Dernier message: 30/09/2006, 08h35
  3. Réponses: 7
    Dernier message: 05/07/2006, 15h32
  4. urlrewriting caracteres accentues
    Par yankey dans le forum Langage
    Réponses: 1
    Dernier message: 15/01/2006, 13h09
  5. faire urlrewrite sans ID
    Par lolo83 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 07/01/2006, 19h06

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