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

PHP & Base de données Discussion :

Probleme de / avec mkdir


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    437
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 437
    Points : 184
    Points
    184
    Par défaut Probleme de / avec mkdir
    Bonjour
    je vous ecris car j'ai un petit souci.

    j'ai creer un script ou je doit choisir un nom pour creer un dossier
    la création du dossier se fait niquel sauf si je veux creer un nom de dossier de type "Mariage du 28/12/2015"

    la ca me creer le dossier Mariage du 28
    puis un sous dossier 12
    puis un sous sous dossier 2015

    comment je peux faire pourque ça reste sur un seul nom complet

    voila le code source

    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
    <?
    session_start();
    include("mysqlcon.php");
     
    $action = $_GET["action"];
     
    $nom_album = $_POST["album"];
    $id_album = $_POST["cat"];
    if($action == create){
     
        // Structure de répertoire désirée
        $structure = "album/$nom_album";
     
        // Pour créer une stucture imbriquée, le paramètre $recursive 
        // doit être spécifié.
     
        if (!mkdir($structure, 0777, true)) {
    echo("<font color='red'>ERREUR</font>");
        } else {
    echo("<font color='green'>Album correctement créer</font>");
    $req = mysql_query("INSERT INTO album(id, nom_album, categorie) VALUES('', '$nom_album', '$id_album')");
     
    }
     
    }
     
    ?><h2> Créer un nouvel album</h2>
     
    <form action="?page=create_album&action=create" method="POST">
     
    Nom de l'album : <input type="text" name="album"><p>
    Catégorie : <select name="cat">
    <?
    $req_c = mysql_query("Select * from categorie_album");
    while($req_ct = mysql_fetch_array($req_c)) {
     
    $nom_ct = $req_ct["nom_cat"];
    $id_ct = $req_ct["id"];
     
    ?>
    <option value="<? echo $id_ct; ?>"><? echo utf8_encode($nom_ct); ?></option>
    <? } ?>
    </select>
     
     
     
    <input type="submit" name="submit" value="Créer un album">
    </form>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    "/" n'est pas autorisé dans les noms de fichier ou dossier dans la plupart des systèmes de fichier.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    437
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 437
    Points : 184
    Points
    184
    Par défaut
    et je peux faire comment du coup pour que je puisse quand même creer un dossier avec une date en nom de dossier ?

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 446
    Points : 43 088
    Points
    43 088
    Par défaut
    remplace tout simplement les "/" par des "-"
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Au passage, les espaces ne sont pas recommandés ou il me semble qu'on doit les échapper. Je dis il me semble parce que pour des problèmes d'environnement, par exemple si ces fichiers devaient être appelés par des url (ce qui est très courant dans le web par exemple quand on affiche une image...), il pourrait y avoir de très mauvaises surprises. Sans compter les logiciels ftp ou logiciels/traitements tiers qui pourraient eux aussi avoir leurs propres limitations.

    Pour dire que je suis toujours de l'ancienne école à ce niveau là et donc je n'autorise que les caractères alphanumériques, et les ".","-", "_". Au passage je remplace tous les caractères accentués par leurs équivalents non accentués et je supprime tous les autres. Cela paraît lourd mais bon c'est juste l'histoire d'une petite fonction et cela assure une quiétude sereine. Par ailleurs tout reste très lisible même sans accents, en prenant soin de remplacer les espaces par des '_' ou '-'.

    Il est possible que les choses se soient arrangées avec le temps mais comme je ne suis pas encore certain aujourd'hui que tout soit parfait partout en termes de compatibilité - c'est difficile à vérifier pour tous les navigateurs et il est également parfois difficile de prévoir longtemps à l'avance tous les contextes d'utilisations possibles - je préfère garder cette méthode qui a fait ses preuves pour pouvoir dormir tranquille .

    Parce que si un jour on s'aperçoit qu'il faut renommer les fichiers et donc aussi penser à tous les liens dans lesquels ils sont employés, éventuellement en dur dans le code... ou enregistrés dans la bdd... sans oublier les liens externes déjà enregistrés sur d'autres sites... ou référencements google, etc., je t'en raconte pas plus mais tu comprendras qu'il faut surtout éviter que ce jour arrive

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    437
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 437
    Points : 184
    Points
    184
    Par défaut
    J'ai fait un replace sur les / merci de votre aide

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