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 :

déplacement de document


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 31
    Par défaut déplacement de document
    bonjour !
    [j'ai honte, je crois que je viens tout les jours demander de l'aide... xD]

    J'ai un gros problème qui me soule depuis à peut près trois jours..

    Voilà avec l'aide de quelques tutoriaux et de vous (chères personnes qui m'ont aidé sur le forum), un script permettant de copier un document (jusque là tout va bien c'est normal).

    Mon but en fait, c'est de réaliser une partie administration. Donc en uploadant un fichier, en indiquant son nom et son niveau (parce que les documents seront accessibles selon des niveaux), un script copie le document dans le dossier du niveau correspondant (/niveau1 par exemple).

    Maintenant arrive les problèmes : il est possible de modifier chaque document que l'ont a uploader (en changeant le nom, le fichier (si la personne s'est trompé) ou meme le niveau). Et c'est pour le niveau que j'ai un soucis. Car lorsque la personne change le niveau sans uploader le fichier, j'ai besoin de copier ce fichier (ou de le déplacer) vers le dossier niveau qui correspond.
    Or je n'y arrive absolument pas.

    Wamp ne m'indique aucune erreur dans mon script mais cela ne marche pas.
    Je vous donne mon script, si vous pourriez m'aider. Ou si vous avez une idée plus pratique pour gérer les droits je suis partante aussi.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    else if($res['niveau'] != $_POST['niveau']) {
    		$nom_document=$_POST['nom_document'];
    		copy('reserve/"'.$res['niveau'].'"/"'.$nom_document.'"','reserve/"'.$_POST['niveau'].'"/"'.$nom_document.'"');
    		$doc = new acces_reserve($_POST['id'],$_POST['nom'],$_POST['nom_document'],$_POST['niveau']);
    		updateacces_reserve($doc);
    }

    requete pour obtenir $res['niveau']

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	connexion_bd();
    	$req = mysql_query("SELECT * FROM acces_reserve WHERE id='".$id."'");	
    	$res=mysql_fetch_array($req);
    Voilà merci beaucoup

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Les chaines des 2 chemins de copies ne sont pas bons, il y a des doubles quote de trop.
    Ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    copy('reserve/"'.$res['niveau'].'"/"'.$nom_document.'"',
         'reserve/"'.$_POST['niveau'].'"/"'.$nom_document.'"');
    Revient à : reserve/"niveau"/"nom_document"
    Alors qu'il faut : reserve/niveau/nom_document

    Corrige comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    copy('reserve/'.$res['niveau'].'/'.$nom_document, 'reserve/'.$_POST['niveau'].'/'.$nom_document);
    Petite parenthèse, et pour info :
    copy() effectue une copie du document, donc il sera dupliqué.
    rename() déplace le fichier, ou le renomme. Ici le document n'est pas dupliqué.
    Il faut choisir la bonne fonction selon le cas

  3. #3
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 31
    Par défaut
    En changeant ça ne marche toujours pas :S

  4. #4
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 31
    Par défaut
    oups excusez moi de ma malpolitesse soudaine , je vous remercie tout de meme ^^

    et pour rename et copy j'ai saisit la différence, mais bon j'ai essayé avec les deux ça ne marchait pas donc j'ai laissé copy mais c'est vrai que normalement c'est rename que je dois utiliser.

    En fait je suis bete

  5. #5
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    En changeant ça ne marche toujours pas
    Les "ça ne marche pas" ne veut pas dire grand chose.

    Fait des echos pour voir ce que contient tes variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    echo 'reserve/'.$res['niveau'].'/'.$nom_document.'<br />';
    echo 'reserve/'.$_POST['niveau'].'/'.$nom_document.'<br />';
    $copy = copie( ... etc ...); // Retourne true ou false
    echo 'retour copie : '.$copy.'<br />';
    Est ce que tout est normal, pas d'erreur ?

    Aussi, il faut voir si le chemin est correcte ou pas, et ça dépend d'où le script est exécuté.
    Donc question : A quel niveau est exécutée la page Web par rapport à ce répertoire "reserve" ?

  6. #6
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 31
    Par défaut
    alors j'ai testé, le soucis c'est que ça ne m'affiche rien.

    (pourtant j'ai bien testé que ça rentrait dans la boucle)

    Voici l'arborescence (un peu compliquée, je le concède).

    Alors j'ai un répertoire admin

    dans admin il y a deux répertoires gestion et perform.

    dans gestion :

    il y a mon formulaire qui envoie les réponses à un fichier perform_acces dans le répertoire perform/copie_reserve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="formulaire" enctype="multipart/form-data" action="../perform/copie_reserve/perform_acces_reserve.php" method="post" name="formulaire" >
    dans ce fichier perform_acces, je teste d'abord si c'est un ajout, une modification ou une supression (dans mon cas une modification).

    dans les test de modifications :

    premier test : un fichier a été uploader donc je l'ajoute.

    Second test : le niveau posté est différent de celui de la base de donnée (le notre donc ) :
    je copie le fichier et je le met dans le répertoire reserve/$post niveau .

    troisieme test : le reste.


    Voilà en gros, j'espère avoir été claire :S

  7. #7
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 31
    Par défaut
    bon ben c'est officiel je suis cruche !

    toutes mes excuses pour le dérangement, en fait c'était ma requete qui était fausse :S

    je suis vraiment désolée désolée !

    enfin ça n'aurait pas marché sans votre aide, vu que le chemin était faux.

    Merci beaucoup

    Ps : j'ai une petite question, connaissez vous un tutoriel bien qui permet de mettre un site en ligne (sachant que le site a une base de donnée) ?
    Parce que j'en ai trouvé plein, mais il y a tellement de choses différentes que je ne sais pas quoi choisir.

    Merci en tout cas.

Discussions similaires

  1. Déplacement rapport entre document
    Par Thiago_Cruden dans le forum Webi
    Réponses: 2
    Dernier message: 06/07/2012, 14h09
  2. Déplacement de Mes Document. Outlook perturbé
    Par mic352 dans le forum Windows 7
    Réponses: 4
    Dernier message: 02/02/2012, 15h30
  3. Déplacement Mes Documents
    Par Petit scarabé dans le forum Windows 7
    Réponses: 1
    Dernier message: 08/11/2009, 15h32
  4. Réponses: 9
    Dernier message: 18/09/2008, 10h45
  5. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28

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