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

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 31
    Points : 12
    Points
    12
    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
    Points : 3 947
    Points
    3 947
    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 à l'essai
    Inscrit en
    Mars 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 31
    Points : 12
    Points
    12
    Par défaut
    En changeant ça ne marche toujours pas :S

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 31
    Points : 12
    Points
    12
    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
    Points : 3 947
    Points
    3 947
    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 à l'essai
    Inscrit en
    Mars 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 31
    Points : 12
    Points
    12
    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 à l'essai
    Inscrit en
    Mars 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 31
    Points : 12
    Points
    12
    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.

  8. #8
    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
    Points : 3 947
    Points
    3 947
    Par défaut
    En 1er, faut arrêter de s'auto déclarer comme "blonde" comme ça, on va finir par y croire


    Pour ta dernière question, je n'en connais pas, ou du moins je ne sais plus, ça fait trop longtemps, quoi.


    Sinon, la mise en ligne proprement dit, tient sur un bon client FTP (pour ma part c'est FireFtp intégré à FireFox).
    Suffit de renseigner 3 bricoles : serveur FTP, login, pass, et hop, on publie tous ses fichiers.

    Si on souhaite intégrer les données de sa Bdd, suffit de l'exporter (fichier .sql), et l'importer dans la Bdd de l'hébergeur.

    Après se pose tout de même pleins de questions.
    Les droits des fichiers et des répertoires.
    Les .htaccess (voir aussi .htpasswd) et les bonnes directives
    Ajuster les config du php.ini (ou .htaccess)
    Le ou les DNS à configurer.
    etc ...

    En somme, je ne suis pas certain qu'il existe un tuto regroupant tous les problème liés à la bonne mise en place de son site sur un hébergeur.
    Il y aura des point qui ne seront pas abordés. Du coup, le tuto le plus simple n'est pas forcément le meilleur.
    Les problèmes qu'on peu rencontrer sont extrêmement divers.
    Il vaut mieux à mon sens faire des recherche (sur Google) sur chaque problème qu'on rencontre, ou qu'on ne comprend pas.

    C'est comme ça que je fais en tout cas.

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 31
    Points : 12
    Points
    12
    Par défaut
    oki merci beaucoup, je vais me débrouiller avec ça

    à bientot !

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