Des connaisseurs pour améliorer mon premier script ;-) [ PHP ] - Programmation
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
Marsh Posté le 01-03-2002 à 19:00:59
tu pourrais faire un calcul automatique de la taille et un gestionnaire d'upload
Marsh Posté le 01-03-2002 à 19:11:29
merci pour vos idées je ne savais pas comment on faisais pour la date je vais tester le INSERT CURDATE()
pi pour le compteur de download on fait comment ?
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
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
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 j'uploaderai les modifs + tard
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
[jfdsdjhfuetppo]--Message édité par Negueu--[/jfdsdjhfuetppo]
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
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
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 puis apres ca tu lance le telechargement |
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 !
Marsh Posté le 01-03-2002 à 22:47:04
je savais meme pas le truc des variables par adresse bon je vais bosser un peu pour voir si j'arrive a faire qqchose
merci
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.
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 je crois que c bon
bon je vais continuer
@++
Marsh Posté le 02-03-2002 à 15:14:46
ton truc marche bien ( enfin presque )
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 ?
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);
Marsh Posté le 02-03-2002 à 15:52:48
ok
puis encore un autre truc ( 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 ?
Marsh Posté le 02-03-2002 à 18:08:55
Ben je ne connais pas ton script mais c peutetre dans la requète MySQL
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
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
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 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é
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 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é |
Marsh Posté le 03-03-2002 à 10:25:05
ca y'est tout marche sauf le lien sur le fichier
fait chier ce truc
Marsh Posté le 03-03-2002 à 11:35:23
T'inquiète ça va marcher
[jfdsdjhfuetppo]--Message édité par Je@nb--[/jfdsdjhfuetppo]
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
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 j'ai galéré 2 minutes pour en sortir
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 )
allez voir
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
[jfdsdjhfuetppo]--Message édité par Negueu--[/jfdsdjhfuetppo]
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 ) allez voir 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 |
un nom please
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 )
donc si y'a des gars sympas qui pourraient m'aider à améliorer mon chti script 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
si vous avez des idées, n'hésitez pas
[EDIT DIMANCHE 3 MARS A 00:06 ]
je viens d'uploader la version presque finale du script mais ya un bug... allez voir
puis un pti pour le topic
[EDIT DIMANCHE 3 MARS A 21:12 ]
et voilà la version finale qui marche plutot bien !!!
allez voir !!
[jfdsdjhfuetppo]--Message édité par Negueu--[/jfdsdjhfuetppo]