Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1106 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Gestion de téléchargements

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Gestion de téléchargements

n°242359
real_matho​s
Posté le 09-11-2002 à 19:16:43  profilanswer
 

Salut,  
Je voudrais savoir s'il existe un script de gestion de téléchargements qui permet de faire ça:
 
Je crée un fichier ou une base de donnée où j'inscris l'URL de tous les serveurs où se trouvent les fichiers que je propose en téléchargement sur mon site. Ensuite j'inscris les fichiers contenus dans chaque serveur. A partir de ça, au lieu de mettre l'URL directe vers le fichier que je veux télécharger, dans la page où je le propose en téléchargement, je donne juste le nom du fichier que je veux télécharger, et le script va directement chercher où se trouve ce fameux fichier dans la base de donnée. Il trouve dans quel serveur il se trouve, et lance le téléchargement.
 
Sinon, comment le faire?


Message édité par real_mathos le 09-11-2002 à 19:23:59
mood
Publicité
Posté le 09-11-2002 à 19:16:43  profilanswer
 

n°242375
Hermes le ​Messager
Breton Quiétiste
Posté le 09-11-2002 à 20:04:38  profilanswer
 

Laisses tomber, c'est impossible...  

n°242394
omega2
Posté le 09-11-2002 à 20:44:52  profilanswer
 

Hermes le Messager a écrit a écrit :

Laisses tomber, c'est impossible...  



C'est possible de le faire a condition que le serveur ou est installé php n'empêche pas les conections aux autres serveurs.

n°242398
real_matho​s
Posté le 09-11-2002 à 21:07:29  profilanswer
 

il a pas besoin de se connecter aux autres serveurs car il cherche le fichier dans la liste des serveurs. En effet, il y a un fichier qui contient la liste des serveurs avec leurs URL, et plusieurs autres fichiers contenant chacun la liste des fichiers d'un serveur. Lors de la recherche, le premier fichier renvoie aux listes de fichiers des serveurs pour que le script trouve le fichier.

n°242590
ethernal
Chercheur de vérité...
Posté le 10-11-2002 à 13:08:46  profilanswer
 

down.php : (appel down.php?file=test.txt)
//sqlquery
//sqlfetcharray
header($row[url]);
 
normalement ça devrait suffire


---------------
...oups kernel error...
n°242596
real_matho​s
Posté le 10-11-2002 à 13:20:44  profilanswer
 

Et comment ça fonctionne? (dsl je ne suis qu'un débutant en PHP)

n°242607
ethernal
Chercheur de vérité...
Posté le 10-11-2002 à 13:45:56  profilanswer
 

remarque :  
* 1 fichier n'est que sur 1 seul serveur
* l'url du serveur est terminée par un '/'
* l'url du serveur n'est pas masquée.
 
création d'une table (voir tutos)
une table serveur avec
id, url
une table fichier avec
id, server_id, nom
 
dans la première page tu listes les fichiers

Code :
  1. //connexion bd, voir tutos
  2. $query= "select nom from fichier";
  3. //exec de la query, voir tuto
  4. while ($row= mysql_fetch_array($result)){
  5.   echo '<a href="down.php?file='
  6.        . $row['nom']
  7.        . '">
  8.        . $row['nom']
  9.        . '</a><br>';
  10. }


 
page de download (down.php)

Code :
  1. $file= $HTTP_GET_VARS['file'];
  2. // connexion bd
  3. $query= "select url from serveur,fichier where nom='$file' and serveur.id=server_id";
  4. //exec query
  5. $row= mysql_fetch_array($result);
  6. if (count($row) == 1){
  7.   header($row[url].$file);
  8. }
  9. else{
  10.   echo 'fichier non trouvé';
  11. }


tu as la structure, à toi de consulter les tutos pour le code.
 
si tu veux un script tout fait, fais une recherche sur google, tu trouveras certainement ton bonheur.


---------------
...oups kernel error...
n°242618
real_matho​s
Posté le 10-11-2002 à 14:01:31  profilanswer
 

Merci bcp je v essayer!

n°242623
real_matho​s
Posté le 10-11-2002 à 14:11:51  profilanswer
 

mais je dois aller voir dans quels tutos?

n°242629
ethernal
Chercheur de vérité...
Posté le 10-11-2002 à 14:15:28  profilanswer
 

pour créer ta table je te conseille d'utiliser phpMyAdmin (programme de gestion de bd)
 
pour apprendre à utiliser mysql dans php, par exemple : http://www.toutestfacile.com/phpin [...] p&chap=bd0


---------------
...oups kernel error...
mood
Publicité
Posté le 10-11-2002 à 14:15:28  profilanswer
 

n°243571
real_matho​s
Posté le 12-11-2002 à 16:17:52  profilanswer
 

Salut,
qqn m'a conseillé d'utiliser une/des pages html comme base de données plutôt que MySQL car c'est plus rapide sous free. Est-ce que c'est vrai, et si oui, comment ça marche?
 
Merci d'avance!

n°243579
--greg--
Posté le 12-11-2002 à 16:33:40  profilanswer
 

:heink:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°243581
real_matho​s
Posté le 12-11-2002 à 16:35:18  profilanswer
 

:??:

n°243603
omega2
Posté le 12-11-2002 à 16:54:02  profilanswer
 

ReaL_MathoS a écrit a écrit :

Salut,
qqn m'a conseillé d'utiliser une/des pages html comme base de données plutôt que MySQL car c'est plus rapide sous free. Est-ce que c'est vrai, et si oui, comment ça marche?
 
Merci d'avance!



Ce gas là c'est foutus de ta gueule.
Par contre pour stocker une page toute faite, les serveurs sql de free est quasiment aussi lent qu'un simple include mais dans tout les autres cas, il faut rajouter le temps de recherche de la bonne information et ca te ralonge beaucoup.
Et puis pourquoi s'emmerder à ffaire compliqué quand on peut faire simple?

n°243605
real_matho​s
Posté le 12-11-2002 à 16:55:44  profilanswer
 

Oui mais je ne sais pas me servir de la base sql :cry:

n°243616
raph93
Posté le 12-11-2002 à 17:14:03  profilanswer
 

ReaL_MathoS a écrit a écrit :

Oui mais je ne sais pas me servir de la base sql :cry:  




 
a mon humble avis , commence par apprendre le HTML , ensuite un peu de PHP et SQL en parralelle , essaye de t'entrainer à creer des bases et des tables , fais des requetes a partir de tes pagesx WEB , ca sert à rien de commencer par la fin tu va t'embrouiller plus ke tu ne l'es deja  


---------------
Nothing can stop me, I'm never satisfied, I take what i want, refuse to be denied...
n°243638
real_matho​s
Posté le 12-11-2002 à 17:36:13  profilanswer
 

je connais le html


Message édité par real_mathos le 12-11-2002 à 17:37:58
n°243670
raph93
Posté le 12-11-2002 à 18:06:02  profilanswer
 

ReaL_MathoS a écrit a écrit :

je connais le html




 
ben alors attaque le Php et le Mysql , mais fais un peu de SQL avant histoire d'y comprendre kelke chose


---------------
Nothing can stop me, I'm never satisfied, I take what i want, refuse to be denied...
n°244137
real_matho​s
Posté le 13-11-2002 à 14:27:33  profilanswer
 

ethernal a écrit a écrit :

remarque :  
$query= "select url from serveur,fichier where nom='$file' and serveur.id=server_id";




ça veut dire quoi serveur.id=server_id? je dois mettre le nom du serveur? Mais dans ce cas il ne recherche pas auto où se trouve le fichier parmis les serveurs, si c'est à moi de préciser dans quel serveur se trouve le fichier.

n°244365
omega2
Posté le 13-11-2002 à 17:09:23  profilanswer
 

ReaL_MathoS a écrit a écrit :

 
ça veut dire quoi serveur.id=server_id? je dois mettre le nom du serveur? Mais dans ce cas il ne recherche pas auto où se trouve le fichier parmis les serveurs, si c'est à moi de préciser dans quel serveur se trouve le fichier.



Ben simplement, ta requête utilise deux table et pour pas voir revenir tout les couples possible des lignes d'une table avec les lignes de l'autre table, il faut que tu lui dises laquelle corespond à laquelle.
 
Dans la table serveur t'as un champ "id" qui est un identifiant et la valeur de ce champ à pour corespondance le champ "server_id" de l'autre table.
 
Ainsi le serveur sait quels sont les couples qu'il doit ramener.

n°244467
real_matho​s
Posté le 13-11-2002 à 18:32:30  profilanswer
 

omega2 a écrit a écrit :

Ben simplement, ta requête utilise deux table et pour pas voir revenir tout les couples possible des lignes d'une table avec les lignes de l'autre table, il faut que tu lui dises laquelle corespond à laquelle.
 
Dans la table serveur t'as un champ "id" qui est un identifiant et la valeur de ce champ à pour corespondance le champ "server_id" de l'autre table.
 
Ainsi le serveur sait quels sont les couples qu'il doit ramener.




Euh... g pas compris grand chose. Si qqn pouvait m'expliquer en détails comment fonctionne ce sript, ça serait cool

n°244482
omega2
Posté le 13-11-2002 à 18:41:24  profilanswer
 

ReaL_MathoS a écrit a écrit :

 
Euh... g pas compris grand chose. Si qqn pouvait m'expliquer en détails comment fonctionne ce sript, ça serait cool



C'est pas un script, c'est une requête sql que tu comprends pas.
 
T'as deux tables :
 
serveur et fichier
 
serveur contient :
id nom_serveur (nom des colones)
1 www.toto.com
2 www.titi.fr.st
 
fichier contient :
id id_serveur url (nom des colones)
1   1         fichier1
2   1         fichier2
3   2         fichier3
4   1         ficheir4
 
Si tu mets pas ton id=server_id t'auras comme résultat :
www.toto.com   fichier1
www.titi.fr.st fichier1
www.toto.com   fichier2
www.titi.fr.st fichier2
www.toto.com   fichier3
www.titi.fr.st fichier3
www.toto.com   fichier4
www.titi.fr.st fichier4
 
Si tu mets pas ton id=server_id t'auras comme résultat :
www.toto.com   fichier1
www.toto.com   fichier2
www.titi.fr.st fichier3
www.toto.com   fichier4
 
 
Si avec ça, tu comprends toujorus pas alros il va faloir que t'ailles consulté une doc sur l'SQL par ce que là, je vois pas ce que je peux te donner comme autre explication.

n°244489
real_matho​s
Posté le 13-11-2002 à 18:43:10  profilanswer
 

Merci j'ai compris!!!!  [:real_mathos]

n°244505
real_matho​s
Posté le 13-11-2002 à 19:07:01  profilanswer
 

Mais je vois pas comment éxécuter la query :(

n°244549
omega2
Posté le 13-11-2002 à 20:04:19  profilanswer
 

C'est pas mysql_db_query($db,$sql); qu'il te manque comme commande?
 
Bon, voilà une fonction que j'utilise moi :
 
function send_sql($db, $sql) {
   if (! $res=mysql_db_query($db, $sql)) {
   echo mysql_error();
   exit;
   }
   return $res;
 }
 
Elle a l'avantage d'affiché un message d'erreur en cas de problème sans arrêter l'éxécution du programme.

n°244553
real_matho​s
Posté le 13-11-2002 à 20:29:33  profilanswer
 

ethernal a écrit a écrit :

remarque :  
* 1 fichier n'est que sur 1 seul serveur
* l'url du serveur est terminée par un '/'
* l'url du serveur n'est pas masquée.
 
création d'une table (voir tutos)
une table serveur avec
id, url
une table fichier avec
id, server_id, nom
 
dans la première page tu listes les fichiers

Code :
  1. //connexion bd, voir tutos
  2. $query= "select nom from fichier";
  3. //exec de la query, voir tuto
  4. while ($row= mysql_fetch_array($result)){
  5.   echo '<a href="down.php?file='
  6.        . $row['nom']
  7.        . '">
  8.        . $row['nom']
  9.        . '</a><br>';
  10. }


 
page de download (down.php)

Code :
  1. $file= $HTTP_GET_VARS['file'];
  2. // connexion bd
  3. $query= "select url from serveur,fichier where nom='$file' and serveur.id=server_id";
  4. //exec query
  5. $row= mysql_fetch_array($result);
  6. if (count($row) == 1){
  7.   header($row[url].$file);
  8. }
  9. else{
  10.   echo 'fichier non trouvé';
  11. }


tu as la structure, à toi de consulter les tutos pour le code.
 
si tu veux un script tout fait, fais une recherche sur google, tu trouveras certainement ton bonheur.




Apparament il y a une erreur ici:

Code :
  1. while ($row= mysql_fetch_array($result)){
  2.   echo '<a href="down.php?file='
  3.        . $row['nom']
  4.        . '">
  5.        . $row['nom']
  6.        . '</a><br>';
  7. }


Il m'affiche des erreurs à cet endroit là, et quand je met le "?>"  de fin du code PHP, il ne le prend pas en compte comme tel mais comme une continuation du code (dans PHPEdit). Comment ça se fait?


Message édité par real_mathos le 13-11-2002 à 20:32:56
n°244563
omega2
Posté le 13-11-2002 à 20:42:07  profilanswer
 

T'as oublié un ' pour fermer la chaine de caractère.
L'erreur ce trouve entre les deux lignes
"       . $row['nom'] "

n°244566
real_matho​s
Posté le 13-11-2002 à 20:46:31  profilanswer
 

omega2 a écrit a écrit :

T'as oublié un ' pour fermer la chaine de caractère.
L'erreur ce trouve entre les deux lignes
"       . $row['nom'] "




Donc je dois mettre ça non?

Code :
  1. while ($row= mysql_fetch_array($result)){
  2. echo '<a href="down.php?file=' 
  3.       . $row['nom']
  4.       . '">'
  5.       . $row['nom']
  6.       . '</a><br>';
  7. }


Message édité par real_mathos le 13-11-2002 à 20:47:14
n°244570
real_matho​s
Posté le 13-11-2002 à 20:52:25  profilanswer
 

ça a corrigé le problème mais quand je lance le script, ça m'affiche ça:

Citation :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in downloadscript.php on line 8


Voilà mon code:

Code :
  1. <?php
  2. mysql_pconnect("localhost", "root", "" )
  3.       or die("Impossible de se connecter au serveur de bases de données." );
  4. mysql_select_db("autodownload" )
  5.       or die("Cette base de donnees n'existe pas" );
  6. $query= "select nom from fichier";
  7. //exec de la query, voir tuto  
  8. while ($row= mysql_fetch_array($result)){ 
  9. echo '<a href="down.php?file=wow.zip' 
  10.      . $row['nom'] 
  11.      . '">'
  12.      . $row['nom'] 
  13.      . '</a><br>'; 
  14. }
  15. ?>

n°244572
omega2
Posté le 13-11-2002 à 20:53:42  profilanswer
 

ReaL_MathoS a écrit a écrit :

ça a corrigé le problème mais quand je lance le script, ça m'affiche ça:

Citation :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in downloadscript.php on line 8


Voilà mon code:

Code :
  1. <?php
  2. mysql_pconnect("localhost", "root", "" )
  3.       or die("Impossible de se connecter au serveur de bases de données." );
  4. mysql_select_db("autodownload" )
  5.       or die("Cette base de donnees n'existe pas" );
  6. $query= "select nom from fichier";
  7. //exec de la query, voir tuto  
  8. while ($row= mysql_fetch_array($result)){ 
  9. echo '<a href="down.php?file=wow.zip' 
  10.      . $row['nom'] 
  11.      . '">'
  12.      . $row['nom'] 
  13.      . '</a><br>'; 
  14. }
  15. ?>





Question con, c'est quand que tu donne une valeur à $result ?

n°244573
real_matho​s
Posté le 13-11-2002 à 20:55:33  profilanswer
 

Ben je sais pas quoi mettre comme valeur, je n'y connais pas grand chose, je viens à peine de débuter aujourd'hui... alors, c quoi qu'il faut mettre?  :pt1cable:


Message édité par real_mathos le 13-11-2002 à 20:57:24
n°244577
omega2
Posté le 13-11-2002 à 21:02:09  profilanswer
 

ReaL_MathoS a écrit a écrit :

Ben je sais pas quoi mettre comme valeur, je n'y connais pas grand chose, je viens à peine de débuter aujourd'hui... alors, c quoi qu'il faut mettre?  :pt1cable:



tu me l'as demandé plus haut. lol
A quoi ca sert que je te passe la fonction qui exécute la erquête si tu t'en sert pas. ;)

n°244578
real_matho​s
Posté le 13-11-2002 à 21:04:05  profilanswer
 

c pas con du tt ça!  [:virginie]

n°244579
real_matho​s
Posté le 13-11-2002 à 21:06:06  profilanswer
 

Donc revoici mon code:

Code :
  1. <?php
  2. mysql_pconnect("localhost", "root", "" )
  3.       or die("Impossible de se connecter au serveur de bases de données." );
  4. mysql_select_db("autodownload" )
  5.       or die("Cette base de donnees n'existe pas" );
  6. $query= "select nom from fichier";
  7. function send_sql($db, $sql) {
  8.   if (! $result=mysql_db_query($db, $sql)) {
  9.   echo mysql_error();
  10.   exit;
  11.   }
  12.   return $res;
  13. }
  14. while ($row= mysql_fetch_array($result)){ 
  15. echo '<a href="down.php?file=wow.zip' 
  16.      . $row['nom'] 
  17.      . '">'
  18.      . $row['nom'] 
  19.      . '</a><br>'; 
  20. }
  21. ?>


Et cette fois il m'affiche cette erreur (décidément):

Citation :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in downloadscript.php on line 14

n°244599
omega2
Posté le 13-11-2002 à 21:16:23  profilanswer
 

ReaL_MathoS a écrit a écrit :

Donc revoici mon code:

Code :
  1. <?php
  2. mysql_pconnect("localhost", "root", "" )
  3.       or die("Impossible de se connecter au serveur de bases de données." );
  4. mysql_select_db("autodownload" )
  5.       or die("Cette base de donnees n'existe pas" );
  6. $query= "select nom from fichier";
  7. function send_sql($db, $sql) {
  8.   if (! $result=mysql_db_query($db, $sql)) {
  9.   echo mysql_error();
  10.   exit;
  11.   }
  12.   return $res;
  13. }
  14. while ($row= mysql_fetch_array($result)){ 
  15. echo '<a href="down.php?file=wow.zip' 
  16.      . $row['nom'] 
  17.      . '">'
  18.      . $row['nom'] 
  19.      . '</a><br>'; 
  20. }
  21. ?>


Et cette fois il m'affiche cette erreur (décidément):

Citation :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in downloadscript.php on line 14





Bon, un petit truc. "function" indique le débbut d'une fonction. Mais si tu l'utilise pas, elle sera jamais exécuté.
 
Si j'ai un conseil à te donner, c'est de mettre toute les fonction au début du script ( un peu après le "<?" ) et ensuite de metrtre le reste. Comme ça, t'évites le problème des fonctions réputé inexistante alors que tu les a déclaré plus bas (sur certains serveurs tel que chez free.fr en php3, il y a ce problème là qui apparait quand on fait pas gaffe).
 
Bon, pour exécuter la fonction $result=send_sql($db, $query) là ou t'avais mis le "function ...".
 
Autre petit détail avant que tu viennes poser la question suivante : beaucoup de fonctions retourne une valeur faudrait peut être penser à la récupérer cette valeur (pas exemple la fonction mysql_pconnect ).
 
Bon, là, je vais pas te macher tout le boulot alros avant de poser la prochaine question, lit donc un tutoriel par ce que tu pose quand même pas mal de question de bases. ;)

n°244616
real_matho​s
Posté le 13-11-2002 à 21:38:25  profilanswer
 

Je'en ai marre je ne comprend rien:
Le code est bon là non?

Code :
  1. <?php
  2. mysql_pconnect("localhost", "root", "" )
  3.       or die("Impossible de se connecter au serveur de bases de données." );
  4. mysql_select_db("autodownload" )
  5.       or die("Cette base de donnees n'existe pas" );
  6. $query= "select nom from fichier";
  7. $result=send_sql($db, $query)
  8. while ($row= mysql_fetch_array($result)){ 
  9. echo '<a href="down.php?file=wow.zip' 
  10.      . $row['nom'] 
  11.      . '">'
  12.      . $row['nom'] 
  13.      . '</a><br>'; 
  14. }
  15. ?>


Il me met cette erreur pourtant :(:

Citation :

Parse error: parse error, unexpected T_WHILE in downloadscript.php on line 8


Message édité par real_mathos le 13-11-2002 à 21:38:59
n°244618
real_matho​s
Posté le 13-11-2002 à 21:41:22  profilanswer
 

Est-ce que tu pourrais me donner le code corrigé, et comme ça je regarderais les erreurs que j'ai faites, ça serait tt aussi bien.

n°244621
--greg--
Posté le 13-11-2002 à 21:46:56  profilanswer
 

:lol:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°244622
real_matho​s
Posté le 13-11-2002 à 21:48:53  profilanswer
 

Il est content!
Ca sonne, il est content!  :sarcastic:

n°244623
lorill
Posté le 13-11-2002 à 21:50:13  profilanswer
 

:heink:

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Gestion de téléchargements

 

Sujets relatifs
gestion de Grand Nombredessin a main levee et gestion de clic souris
Gestion de la documentation des softs ( + fichiers d'aide Windows)[ASP] Aide pour gestion de liens plizzzz
Gestion de session et persistance entre VB.Net et un Service WEB [HARDmécanismes de gestion des erreurs
[HELP NEEDED] programme permettant la gestion d'un emploi du tempsgestion d'une Iframe..le opener ne semble pas fonctionner??
Saut à la ligne en gestion de fichiers txtGestion de l'affichage des pages HTML sous IE
Plus de sujets relatifs à : Gestion de téléchargements


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR