Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/09/2007, 16h03   #1
Membre à l'essai
 
Inscription : mai 2004
Messages : 148
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 148
Points : 24
Points : 24
Par défaut Récupération du user name

bonjour,

J'ai un petit souci avec le nom de l'utilisateur.

En fait, j'utilise un script pour permettre à des utilisateurs de télécharger des fichiers. Je veux que chaque utilisateur puisse le telecharger sur sa propre machine (dans le repertoire Mes Documents par exemple).

Je recupere le nom du user avec shell_exec mais ca ne marche que si je l'execute moi sur le serveur. Lorsqu'ils cliquent, il leur indique mon repertoire perso. je sais pas ou ca coince.

Quelqu'un peut m'aider ?

Merci d'avance.
arezki76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 18h43   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par arezki76
En fait, j'utilise un script pour permettre à des utilisateurs de télécharger des fichiers. Je veux que chaque utilisateur puisse le telecharger sur sa propre machine (dans le repertoire Mes Documents par exemple).
C'est le client qui choisit, vous ne pourrez pas lui forcer la main.

Citation:
Envoyé par arezki76
Je recupere le nom du user avec shell_exec mais ca ne marche que si je l'execute moi sur le serveur. Lorsqu'ils cliquent, il leur indique mon repertoire perso. je sais pas ou ca coince.
A quel "nom" faites-vous allusion ? PHP est interprété côté serveur : vous n'aurez aucune information autres que celles du serveur ou que celles que le client aura bien voulu vous transmettre (tout ça se retrouve dans le tableau $_SERVER). La manière dont interagit PHP par rapport au serveur (module vs CGI) ou dont ces deux éléments sont configurés jouent aussi.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 16h36   #3
Membre à l'essai
 
Inscription : mai 2004
Messages : 148
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 148
Points : 24
Points : 24
Par défaut Récupération du user name

Bonjour,

merci pour la réponse.

Donc, comment faire pour permettre aux users de télécharger le fichier sur leur machine.

Ce fichier est récupéré d'un serveur UNIX, pour être télécharger sur leur machine.

Merci d'avance.
arezki76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 17h01   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Le plus simplement du monde sous la forme d'un lien : le document sera géré par le navigateur en fonction de son type (MIME) ou vous pouvez également forcer le téléchargement du document.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2007, 13h02   #5
Membre à l'essai
 
Inscription : mai 2004
Messages : 148
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 148
Points : 24
Points : 24
Par défaut Récupération du user name

Bonjour ,

Je crois qu'il vaut mieux que je donne la portion de code pour que vous puissiez me comprendre :

Code :
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
<?php
 echo '<html>'; 
 echo '<head>'; 
 echo '</head><body>'; 
 echo '<center>';
 echo '<table border="1" width="50%" bgcolor="#808080">';
  echo '<tr>';
   echo '<td>';
       echo '<p><h1 align="center">Download The File :</h1></p>';
   echo '</td>';
  echo '</tr>';
  echo '<tr>';
   echo '<td >';
       echo '<form method=POST action="file_transfer.php">'; 
       echo '<p align="center"><input type="submit" name="download" value=" Téléchargez le Fichier !!!"></p>'; 
       echo '<input type="hidden" name="down" value="yes">';
       echo '</form>';
   echo '</td>';
  echo '</tr>';
 echo '</table>';
 echo '</center>';
 
if (isset($_REQUEST['down']))
{
 if ($_REQUEST['down']=='yes')
 { 
 
  include "ftp_connect.php"; // paramètres de connexion au serveur UNIX
 
  // Récuperer le user qui veut télécharger le fichier
  $user = shell_exec("echo %username%");
 
 
  $remote_localisation ="/chemin absolu/";
  //$remote_file = $remote_localisation.$remote_file;
  $remote_file = $remote_localisation.'file.txt';
 
  // Chemin ou sera enregistrer les fichier téléchargé
  $local_destination="C:/Documents and Settings/".ltrim(rtrim($user))."/Mes documents/";
  $local_file = $local_destination.'file.txt';
 
  // Ouverture du fichier pour écriture
  $handle = fopen($local_file, 'w');
 
  // Mise en place d'une connexion basique
  $conn_id = ftp_connect($ftp_server);
 
  // Identification avec un nom d'utilisateur et un mot de passe
  $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
 
  // Tente de téléchargement le fichier $remote_file et de le sauvegarder dans $handle
  if (ftp_fget($conn_id, $handle, $remote_file, FTP_ASCII)) 
  {
   echo "<p align=center><strong>Bravo $user, le fichier est téléchargé dans ton répertoire 'Mes Documents'.\n</strong></p>";
  } 
  else 
  {
   echo "<p align=center><strong>Il y a un problème lors du téléchargement du fichier $remote_file dans $local_file. 
                                 Réessayez encore.\n</strong></p>";
  }
 
  // Fermeture de la connexion et du pointeur de fichier
  ftp_close($conn_id);
  fclose($handle);
 }
}
?>
J'aimerai que le $user soit celui de l'utilisateur qui utilise l'interface.

Merci d'avance.
arezki76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2007, 13h25   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Ici vous exécutez la commande sur le serveur donc vous récupérez l'utilisateur sous lequel tourne votre serveur. Pour avoir le "nom" du client il faut qu'il vous le transmette par un moyen ou un autre : une authentification (session, authentification HTTP basique, ...) et/ou via une variable de $_SERVER (c'est le cas pour une authentification HTTP sous certaines conditions).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2007, 13h35   #7
Membre à l'essai
 
Inscription : mai 2004
Messages : 148
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 148
Points : 24
Points : 24
Par défaut Récupération du user name

Comment faire alors ? dois-je utiliser la variable $_SERVER ? et comment ?

merci.
arezki76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2007, 15h53   #8
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
A la lecture de votre code j'ai plutôt l'impression que vous êtes dans le cas particulier où le serveur et le client sont sur la même machine (local). Est-ce bien le cas ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2007, 17h03   #9
Membre à l'essai
 
Inscription : mai 2004
Messages : 148
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 148
Points : 24
Points : 24
Par défaut Récupération du user name

Effectivement,

Comment faire avec les clients pour leur permettre d'enregistrer le fichier telecharger dans leur machine ?

Merci infiniment.
arezki76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2007, 17h20   #10
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par arezki76
Comment faire avec les clients pour leur permettre d'enregistrer le fichier telecharger dans leur machine ?
J'ai déjà répondu à cette question :
Citation:
Envoyé par julp Voir le message
Le plus simplement du monde sous la forme d'un lien : le document sera géré par le navigateur en fonction de son type (MIME) ou vous pouvez également forcer le téléchargement du document.
Pour l'authentification du client, c'est à vous de nous dire s'il y en a une et comment celle-ci est faite (vous pouvez toujours faire un affichage de $_SERVER et éventuellement $_ENV à l'aide de la fonction print_r pour voir ce qu'elles contiennent).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 13h37   #11
Membre à l'essai
 
Inscription : mai 2004
Messages : 148
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 148
Points : 24
Points : 24
Par défaut Récupération du user name

Bonjour,

Comment ajouter le lien dans mon code et faire correspondre le fichier ?

Une idée ?

Merci d'avance.
arezki76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h22.


 
 
 
 
Partenaires

Hébergement Web