sparh

Ses derniers messages sur les forums

sparh
le 25/07/2006 à 20:46
upload de fichier
Bon déja merci de vos réponses...mais c un peu compliqué pour moi!

Lefounard: si je comprends bien ta fonction envoi le fichier sur le serveur? Mais c déja fait!

Voilà ou j'en suis:
les upload marchent, la requête sql aussi
(sauf pour l'adresse des fichiers swf et gif)
Pour le fichier swf c facile, comme c le seul qui est obligatoire et qu'il ne peut en avoir qu'1, je met la requête qui permet d'insérer les données là (en changant $nom_final par $nom_jeux)
Comme ca, si il y un un fichier swf ok upload + enregistrement et sinon erreur.
Reste les 2 gif optionnels (si y en avait qu'1 une requête uptade aurait était ok!)
Donc j'suis là dessus et pour commencer je bloque sur comment placer la requête d'insertion.

voilà la requête:
@mysql_connect($serveur, $login, $password)or die ("impossible de se connecter"); 
mysql_select_db($base)or die ("impossible de se connecter a la base");

$enregistrement = "INSERT INTO `Jeux` (`jeux`, `image1`, `image2`, `texte`, `categorie1`, `categorie2`, `vote`, `date`, `adresse`, `pseudo`) VALUES ('$nom', 'im2', 'im1', '$texte', '$cat1', '$cat2', '', '$date', 'jeux/$nom_jeux', 'pseudo')";

mysql_query($enregistrement);
mysql_close();
echo 'Votre jeux $nom est maintenant disponible sur Sparh Prods';

Et voilà là ou (je crois) il faut la placer.
<?php 
//(...) recupération des données du post, début de la boucle(...)
if (move_uploaded_file($tmp,'../Jeux/jeux/'.$nom_final))
// c la qu il faut mettre la requete, dans la //condition
{
//Message indiquant que tout s'est bien passé
echo 'Votre fichier a bien été télechargé';
echo '<br/>';
}
else {
//l'image ne peut être déplacée, on supprime le fichier temporaire
@ unlink ($tmp);
echo 'Votre jeux n'a pu être déplacée !';
}
?>


voilà, merci d'avance pour la requête et dites moi si je pars en vrille ou précisez vos idées
++
sparh
le 24/07/2006 à 17:23
upload de fichier
Bon j'ai un autre problème???
Ou placer ma requête pour que les données ne soient insérees que si les upload on fonctionnés??
Je met la page en wall avec 2-3 explications
Merci d'avance ;)
sparh
le 24/07/2006 à 16:32
upload de fichier
Ca marche!
Un dernier truc mais pas des moindres!
Sur mon formulaire de départ il y a 3 champs upload (2 images facultatives et un fichier .swf obligatoire)
j'ai maintenan besoin de récupérer les 3 valeurs de
$nom_final (si 3 valeurs il y a?) pour les insérer
dans ma base de donnée?
Mon problème c que c une boucle, donc $nom_final change de valeure à chaque fois?
Voilà, si vous avez des idées?

Moogli:
l'erreur echo ou il manquait le c corrigé.

Je sais bien que récupérer la taille pour le swf c inutile mais je ne peut pas la récupérér à un autre moment à cause de la boucle (enfin je crois)???
sparh
le 24/07/2006 à 16:01
Telechargement multiples
pour mettre une vaiable dans l'url tu utilise la methode GET:
<form name"la valeur que tu veux envoyer" action="la page à atteindre" method="get"/>
ton formulaire
</form>
sparh
le 23/07/2006 à 23:06
upload de fichier
Merci pour vos conseils, ca marche!
Bon j'essai donc d'introduire un elseif pour que les
fichiers .swf soit redirigés à la bonne place --> mais ca marches pas!!
<?php
if (isset($_FILES['fichier']))
{
//$_FILES existe
foreach ($_FILES['fichier']['name'] as $key => $value) {
$fichier=$value;//nom reel de l'image
$size=$_FILES['fichier']['size'][$key]; //poids de l'image en octets
$tmp=$_FILES['fichier']['tmp_name'][$key];//nom temporaire de l'image (sur le serveur)
$type=$_FILES['fichier']['type'][$key];//type de l'image
//On récupère la taille de l'image
list($width,$height)=getimagesize($tmp);
if (is_uploaded_file($tmp)) //permet de vérifier si le fichier a été uplodé via http
{
//vérification du type de l'img, son poids et sa taille
if ($type == "application/x-shockwave-flash" )
{
// type mime gif, poids < à 20500 octets soit environ 20Ko, largeur = hauteur = 100px
//Pour supprimer les espaces dans les noms de fichiers car celà entraîne une erreur lorsque vous voulez l'afficher
$fichier = preg_replace ("` `i","",$fichier);//ligne facultative :)
//On vérifie s'il existe une image qui a le même nom dans le répertoire
if (file_exists('../Jeux/'.$fichier))
{
//Le fichier existe on rajoute dans son nom le timestamp du moment pour le différencier de la première (comme cela on est sûr de ne pas avoir 2 images avec le même nom :) )
$nom_final= preg_replace("`.swf`is",date("U").".swf",$fichier);
}
else {
$nom_final=$fichier; //l'image n'existe pas on garde le même nom
}
//on déplace l'image dans le répertoire final
if (move_uploaded_file($tmp,'../Jeux/'.$nom_final)) {
//Message indiquant que tout s'est bien passé
//Pour le test on affiche l'image
echo 'Votre fichier à bien été télechargé.';
echo '<br/>';
}
else {
//l'image ne peut être déplacée, on supprime le fichier temporaire
@ unlink ($tmp);
echo 'L'image n'a pu être déplacée !';
}
}
elseif ( ( $type == "image/gif" || $type == "image/jpeg" ) && $size<=20500 && $width<=100 && $height<=100 )
{
// type mime gif, poids < à 20500 octets soit environ 20Ko, largeur = hauteur = 100px
//Pour supprimer les espaces dans les noms de fichiers car celà entraîne une erreur lorsque vous voulez l'afficher
$fichier = preg_replace ("` `i","",$fichier);//ligne facultative :)
//On vérifie s'il existe une image qui a le même nom dans le répertoire
if (file_exists('../Image/'.$fichier))
{
//Le fichier existe on rajoute dans son nom le timestamp du moment pour le différencier de la première (comme cela on est sûr de ne pas avoir 2 images avec le même nom :) )
$nom_final= preg_replace("`.jpg`is",date("U").".jpg",$fichier);
}
else {
$nom_final=$fichier; //l'image n'existe pas on garde le même nom
}
//on déplace l'image dans le répertoire final
if (move_uploaded_file($tmp,'../Image/'.$nom_final)) {
//Message indiquant que tout s'est bien passé
//Pour le test on affiche l'image
echo 'Votre fichier à bien été télechargé.';
echo '<br/>';
}
else {
//l'image ne peut être déplacée, on supprime le fichier temporaire
@ unlink ($tmp);
echo 'L'image n'a pu être déplacée !';
}

}
else {
//Le type mime, ou la taille ou le poids est incorrect
echo 'Votre image a été rejetée (poids, taille ou type incorrect)';
}
}
}
}
echo '<a href="javascript:history.back();">Retour</a>';
?>


PS moogli, qu'es que tu propose pour me protéger des .php.gif ou autre???
sparh
le 23/07/2006 à 15:36
upload de fichier
merci,
est il possible d'autoriser gif et jpg
image/jpeg et non juste gif??
sparh
le 23/07/2006 à 14:36
upload de fichier
bon je bloque dès le début!
j'arrive pas à contrôler la condition:
$type="image/gif"
les conditions size<=20500 && $width<=100 && $height<=100 ca c ok mais pas le type de fichier
(j'arrive à uploader n'importe quel fichier pourvu qu'il fasse moins de 20ko)

Voilà le début du code:
si vous avez des idées
<?php
if (isset($_FILES['fichier']))
{
//$_FILES existe
foreach ($_FILES['fichier']['name'] as $key => $value) {
$fichier=$value;//nom reel de l'image
$size=$_FILES['fichier']['size'][$key]; //poids de l'image en octets
$tmp=$_FILES['fichier']['tmp_name'][$key];//nom temporaire de l'image (sur le serveur)
$type=$_FILES['fichier']['type'][$key];//type de l'image
//On récupère la taille de l'image
list($width,$height)=getimagesize($tmp);
if (is_uploaded_file($tmp)) //permet de vérifier si le fichier a été uplodé via http
{
//vérification du type de l'img, son poids et sa taille
if ($type="image/gif" && $size<=20500 && $width<=100 && $height<=100 )
{
sparh
le 23/07/2006 à 12:50
upload de fichier
pas con ;)
je m'y met, j vous donne surement des nouvelles ;)
sparh
le 23/07/2006 à 11:32
upload de fichier
bon ca va, ca marche il y avait une petite erreur:
faut remplacer
foreach ($_FILES['photo']['name'] as $key => $value) {
par
foreach ($_FILES['fichier']['name'] as $key => $value) {

Voilà pour l'envoi multiple (pour moi mes 2 photos) mais maintenan il faut placer un envoi simple pour le jeu (fichier .swf qui ira dans un autre répertoire) et là j'ai encore du mal..
sparh
le 23/07/2006 à 09:56
upload de fichier
j'utilise php 4
Par contre pour le tuto que tu m'as envoyé,
rien à faire je l'ai tourné dans tous les sens, simple ou multiple, ca marche pas!
LoadingChargement en cours