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 :

url rewriting


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2007
    Messages : 130
    Par défaut url rewriting
    bonjour,
    voila j'ai un soucis lors de la création d'un répertoire via mkdir, je lui précise bien chmod777 et il me le place en 755.

    de plus lors de la création de ce répertoire je voudrais copier automatiquement le contenu d'un autre répertoire et je me retrouve avec une erreur sur chaque dossier de ce répertoire .

    Warning: copy(site/1.test/admin/style/images.gif) [function.copy]: failed to open stream: No such file or directory in /homepages/12/d384036354/htdocs/blogs/clients/espace_membre/page.php on line 70
    récurant sur tout les dossiers du répertoire blog.

    je ne suis pas sur mais je pense que mon soucis vient du fait que le répertoire créer n'est pas en 777 mais je ne suis pas sur, pourquoi se créait il en 755 au lieu de 777 ??

    de plus je crée une requête pour que le nom du répertoire soit créer en même temps dans le champ "blog" de la bdd mais il me dit que j'ai une erreur sur ma condition, je ne voit pas non plus
    merci

    code complet :

    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <?php
    session_start();
    require_once('config.php');
    require_once('verifications.php');
    $titre_page='le titre de la page';
    include_once('haut.php');
    include('index.php');
     
    ?>
    <?php
     
    require('config.php');
    $id=$_GET['id'];
    $blog=$_POST['blog'];
    // Insertion d'un enregistrement dans la table membres
     mysql_query ('INSERT INTO membres (blog) VALUES ("'.$blog.'") WHERE id='.$id'')or die (mysql_error);
     
    ?>
    <?php
     
    if(!empty($_POST['blog']))
     
    {
     
    	$nom = htmlspecialchars($_POST['blog']);// supprime les balises html
     
    	$nom = str_replace(' ', '_', $nom);// remplace les espaces
     
    	$accent = array("é", "è", "ê");// stock les accents des e
     
    	$nom = str_replace($accent, 'e', $nom);// les remplaces par un e normal
     
     
     
    	$dossier = 'site/'.$id.'.'.$nom.'/';// les dossiers 
     
    	if(mkdir($dossier, 0777))// crée le dossier pouvant être lus et écris par php
     
    	{
     
    		echo ' : L\'espace de stockage pour votre blog est bien crée';
     
    	}
     
    	else
     
    	{
     
    		echo 'problème lors de la création';
     
    	}
     
    }
     
    ?>
    <?php
    function CopyDir($origine, $destination) {
        $test = scandir($origine);
     
        $file = 0;
        $file_tot = 0;
     
        foreach($test as $val) {
            if($val!="." && $val!="..") {
                if(is_dir($origine."/".$val)) {
                    CopyDir($origine."/".$val, $destination."/".$val);
                    IsDir_or_CreateIt($destination."/".$val);
                } else {
                    $file_tot++;
                    if(copy($origine."/".$val, $destination."/".$val)) {
                        $file++;
                    } else {
                        if(!file_exists($origine."/".$val)) {
                            echo $origine."/".$val;
                        };
                    };
                };
            };
        }
        return true;
    }
     
    // Utilisation
    $origine = "blog/";
    $destination = "site/".$id.".".$nom."/";
    if(CopyDir($origine, $destination)) { 
        echo "Le dossier ".$origine." a ete copie avec succes vers ".$destination; 
    }; 
    ?>
    <?php
    include_once('bas.php');
    ?>
    <? mysql_close; ?>

  2. #2
    Membre expérimenté Avatar de firehist
    Homme Profil pro
    Intégrateur Web Freelance
    Inscrit en
    Février 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 151
    Par défaut
    Bonjour,

    Pour ta requête, il y a une petite erreur de concaténation (id='.$id''):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    mysql_query ('INSERT INTO membres (blog) VALUES ("'.$blog.'") WHERE id='.$id) or die (mysql_error);
    Et pour le reste, cela me copie bien le dossier complet sans aucun problème. J'ai enlevé le chmod du mkdir(). L'erreur me semble plus que le fichier d'origine serait manquant non ? Soit ton "$origine."/".$val" à la ligne 70?

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2007
    Messages : 130
    Par défaut
    bonjour, merci pour cette réponse mais je me suis eu peut creusé la tete cette nuit et donc je suis arrivé a mes fins.

    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    <?php
     
    require('config.php');
    $id=$_GET['id'];
    $blog=$_POST['blog'];
    // Insertion d'un enregistrement dans la table membres
    mysql_query ('UPDATE membres SET blog= "'.$blog.'" WHERE id='.$id.'')or die (mysql_error);
     
    ?>
    <?php
     
    if(!empty($_POST['blog']))
     
    {
     
    	$nom = htmlspecialchars($_POST['blog']);// supprime les balises html
     
    	$nom = str_replace(' ', '_', $nom);// remplace les espaces
     
    	$accent = array("é", "è", "ê");// stock les accents des e
     
    	$nom = str_replace($accent, 'e', $nom);// les remplaces par un e normal
     
     
     
    	$dossier = 'site/'.$id.'.'.$nom.'/';// les dossiers 
     
    	if(mkdir($dossier, 0777, true))// crée le dossier pouvant être lus et écris par php
     
    	{
     
    		echo ' : L\'espace de stockage pour votre blog "'.$nom.'" est bien crée <br/><br/>';
    		echo 'Vous pouvez commencer a administrer votre blog a cette adresse : <a href="http://blogs.rottax.net/'.$id.'.'.$nom.'/">http://blogs.rottax.net/'.$id.'.'.$nom.'/</a><br/><br/>';
    		echo 'Acceder a votre espace membre <a href="profil.php">Clicquez ici</a>';
     
     
    	}
     
    	else
     
    	{
     
    		echo 'problème lors de la création';
     
    	}
     
    }
     
    ?>
    <?php
     
    function copy_dir ($dir2copy,$dir_paste)
    {
    // On vérifie si $dir2copy est un dossier
    if (is_dir($dir2copy))
    {
     
    // Si oui, on l'ouvre
    if ($dh = opendir($dir2copy))
    {
     
    // On liste les dossiers et fichiers de $dir2copy
    while (($file = readdir($dh)) !== false)
    {
    // Si le dossier dans lequel on veut coller n'existe pas, on le créé
    if (!is_dir($dir_paste)) mkdir ($dir_paste, 0777);
     
    // S'il s'agit d'un dossier, on relance la fonction récursive
    if(is_dir($dir2copy.$file) && $file != '..' && $file != '.') copy_dir ( $dir2copy.$file.'/' , $dir_paste.$file.'/' );
     
    // S'il sagit d'un fichier, on le copue simplement
    elseif($file != '..' && $file != '.') copy ( $dir2copy.$file , $dir_paste.$file );
    }
     
    // On ferme $dir2copy
    closedir($dh);
    }
    }
    }
     
    $dir2copy = 'site/blog/';
    $dir_paste = 'site/'.$id.'.'.$nom.'/';
     
    // Copie le dossier $dir2copy dans le dossir $dir_paste, inutile de créé les dossiers
    copy_dir ($dir2copy,$dir_paste);
     
    ?>
    <?php
    include_once('bas.php');
    ?>
    <? mysql_close; ?>
    maintenant j'aimerais pouvoir créer des sous domaine a la volé.

    quand le membre crée son compte ca lui crée donc sont répertoire avec le blog a l’intérieur, j'ai déjà crée un sous domaine afin de pointer sur le répertoire "site" de manière a limité la taille de l'url ce qui me donne actuellement.

    http://blog.mon-domaine.net/id-membre.nom-du-blog/

    j'aimerais si cela est possible car j'ai pas mal vu qu'il fallais un dedié pour le faire mais hier j'ai vu une info ou il disait le contraire car j'aimerai que cela se traduise par :

    http://nom-du-blog.mon-domaine.net et que cela pointe donc sur http://blog.mon-domaine.net/id-membre.nom-du-blog/

    j'ai donc récupérer ce lien : http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

    mais la je nage dans la soupe car je ne voit pas comment faire, je n'est aucune connaissance dans l'url rewriting.

    pourriez vous m'aider svp.

    merci

Discussions similaires

  1. [Débutant]infos ds session sans cookie ? url rewriting ?
    Par Satanas_et_diabolo dans le forum ASP
    Réponses: 8
    Dernier message: 10/10/2006, 18h13
  2. url rewriting
    Par olive.m dans le forum Apache
    Réponses: 3
    Dernier message: 17/06/2005, 03h01
  3. .htaccess - url rewriting, besoin de conseils
    Par giminik dans le forum Apache
    Réponses: 2
    Dernier message: 25/04/2005, 21h18
  4. Activer l'url rewriting
    Par Otaugames dans le forum Apache
    Réponses: 2
    Dernier message: 09/03/2005, 15h58
  5. Url Rewriting / htaccess
    Par bisi dans le forum Apache
    Réponses: 4
    Dernier message: 25/07/2004, 23h12

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