Lu les copains !

Voila j'aurais une question en HTML / PHP.

Bon ok, c'est pas trop le forum pour ca, et ok je pense que je pourrais me demerder tout seul. MAIS comme je sais que vous etes gentil et super bon, je pense que vous allez me sortir la solution en moins de temps qu'il n'en faut pour dire "prout"

Voila aprés un serveur dédié perso, je me lance dans un serveur dédié pro. Ce que je souhaiterais faire c'est sur la page d'accueil, une section recherche sous la forme (il n'y aura que ca d'ailleur sur la page) :

<input type="seach" class="form-control" name="chemin" placeholder="  Entrer votre n° de dossier">

Et en php (enfin je crois car c'est ici que mes compétences s'arrêtent) je voudrais que si le n° de dossier existe (il y en aura 10 maximum) j'ouvre une url (bloqué avec apache2 qui demande un identifiant et mot de passe)

Ca me derange pas de modifier a chaque nouveau dossier des fichiers car je vous le redis il n'y en aura pas beaucoup.

Ah et derniere contrainte, je ne sohaite pas que la liste soit dans l'html car je ne veux pas qu'elle soit visible.

Voila, si c'est trop compliqué, ou vraiment pas le bon endroits pour poser cette question je supprimerai le sujet.

Merci

Tu peux détailler ton problème ? screenshot ou autre ?

"je voudrais que si le n° de dossier existe (il y en aura 10 maximum) j'ouvre une url (bloqué avec apache2 qui demande un identifiant et mot de passe)" ;

<?php 

if(!empty($_POST['chemin']) && in_array($_POST['chemin'], array('dossier1', 'dossier2', '...')) ) {
   // redirection
   header('Location: /repertoire/'.$_POST['chemin'].'.php');
}

?> 

    Dreamsanon Merci c'est parfait!

    Par contre va falloir m'expliquer un peu car c'est limite du chinois pour moi (je comprend pas tout)

    Et autre question, ce code je peux le mettre ailleur que dans ma page html (je ne veux pas qu'on trouve les n° de dossier et surtout les URL que en découlent (pour un peu de sécurité) et si oui, comme le lien ce fait

    Je termine ma journée de boulot dans quelques minutes je vais pas pouvoir te donner une explication clair assez rapidement, je te fais ça demain matin 😉

      Dreamsanon <?php

      if(!empty($POST['chemin']) && in_array($POST['chemin'], array('dossier1', 'dossier2', '...')) ) {
      // redirection
      header('Location: /repertoire/'.$_POST['chemin'].'.php');
      }

      ?>

      Bonsoir,

      Une explication rapide en attendant celle de Dreamsanon

      Si ( 
          (le champ "chemin" n'est pas vide) 
          ET 
          (le contenu du champ "chemin" est contenu dans le tableau : array('nom_de_dossier_avec_id', 'nom_de_dossier_avec_id_2'', 'etc..') 
      )
      
      ALORS
      le serveur redirige vers /repertoire/[valeur_du_champ_chemin].php

      / étant la racine, ça donne un truc du genre :
      https://tondomaine.fr/repertoire/192928.php

      ce que tu recherches (si j'ai bien lu ta demande), c'est plus ça :
      header('Location: /'.$_POST['chemin'].'/');

      Je ne sais pas si j'ai été clair ou si j'embrouille plus qu'autre chose.

        Aeryax
        Merci pour ces infos. C'est vrai que a froid, ca embrouille un peu, mais je vais y réfléchir demain

        Edit: aprés y avoir réfléchi oui c'est plus ca. Car je veux que chaque n° envoie vers une URL différente

        Edit2: j'ai la berlue oui ya bien 2 gars qui s'appellent Aerya et Aeryax .... vous vous connaissez?

        Salut, pour reprendre on va fais les choses dans l'ordre, tu m'as dis que si certaines conditions sont validées, tu rediriges l'utilisateur vers une URL, composé d'un htpsswd (demande de mot de passe pour accéder à la page).

        Est-ce que actuellement tu as déjà mis en place ces URL ?

          Dreamsanon
          Exat
          Pour le moment j'ai 1 seul URL. je pense rajouter les numeros de dossiers et les URL qui correspondent au fur et a mersure

          D'accord, donc tu va avoir ton fichier index.php, tout ce qui est en PHP à l'intérieur et invisible pour le visiteur, le visiteur peut uniquement voir le code HTML mais pas le PHP donc pas d'inquiétude la dessus.

          Donc index.php

          <?php
          // Si l'input 'chemin' n'est pas vide (donc il a été rempli et envoyé) ET que la valeur du champ 'chemin' est égale à une des valeurs du tableau, je redirige vers une URL
          
          if(!empty($POST['chemin']) && in_array($POST['chemin'], array('dossier1', 'dossier2', '...')) ) {
          // redirection
          header('Location: /repertoire/'.$_POST['chemin'].'.php');
          }
          ?>
          [...] Le reste de ton code HTML (celui que tu as déjà écris), attention, met bien le HTML après la balise de fermeture "?>" sinon erreur :p 

            Dreamsanon
            Merci, j'ai juste une remarque. Pour le moment j'ai un n°de dossier avec 1 URL

            Quant j'en aurais un 2eme, je peux répéter tout ton code ? Car l'argument 'chemin' ne rentre pas en ligne de compte pour l'url. ca donnera ca comme code :

             header('Location: /repertoire/.html');

            Ce que tu peux faire c'est ceci ;

            // $_POST['chemin'] représente ce que l'utilisateur a saisi dans le champ texte.
            switch ($_POST['chemin']) {
               // Si il a saisi dossier1, je le renvoi vers une URL ... et ainsi de suite pour dossier 2 etc ....
               case 'dossier1':
                   header('Location: /repertoire/monsuperchemin.html');
                   break;
              case 'dossier2';
                   header('Location: /repertoire/monautresuperchemin.html');
                   break;
              case 'dossier3';
                   header('Location: /repertoire/etencoreunautrechemin.html');
                   break;
            }
            [...]

              Dreamsanon Ah parfait merci, oui ca colle plus a ce que je recherche.
              Je teste ca de suite !

              edit : NIKEL !!! merci beaucoup pour ton aide, ca marche parfaitement! Je t'en dois une mon gars 😉

              C'est encore moi !

              Ca n'a rien a voir avec le sujet mais j'ai un peu honte d'ouvrir un nouveau sujet car je trouve que je m'éloigne un peu du forum.

              Vous savez si je peux modifier le texte du .htacces :

              j'ai pourtant mis la ligne

              AuthName "Accès protégé"

              Mais de 1 je la trouve pas dans ma fenetre, et de 2 j'aimerais bien virer la ligne : Votre connexion n'est pas privée

                Krameurmcbaret Sauf erreur de ma part, il s'agit d'un texte générique lié au navigateur. De souvenir le AuthName se retrouve seulement en cas d'erreur (en cliquant sur annuler).
                Concernant le message "Votre connexion n'est pas privée", j'imagine que tu n'es pas en https ?

                Le htaccess non tu ne peux pas vraiment le paramétrer, ça dépend du navigateur, c'est lui qui formate la fenêtre.
                Le seul truc que tu peux ajouter c'est un petit message avec ;

                AuthName "hehe mon super message !"

                Ok , merci.
                Non je suis pas en https, je sais que j'ai cette ligne a cause de ca. Mais comme c'est pas non plus des données hyper sensibles, et que c'est pour qu'un client s'en serve 3 fois par mois, je vais pas me prendre la tête

                  Krameurmcbaret J'ai vu que certains hébergeur commencent à inclure letsencrypt dans leur offre d'hébergement mutualisé (ce que je pense être ton cas, mais je me trompe peut-être ?). Letsencrypt est un service qui offre des certificats gratuits. Ainsi, si ton hébergeur propose ce service, il y a peut être moyen d'avoir un site en https en seulement 2 - 3 clics.