upload de fichiers

upload de fichiers - PHP - Programmation

Marsh Posté le 27-08-2003 à 20:31:41    

J'ai un gros problème, pour uploader les fichiers,
 
Bon, je fais un formulaire html qui contient ca :

Citation :

<form  enctype="multipart/form-data" action="traitmix.php" method="post">
   <input type="hidden" name="auteur" value="ikseg">
<b>Titre :</b> <br>
<input type="text" name="titre" maxlength="100"><p>
<b>Mettre toutes les tracks, et faire une légère description :</b><br>
<textarea name="description" cols="50" rows="10"></textarea><p>
<b>Lien vers la mixtape :</b><br>
<input type="texte" name="lien" value="http://"><p>
<b>Upload de la pochette avant de la mixtape (la taille doit etre de 120/120px) :</b>
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
<input type="file" name="fichier"><p>
<b>Nom et extension de la photo :</b>
<input type="texte" name="nom" value="nom.extension"><p>
<input type="submit" value="envoyer!">


 
Bon, je vous donne tous le code de ce fichier pour que vous puissez m'aider avec l'action :

Citation :

<?php
include("verif.php" );
require("exconn.php" );
$auteur = $_POST['auteur'];
$titre = $_POST['titre'];
$description = $_POST['description'];
$lien = $_POST['lien'];
$nom = $_POST['nom'];
if ($titre=='')
{
echo"Vous n'avez pas rempli le titre\n";
exit;
}
if ($description=='')
{
echo"Vous n'avez pas rempli la description\n";
exit;
}
if ($lien=='')
{
echo"Vous n'avez pas rempli le lien\n";
exit;
}
if ($nom=='')
{
echo"Vous n'avez pas rempli le nom\n";
exit;
}
 
$date = date("d-m-Y" ); $heure = date("H:i" );
$connexion =Connexion(NOM,PASSE,BASE,SERVEUR);
$query =  "select user_email from phpbb_users where username='$login'"; //ca vient d'une session
$req = mysql_query($query) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); //connexion à la base de données
$data = mysql_fetch_array($req);  
$email = $data['user_email'];
 
$requete = "INSERT INTO mixtape values ('','{$titre}','{$login}','{$description}','{$nom}','{$email}','le {$date} à {$heure}')";
$req = mysql_query($requete) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); //connexion à la base de données
include("header.php" );
echo"La mixtape a été ajouté!\n";
include("footer.php" );
?>


 
Connexion() est une fonction pour se connecter qui est dans exconn.php.
Mon problème, j'ai essayé plein de facons pour transférer le fichier mais j'arrive pas.
Donc, si vous pouvez m'expiquer comment faire pour que le fichier (image) aille dans le repertoir imgmix/ ca serait bien, et me dire quel code dois-je rajouter dans traitmix.php.
 
Merci d'avance, j'ai essayé pendant 1h et demie, et je n'ai trouvé aucune solutions, alors,je compte sur vous (je suis deja allé sur phpdebutant, et google...)

Reply

Marsh Posté le 27-08-2003 à 20:31:41   

Reply

Marsh Posté le 28-08-2003 à 09:20:22    

y'a un topic sur l'upload de fichier qui est passé y'a 1 semaine ou 2. J'avais mis pas mal de code, alors fait une petite recherche...;)

Reply

Marsh Posté le 28-08-2003 à 10:28:18    

ok, je vais essayer de voir ca.

Reply

Marsh Posté le 28-08-2003 à 11:17:30    

Désolé, j'ai éssayé de mettre ca :

Citation :

<?php
 
include("verif.php" );
require("exconn.php" );
$auteur = $_POST['auteur'];
$titre = $_POST['titre'];
$description = $_POST['description'];
$lien = $_POST['lien'];
$nom = $_POST['nom'];
if ($titre=='')
{
echo"Vous n'avez pas rempli le titre\n";
exit;
}
if ($description=='')
{
echo"Vous n'avez pas rempli la description\n";
exit;
}
if ($lien=='')
{
echo"Vous n'avez pas rempli le lien\n";
exit;
}
if ($nom=='')
{
echo"Vous n'avez pas rempli le nom\n";
exit;
}
$point = strpos($lien,"." );
if($point=='')  
{  
echo "Le lien doit comporter un <b>point</b>";  
exit;
}  
 
$http = strpos($lien,"http://http://" );
if($point=='')  
{  
echo "Le lien n'est pas correcte <b>point</b>";  
exit;
}  
 
  if (is_uploaded_file ($_FILES['fichier']['tmp_name']))
  {
include("header.php" );
echo"La mixtape a été ajouté!\n";
include("footer.php" );  
$date = date("d-m-Y" ); $heure = date("H:i" );
$connexion = Connexion(NOM,PASSE,BASE,SERVEUR);
$query =  "select user_email from phpbb_users where username='$login'";
$req = mysql_query($query) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); //connexion à la base de données
$data = mysql_fetch_array($req);  
$email = $data['user_email'];
 
$requete = "INSERT INTO mixtape values ('{$titre}','{$login}','{$description}','{$nom}','{$email}','le {$date} à {$heure}')";
$req = mysql_query($requete) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); //connexion à la base de données
 
 
    // On récupère l'identifiant attribué par MySQL
   $id = mysql_insert_id ($connexion);
 
   // Copie du fichier dans le répertoire PHOTOS
    copy($_FILES['fichier']['tmp_name'], "imgmix/$id.gif" );
 
}
else
{
  echo "Vous avez oublié de transmettre le fichier !?\n";
}  
?>
 


 
Et ca ne marche pas :(  :??: Quelqu'un pourrait me dire ce qui ne va pas dans ce script, et qu'est-ce qu'il faut rajouter pour que ca accepte seulement des images?

Reply

Marsh Posté le 28-08-2003 à 11:55:18    

une rmarque en passant : tes messages d'erreurs pour les champs non remplis, tu devra le faire côté client avec du javascript...

Reply

Marsh Posté le 28-08-2003 à 11:57:01    

et pour que ça accepte que les images, tu filtres les extensions des fichiers : tu récupères l'extension du fichier uploadé et tu regardes si celle-ci est dans ta liste des extensions autorisées (où alors qu'elle n'est pas dans la liste des extensions interdites)...

Reply

Marsh Posté le 28-08-2003 à 12:09:38    

rufo a écrit :

une rmarque en passant : tes messages d'erreurs pour les champs non remplis, tu devra le faire côté client avec du javascript...


 
Nan, ca me prendrais trop de temps, et c'est un formulaire ou juste moi et quelques autres personnes remplirons, (ca sera dans une partie d'admin)

Reply

Marsh Posté le 28-08-2003 à 12:53:53    

ikseg a écrit :


 
Nan, ca me prendrais trop de temps, et c'est un formulaire ou juste moi et quelques autres personnes remplirons, (ca sera dans une partie d'admin)


 
ça te prendrait trop de temps??????? Quelque minutes tout au plus! [:anne-sophie]

Reply

Marsh Posté le 28-08-2003 à 13:56:58    

rufo a écrit :

une rmarque en passant : tes messages d'erreurs pour les champs non remplis, tu devra le faire côté client avec du javascript...


 
Et risquer plein de merdes avec les petits malins qui désactivent le JS?

Reply

Marsh Posté le 28-08-2003 à 14:31:48    

rufo a écrit :


 
ça te prendrait trop de temps??????? Quelque minutes tout au plus! [:anne-sophie]


 
Tu veux dire, que je devrais me faire chi** a apprendre le js juste pour ca? nan nan nan...
Enfin, bon, pour en revenir au sujet, quelqu'un opeut m'aider?

Reply

Marsh Posté le 28-08-2003 à 14:31:48   

Reply

Marsh Posté le 28-08-2003 à 15:38:12    

le transfert se fait ainsi :
 

Code :
  1. move_uploaded_file($_FILES['fichier']['tmp_name'], "imgmix/$id.gif" );

 
 
mais le copy doit fonctionner egalement.
 
a part ca, je vois rien de faux. jespere que tu transfere des images de 30 ko max.
 
http://www.php.net/manual/fr/features.file-upload.php

Reply

Marsh Posté le 28-08-2003 à 18:30:42    

J'ai utilisé la fonction phpinfo(), peut etre que ca va vous éclairer, allez ici

Reply

Marsh Posté le 28-08-2003 à 19:04:29    

J'ai oublié de dire que ca m'affiche ca aussi :

Citation :

Column count doesn't match value count at row 1

Reply

Marsh Posté le 28-08-2003 à 20:54:11    

Bon,j'ai télécharger un script d'image qui marche, maintenant, il s'agit de faire passer les autres infos en meme temps... Ce que.......je n'ai pas réussi à faire!!!
Donc, j'aimerai encore un petit service, allez voir ce script et, j'aimerais (si vous en avez la patience...)que vous assembliez mon formulaire avec le formulaire d'upload, et les deux programmes qui traitent le formulaire. (Attention, le nom de l'image et l'extention doivent etre pareil que $nom!).
Je vous serez énormément reconnaissant de me faire ca :) .  
J'ai besoin de ce script au plus vite, c'est pour ca, que je fais appelle à vous ;) .
MERCI :love:  :love: pour celui qui le fera

Reply

Marsh Posté le 28-08-2003 à 22:42:25    

ikseg a écrit :

J'ai oublié de dire que ca m'affiche ca aussi :

Citation :

Column count doesn't match value count at row 1




 
euhhh tu plaisantes ? ... tu as une erreur SQL, donc ton script sarrete tout simplement. a vue de nez cest ton insert qui est en cause, fait :
 
insert into TABLE (champs...) values (valeurs...)

Reply

Sujets relatifs:

Leave a Replay

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