[ PHP ] Des connaisseurs pour améliorer mon premier script ;-)

Des connaisseurs pour améliorer mon premier script ;-) [ PHP ] - Programmation

Marsh Posté le 01-03-2002 à 18:52:33    

Salut a tous :)  
 
je suis un newbie en PHP mais j'ai quand meme terminé une "beta" de mon script de Gestion de downloads ;) ( c pas encore fini...je vous rassure :pt1cable: )
 
donc si y'a des gars sympas qui pourraient m'aider à améliorer mon chti script :D ca serait cool :)  
 


Donc voilà, g pleins d'ambitions pour ce script ;) j'avais pensé à créer des catégories ( ex: models, maps, divers...) puis fodrait rajouter un compteur de downloads :D  
 
si vous avez des idées, n'hésitez pas :)  
 
 :hello:
 
[EDIT DIMANCHE 3 MARS A 00:06 ]
 
je viens d'uploader la version presque finale du script mais ya un bug... :gun: allez voir
 
puis un pti [:tomilou] pour le topic ;)
 
 
[EDIT DIMANCHE 3 MARS A 21:12 ]
 
et voilà la version finale qui marche plutot bien !!! :)  :)  
allez voir !! :pt1cable:  :D

 

[jfdsdjhfuetppo]--Message édité par Negueu--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 01-03-2002 à 18:52:33   

Reply

Marsh Posté le 01-03-2002 à 19:00:06    

on peut pas éditer ni supprimer comment ca se fait ?
sinon ca fonctionne, c'est simple c'est cool
 
sinon pour la date, pkoi devoir la tapé ?  
fait un INSERT CURDATE() c mieux ca mettra la date du jour de l'insertion.
 
Sinon bah le compteur de telchargement ne marche pas c toujours affiché telechargé-fois
 
 
voila jpense qua ya dautre turc, mais ca c deja bien a mettre en place


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
Reply

Marsh Posté le 01-03-2002 à 19:00:59    

tu pourrais faire un calcul automatique de la taille et un gestionnaire d'upload


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 01-03-2002 à 19:11:29    

merci pour vos idées :) je ne savais pas comment on faisais pour la date :D je vais tester le INSERT CURDATE() :)  
 
pi pour le compteur de download on fait comment ? :??:

Reply

Marsh Posté le 01-03-2002 à 19:25:11    

pour le compteur de d/l jai une idée mais jsais pas si c bon
ta surement une table dans laquelle tu stock les infos de chaques element a telecharger avec chacun un id different
 
bah tu ajoute un tuple que tapelle compteur
et tu inclut dans la partie de code ou sa lance le telechargement, un UPDATE ou un SET je sais plus ou tu augmente la valeur de compte de 1.
 
jsais pas si c ca mais bon rectifier moi si c pas ca


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
Reply

Marsh Posté le 01-03-2002 à 19:30:28    

pkoi chaque fois une table en plus la tu as un table avec toutes tes entrer de dl dans cette table tu ajoute un champs id en auto increment (pas sur de l'hortographe) si c pas deja fait + un champs nb_dl
 
pour l'url de dl tu fais un nouveau fichier et donc dans la page ou tu liste tes fichier tu mets comme url fichier.php?id=iddufichier puis dans fichier.php tu fais un select par l'id du fichier pour recup le nom du fichier  
puis une requete update tatable set nb_dl=nb_dl+1;
puis un redirect html vers ton fichier

Reply

Marsh Posté le 01-03-2002 à 20:05:59    

ok merci je vais voir ca :)  
 
en tout cas g modifié le truc de la date :D j'uploaderai les modifs + tard :)  
 
 :hello:

Reply

Marsh Posté le 01-03-2002 à 21:10:26    

Boris l'invincible a écrit a écrit :

pkoi chaque fois une table en plus la tu as un table avec toutes tes entrer de dl dans cette table tu ajoute un champs id en auto increment (pas sur de l'hortographe) si c pas deja fait + un champs nb_dl
 
pour l'url de dl tu fais un nouveau fichier et donc dans la page ou tu liste tes fichier tu mets comme url fichier.php?id=iddufichier puis dans fichier.php tu fais un select par l'id du fichier pour recup le nom du fichier  
puis une requete update tatable set nb_dl=nb_dl+1;
puis un redirect html vers ton fichier  




 
je capte pas grand choses :( tu voudrai pas détailler un peu stp ? ;)
Enfin, je comprends théoriquement mais en pratique je sais pas trop quoi faire quand je me retrouve dans dreamweaver :D

 

[jfdsdjhfuetppo]--Message édité par Negueu--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 01-03-2002 à 21:26:13    

kes tu comprends pas explique

Reply

Marsh Posté le 01-03-2002 à 22:02:16    

tout ce que tu m'as dis, tu voudrai pas le détailler un peu stp ? ;)  
 
a partir de "fichier.php?id=iddufichier" je pige le fonctionnement mais je sais aps comment faire concretement :(

Reply

Marsh Posté le 01-03-2002 à 22:02:16   

Reply

Marsh Posté le 01-03-2002 à 22:13:29    

Moi jai compris ca
 
Ta ta page avec tes different telechargement.
Tu met chaque fichier a telecharger qui link vers cette page
fichier.php?id=id_du_fichier
 
ensuite
sur la page fichier.php tu met une requete qui incremente de 1 la nombre de d/l de ton fichier. en recuperant la variable $id passé en parametre
 
puis apres ca tu lance le telechargement


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
Reply

Marsh Posté le 01-03-2002 à 22:19:37    

massanu a écrit a écrit :

Moi jai compris ca
 
Ta ta page avec tes different telechargement.
Tu met chaque fichier a telecharger qui link vers cette page
fichier.php?id=id_du_fichier
 
ca g pigé
 
ensuite
sur la page fichier.php tu met une requete qui incremente de 1 la nombre de d/l de ton fichier. en recuperant la variable $id passé en parametre
 
là rien du tout :D  
 
puis apres ca tu lance le telechargement  



Reply

Marsh Posté le 01-03-2002 à 22:31:59    

donc en gros tu sais pas qu'onpeut recuperer des variables par adresse
c quand meme un des point super important du php, la preuve meme moi je le sais
 
donc voila explication
 
quand ta un lien ici :fichier.php?id=1 par exemple
 
dans la page fichier.php si tu fait  :
<?
echo $id;
?>  
il ecrira 1
 
en gros, tu peut utiliser dans la page de destination, ici fichier.php, la valeur de la variable passé en parametre
 
ta compris la ?
bien si ta compris, maintenant c tout con
tu as dans ta table, un categorie nb_dl pour chaque fihier, c a dire chaque ligne de ta table.
Alors ta plus qua ecrire une requete a base de UPDATE dans laquelle tu incrementera ce nb_dl de 1. voila !


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
Reply

Marsh Posté le 01-03-2002 à 22:47:04    

je savais meme pas le truc des variables par adresse :D bon je vais bosser un peu pour voir si j'arrive  a faire qqchose
 
merci :)  
 
 :hello:

Reply

Marsh Posté le 02-03-2002 à 14:27:04    

Voici mon script pour le comptage : tu clique sur le fichier et l'url est dl.php?id=1 pour par exemple le fichier 1, puis
la page dl :
<?
include('config.inc.php';); include('fonctions.php';);
if (connect($serveur,$user,$pass,$db))
{
 $sqlup = "UPDATE fichiers SET nbfoisdl=nbfoisdl+1 WHERE id='".$HTTP_GET_VARS['id']."'";
 $requpdate = mysql_query($sqlup)or die('Erreur Mysql :<br>'.$sql.'<br>'.mysql_error());
 $sqlurl = "SELECT url FROM fichiers WHERE id='".$HTTP_GET_VARS['id']."'";
 $urlfichier = mysql_query($sqlurl)or die('Erreur Mysql :<br>'.$sql.'<br>'.mysql_error());
 $urlfichier = mysql_fetch_array($urlfichier);
 mysql_close();  
 header("Location: ".$urlfichier['url']);
}
?>
 
voila.
Bon le fichier config.inc.php contient le host, le user, le pass, la bd et le fichier fonctions.php contient la fn connect que voici :
 
function connect($host,$user,$pass,$db)  
{  
if(@mysql_connect($host,$user,$pass))  
{  
 if(@mysql_select_db($db))
 {
return true;  
}
else
echo"<p align=\"center\"><span class=\"error\">Connection à la base de donnée impossible !!<p></span>";
return false;
}  
else  
{  
echo "<p align=\"center\"><span class=\"error\">Connection au site impossible<p></span>";  
return false;
}  
}
 
Sinon tu peux faire aussi dans la partie admin si les fichiers sont hébergé localement et non ché un autre endroit par exemple joystick pour les jeux ....
tu peux calculer la taille du fichier en octet et la stocker dans la bdd avec les fn file_exists et filesize puis avec une fonction tu la transforme en ko ou en mo et en octet si c petit selon la taille du fichier.
Sinon pour éviter dans le compteur que la personne clique 1000 fois sur le fichier ou si il utilise un système Flashget ou getright je pense aussi, tu peux faire 2 champs ip1 et ip2 où tu stockes les ip dans des varchar(15) et incrémente le compteur uniquement si l'ip du visiteur ne fais pas partie de la base.
Sinon j'aime bien ton design ça fait classe.

Reply

Marsh Posté le 02-03-2002 à 14:31:06    

Je@nb a écrit a écrit :

Voici mon script pour le comptage : tu clique sur le fichier et l'url est dl.php?id=1 pour par exemple le fichier 1, puis
la page dl :
<?
include('config.inc.php';); include('fonctions.php';);
if (connect($serveur,$user,$pass,$db))
{
 $sqlup = "UPDATE fichiers SET nbfoisdl=nbfoisdl+1 WHERE id='".$HTTP_GET_VARS['id']."'";
 $requpdate = mysql_query($sqlup)or die('Erreur Mysql :<br>'.$sql.'<br>'.mysql_error());
 $sqlurl = "SELECT url FROM fichiers WHERE id='".$HTTP_GET_VARS['id']."'";
 $urlfichier = mysql_query($sqlurl)or die('Erreur Mysql :<br>'.$sql.'<br>'.mysql_error());
 $urlfichier = mysql_fetch_array($urlfichier);
 mysql_close();  
 header("Location: ".$urlfichier['url']);
}
?>
 
voila.
Bon le fichier config.inc.php contient le host, le user, le pass, la bd et le fichier fonctions.php contient la fn connect que voici :
 
function connect($host,$user,$pass,$db)  
{  
if(@mysql_connect($host,$user,$pass))  
{  
 if(@mysql_select_db($db))
 {
return true;  
}
else
echo"<p align=\"center\"><span class=\"error\">Connection à la base de donnée impossible !!<p></span>";
return false;
}  
else  
{  
echo "<p align=\"center\"><span class=\"error\">Connection au site impossible<p></span>";  
return false;
}  
}
 
Sinon tu peux faire aussi dans la partie admin si les fichiers sont hébergé localement et non ché un autre endroit par exemple joystick pour les jeux ....
tu peux calculer la taille du fichier en octet et la stocker dans la bdd avec les fn file_exists et filesize puis avec une fonction tu la transforme en ko ou en mo et en octet si c petit selon la taille du fichier.
Sinon pour éviter dans le compteur que la personne clique 1000 fois sur le fichier ou si il utilise un système Flashget ou getright je pense aussi, tu peux faire 2 champs ip1 et ip2 où tu stockes les ip dans des varchar(15) et incrémente le compteur uniquement si l'ip du visiteur ne fais pas partie de la base.
Sinon j'aime bien ton design ça fait classe.  




 
merci ton post est vraiment sympa...j'allai justement poster que je pigeais rien au compteur de clic mais la maintenant :D je crois que c bon :lol:  
 
bon je vais continuer :)  
 
@++
 :hello:

Reply

Marsh Posté le 02-03-2002 à 14:39:43    

de rien  :hello:  :hello:  :hello:

Reply

Marsh Posté le 02-03-2002 à 15:14:46    

ton truc marche bien :) ( enfin presque :D )
 
ca me compte bien les clic mais on dirait que la redirection ne marche pas :??: il me sort ca:
 
Warning: Supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\download\count_dl.php on line 9
 
Warning: Cannot add header information - headers already sent by (output started at c:\program files\easyphp\www\download\count_dl.php:9) in c:\program files\easyphp\www\download\count_dl.php on line 11

 
dans count_dl.php a la ligne 9 ya ca:
$urlfichier = mysql_fetch_array($url_prog);
 
puis a la ligne 11 ya ca:
header("Location: ".$urlfichier['url']);
 
 
 
PS: le code de count_dl.php:
<?
require('config.inc.php';); require('fonctions.php';);
if (connect($db_host,$db_name,$db_login,$db_passwd))
{
$sqlup = "UPDATE gestion_dl SET nb_dl=nb_dl+1 WHERE id='".$HTTP_GET_VARS['id']."'";
$requpdate = mysql_query($sqlup)or die('Erreur Mysql :<br>'.$sql.'<br>'.mysql_error());
$sqlurl = "SELECT url_prog FROM gestion_dl WHERE id='".$HTTP_GET_VARS['id']."'";
$urlfichier = mysql_query($sqlurl)or die('Erreur Mysql :<br>'.$sql.'<br>'.mysql_error());
$urlfichier = mysql_fetch_array($url_prog);
mysql_close();  
header("Location: ".$urlfichier['url']);
}
?>

 
 
alors tu vois un peu ? :??:

Reply

Marsh Posté le 02-03-2002 à 15:27:27    

normal kil te mette ça. Tu appelle une variable ki existe pas.
remplace par ça : $urlfichier = mysql_fetch_array($urlfichier);

Reply

Marsh Posté le 02-03-2002 à 15:52:48    

ok
 
puis encore un autre truc :D ( désolé ;) )
 
 
mon formulaire ne marche plus :( il me met "téléchargement ajouté avec succès" mais y'a rien dans la base :??:  
 
ta pas une idée d'ou ca pourrai venir ? :??:

Reply

Marsh Posté le 02-03-2002 à 18:08:55    

Ben je ne connais pas ton script mais c peutetre dans la requète MySQL

Reply

Marsh Posté le 02-03-2002 à 18:45:12    

Ca y'est g uploadé une nouvelle version mais il reste pleins de bug  :( pff la j'en ai ras le bol :D

Reply

Marsh Posté le 02-03-2002 à 20:53:27    

a mon avis il rajoute pas car tu as rajouter un champs a la table et que ton insert into dans le fichier ajout est mal fait

Reply

Marsh Posté le 02-03-2002 à 21:57:31    

juste une chose: comment on fait pour qu'un champs dans la base SQL soit a zéro par défaut ?? g essayé nb_dl VARCHAR (6) DEFAULT '0' not null mais ca marche pas :(
nb_dl est tjs vide :gun: j'aimerais bien que quand on crée une nouvelle entrée alors nb_dl soit a zéro
 
j'espère que vous avez pigé :D

Reply

Marsh Posté le 03-03-2002 à 00:42:07    

Negueu a écrit a écrit :

juste une chose: comment on fait pour qu'un champs dans la base SQL soit a zéro par défaut ?? g essayé nb_dl VARCHAR (6) DEFAULT '0' not null mais ca marche pas :(
nb_dl est tjs vide :gun: j'aimerais bien que quand on crée une nouvelle entrée alors nb_dl soit a zéro
 
j'espère que vous avez pigé :D  




 
 [:tomilou]  
 :hello:

Reply

Marsh Posté le 03-03-2002 à 10:25:05    

ca y'est tout marche sauf le lien sur le fichier :D  
 
fait chier ce truc :gun:  
 
 :hello:

Reply

Marsh Posté le 03-03-2002 à 11:35:23    

T'inquiète ça va marcher
http://jeanb.d2g.com/smiley.png

 

[jfdsdjhfuetppo]--Message édité par Je@nb--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 03-03-2002 à 12:14:01    

si tu le mettais en tinyint ca serait mieux ou mediumint si tu envisage beaucoup de dl le champs varchar c plus pour du texte

Reply

Marsh Posté le 03-03-2002 à 15:04:38    

Je@nb a écrit a écrit :

T'inquiète ça va marcher
http://jeanb.d2g.com/smiley.png  
 
 




 
au fait, j'suis allé sur ton site :D j'ai galéré 2 minutes pour en sortir :lol:

Reply

Marsh Posté le 03-03-2002 à 16:23:24    

:lol:  :lol:  :lol:  :lol:  :lol: T trop curieux mon petit

Reply

Marsh Posté le 03-03-2002 à 21:14:45    

Ca y'est la version 1.0 de mon super script ( pas mal pour un débutant :D )
 
allez voir ;)  
 
 :hello:  
 
je vous remercie tous pour votre aide :)
 
 
PS: Il me faudrait un nom mieux pour mon script, vous avez pas une idée ? paske "Gestion Downloads v1.0" ca craint [:thieuma]

 

[jfdsdjhfuetppo]--Message édité par Negueu--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 06-03-2002 à 21:39:31    

Negueu a écrit a écrit :

Ca y'est la version 1.0 de mon super script ( pas mal pour un débutant :D )
 
allez voir ;)  
 
 :hello:  
 
je vous remercie tous pour votre aide :)
 
 
PS: Il me faudrait un nom mieux pour mon script, vous avez pas une idée ? paske "Gestion Downloads v1.0" ca craint [:thieuma]  
 
 




 
 [:tomilou] un nom please :D

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed