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 :

Mise de site en ligne lien dynamique PHP et/ou réécriture d'URL.


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut Mise de site en ligne lien dynamique PHP et/ou réécriture d'URL.
    Bonjour a tous j'ai créer mon menu dynamique en php, en local il marche très bien. Je viens de le mettre en ligne, sacrilège mes liens sont inaccessible. j'ai tenter a mainte reprise de réparer le problème je n'y arrive pas. La seul chose que j'ai réussi à récupérer c'est mon layout sans mon CSS (pourquoi?) et avec toute les manip que j'ai fait je ne sais comment et de toute façon cela ne règle pas mon problème. J'ai changer plusieurs fois les liens, slash, avec, sans, enlever mes variables, rien n'y fait, changer mon htaccess, changer scipt_name avec script_uri. Je ne trouve pas de solution et surtout je ne comprend pas pourquoi ça marche si bien en local et pas en ligne. Ma variable GET au début recupérer ma quéry string mais n'afficher pas la page, la elle ne récupere plus rien et m'affiche une page 404. Mes pages sont accessible avec views/accueil.phtml mais en local elle était bien accessible avec debarras/accueil. Si quelqu'un peut m'aider merci.
    Code local ou tout fonctionne :
    .htacces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # on detecte si le mode de réécritude d'url est installé
    <IfModule mod_rewrite.c>
        Options -MultiViews
     
        RewriteEngine On
     
        # on cherche à matcher une url qui commence par debarras/
        # si on la trouve on réécrit l'URL avec index.php?page=....
        RewriteRule ^debarras/reservation Class/Reservation.class.php [L]
        RewriteRule ^debarras/(.*) index.php?debarras=$1
     
    </IfModule>
    la première ligne étant pour un lien hor menu, celui ci fonctionne lol
    index.php
    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
    <?php
     
    // reconstitue l'url de la page d'accueil
        define('HOME', dirname($_SERVER['SCRIPT_NAME']) );
     
     
    /**
     * Gestion de la page à afficher :
     *   on récupère la query string avec 'page' pour trouver
     *   quelle page on souhaite afficher. Pour celà il faut
     *   faire plusieurs vérifications :
     **/
     
    if(array_key_exists('debarras', $_GET)){
        // si l'url contient bien la query string avec 'page'
        $template =  'views/'.$_GET['debarras'].".phtml";
        $currentPage = $_GET['debarras'];
     
        if(!is_file($template)) {
            // si le fichier n'existe pas on affiche le template 404
            $template = 'views/404.phtml';
            $currentPage = '404';
        }
     
    } else {
        // sinon on dirige vers la page d'accueil
        $template = "views/accueil.phtml";
        $currentPage = 'accueil';
    }
    // données qui permettent au menu de se générer automatiquement
    $menuItems = [
        'Accueil'      => ['title' => "Accueil", 'icon' => 'fa fa-home'  ],
        'A propos de nous'     => ['title' => 'A propos de nous', 'icon' => 'fa fa-arrow-circle-down' ],
        'FAQ'  => ['title' => 'Questions fréquentes', 'icon' => 'fa fa-question-circle' ],
        'Contactez-nous'   => ['title' => 'Contactez-nous', 'icon' => 'fa fa-envelope'  ],
    ];
     
    include "views/layout.phtml";
    layout.phtml
    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
    <!DOCTYPE html>
    <html lang="fr">
        <head>
            <title>Débarras maisons appartements à Marseille PARTICULIERS/PROS</title>
            <meta charset="utf-8"/>
            <meta name="description" content="Débarras Marseille et région PACA, devis gratuit 7j/7 prix le plus bas sur la région"/>
            <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
            <link href="https://fonts.googleapis.com/css?family=Bree+Serif" rel="stylesheet">
            <link href="https://fonts.googleapis.com/css?family=Days+One" rel="stylesheet"> 
            <link href="https://fonts.googleapis.com/css?family=Baloo" rel="stylesheet"> 
            <link href="https://fonts.googleapis.com/css?family=Baloo" rel="stylesheet"> 
            <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
            <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
             <link rel="stylesheet" href="css/flexslider.css" type="text/css">
            <link rel="stylesheet" href="<?= HOME ?>/views/css/normalize.css">
            <link rel="stylesheet" href="<?= HOME ?>/views/css/style.css">
        </head>
        <body>
            <header>
                <div>
                    <a href="<?= HOME ?>"><img src="<?= HOME ?>/views/img/logosdcopie.png"></a><!--
                --> <nav>
                        <!-- on boucle sur toutes les pages -->
                        <?php foreach ($menuItems as $page_name => $item): ?>
                            <!-- si la page en cours est celle qu'on scan dans le foreach -->
                            <?php $current = ($currentPage == $page_name) ? ' current ' : '' ?>
                            <!-- génération du lien -->
                            <a
                                    class="<?= $current ?>"
                                    href="<?= HOME ?>/debarras/<?= str_replace(' ', '-', $page_name)?>"
                                    title="<?= $item['title'] ?>">
                                <i class="<?= $item['icon'] ?>" aria-hidden="true"></i>
                                <?= $page_name ?>
                            </a><!--
        -->
                        <?php endforeach; ?>
                    </nav>
                </div>
            </header>
                <?php include $template ?>
            <section class="rassurance">
                     <nav>
                        <a href="#">
                            <i class="fa fa-lock" aria-hidden="true"></i>
                            Respect de la vie privée et discrétion assurée
                        </a>
                        <a href="#">
                            <i class="fa fa-truck" aria-hidden="true"></i>
                            Service rapide et efficace
                        </a>
                        <a href="#">
                            <i class="fa fa-info-circle" aria-hidden="true"></i>
                            7j/7</br>de 8h à 20h
                        </a>
                        <a href="tel:+330689206390">
                            <i class="fa fa-phone" aria-hidden="true"></i>
                            06 89 20 63 90
                        </a>
                        <a href="#" class="order">
                            <i class="fa fa-check-circle" aria-hidden="true"></i>
                            Garantie de qualité
                        </a>
                    </nav>
              </section>
            <footer>
            </footer>
        </body>
    </html>
    l'adresse du site pour les curieux : www.lespecialistedudebarras.fr mais il n'y a pas plus d'informations qu'il n'y en a la

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    tu es sûr que les fichiers existent bien sur le serveur en ligne?

    a-tu vérifié les majuscules et minuscules dans tes liens? par ce-que localement sous (wamp, xamp..), <a href="Test" /> et <a href="test" /> c'est la même chose, par contre sur le serveur en ligne non.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    Merci Toufik t'es le seul qui me répond a chaque fois. Alors oui j'ai changer dans mon tableau de page les majuscule en minuscule, quand je clique sur mon lien j'obtiens un "Forbidden You don't have permission to access /accueil on this server." pourtant permission 755 et récurssion sur tout les sous-dossier, quand et mon url mon nom dedomaine disparait au clique sur un lien dumenu donc on passe carrément de www.lespecialistedudebarras.fr à debarras/accueil ou debarras/faq. J'ai essayer de rajouter le nom de domaine dans la réécriture d'url dans le htaccess ça fait une errer interne serveur ou erreur 500

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    pour mieux t'aider, compresse le projet tel qu'il est, et envois le ici.

    lorsqu'on est sur le site, si on inspecte l’élément "Accueil", on trouve ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <a class=" current " href="//debarras/accueil" title="Accueil">
      <i class="fa fa-home" aria-hidden="true"></i>
      accueil
    </a>
    1-le href est donc faux avec les deux slash //, si le dossier deberras se trouve directement dans l'arborescence de ton projet, il faut mettre href="debarras/accueil", la même chose pour les autres liens.

    2-le dossier doit être public à tout le monde, c'est à dire n'importe quel utilisateur qui entre dans le site, doit avoir accès a ce dossier(soit pour la lecture ou écriture ou modifications...), clique droit sur le dossier->propriété->sécurité, puis clique sur modifier puis tu autorise toute les actions pour ce dossier, et n'oublis pas de ré-héberger le dossier sur le serveur pour remplacer l'ancien.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    En fait je pense savoir d'ou viens le deuxième slash Quand j'envoie mon dossier sur le serveur il est dans le dossier /. Je pensais qu'il fallais utiliser une variable serveur à la place de script name ce qui empêcherais que je perde le nom de domaine au clic sur le lien bon ? J'autorise l'exécution et la lecture partout, et laisse la modification qu'à Moi.Mais si j'autorise la modification partout je risque pas d'avoir des problemes ? Je vais mettre mon dossier

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    Ok, laisse la modification uniquement pour toi pour l'instant...
    j'ai essayé d'écrire directement www.lespecialistedudebarras.fr/debarras/accueil et www.lespecialistedudebarras.fr/accueil dans la barre d'adresse du navigateur mais le serveur n'arrive pas a trouver les deux liens, ce qui veux dire que ni le dossier "debarras" ni "accueil" existent sur le serveur !

  7. #7
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    La j'ai les bons liens : http://lespecialistedudebarras.fr/debarras/accueil,mais il ne récupère toujours pas mes pages la réécriture ne s'active pas elles sont toujours accéssible a views/ je ne comprend pas pourquoi en local ça marcher niquel
    Mon dossier sur le site distant du serveur : / debarras

  8. #8
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    apparemment tu confonds les dossiers, par-ce-que si tu cliques directement sur cette adresse http://www.lespecialistedudebarras.f.../accueil.phtml, la page accueil.phtml s'affiche sans css, cela dit qu'elle est DANS le dossier views et pas debarras.

  9. #9
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    Mais j'ai pas de dossier débarras, debarras fait parti de la réécriture d'url, ce qui veux dire qu'en fait "views/accueilphtml" doit être "debarras/accueil" donc le lien est bon puisque la réécriture marche, mais la récuperation de page avec la variable $_GET ne marche pas

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    alors c'est la réécriture qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        RewriteRule ^debarras/(.*) index.php?debarras=$1
    Essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^debarras/(.*)$		index.php?debarras=$1 [L,QSA]

  11. #11
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    Non toujours pas et je comprend toujours pas pourquoi ça marche pas

  12. #12
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    quand tu fais un
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php var_dump($_GET) ?>
    dans la page accueil.phtml, ça donne quoi?

  13. #13
    Invité
    Invité(e)
    Par défaut
    Montre-nous comment tu récupères la variable dans index.php.

  14. #14
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    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
    if(array_key_exists('debarras', $_GET)){
        // si l'url contient bien la query string avec 'debarras'
        $template =  'views/'.$_GET['debarras'].".phtml";
        $currentPage = $_GET['debarras'];
     
        if(!is_file($template)){
            // si le fichier n'existe pas on affiche le template 404
            $template = 'views/404.phtml';
            $currentPage = '404';
        }
    } else {
        // sinon on dirige vers la page d'accueil
        $template = "views/accueil.phtml";
        $currentPage = 'accueil';
    }
    Quand je fait un var_dump de $_GET j'ai un array 0 mais c'est parce que je suis sur mon index, et vue que j'ai un 404 not found sur les autres pages, je peut même pas voir si il récupère les query string mais je pense même pas et je comprend pas ce changement de serveur à local

  15. #15
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    et mes liens sont afficher comme ça dans le layout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                    <?php foreach ($menuItems as $page_name => $item): ?>
                            <!-- si la page en cours est celle qu'on scan dans le foreach -->
                            <?php $current = ($currentPage == $page_name) ? ' current ' : '' ?>
                            <!-- génération du lien -->
                            <a
                                    class="<?= $current ?>"
                                    href="<?= HOME ?>debarras/<?= str_replace(' ', '-', $page_name)?>"
                                    title="<?= $item['title'] ?>">
                                <i class="<?= $item['icon'] ?>" aria-hidden="true"></i>
                                <?= $page_name ?>
                            </a><!--
        -->
                        <?php endforeach; ?>
    menuItem étant le tableau de mes pages dans index.php ou il n'y a aucune majuscule/Minuscule qui diffère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $menuItems = [
        'accueil'      => ['title' => "Accueil", 'icon' => 'fa fa-home'  ],
        'a propos de nous'     => ['title' => 'A propos de nous', 'icon' => 'fa fa-arrow-circle-down' ],
        'faq'  => ['title' => 'Questions fréquentes', 'icon' => 'fa fa-question-circle' ],
        'contactez-nous'   => ['title' => 'Contactez-nous', 'icon' => 'fa fa-envelope'  ],
    ];

  16. #16
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    Apparemment le problème est courant chez 1&1 et les réécriture d'url j'ai résolu le problème en rajoutant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Options +FollowSymlinks  RewriteBase /
    et j'ai garder ce qui tu ma dit de faire [QSA,L] en fait il désactive volontairement, merci beaucoup pour votre patience. J'ai pas encore vérifier le lien or menu mais je pense pouvoir m'en sortir ? Du moins je l'espère

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Site d'actualité : Statique HTML ou dynamique PHP ?
    Par Sanceray3 dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 02/06/2009, 21h42
  2. Site Dynamique php
    Par piero53 dans le forum Débuter
    Réponses: 8
    Dernier message: 14/05/2009, 21h34
  3. [WB12] Déployer un site dynamique php/myqsl
    Par fox1976 dans le forum WebDev
    Réponses: 1
    Dernier message: 12/07/2008, 11h05
  4. Réponses: 3
    Dernier message: 16/04/2008, 19h36

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