voila j'ai crée une page où les utilisateurs peuvent déposer des petites annonces (tout fonctionne bien) mais pour améliorer ce site je souhaiterai qu'ils puissent y déposer des photo en plus.
Le probleme
merci d'avance
Veuillez prendre la peine de créer un message clair et concis.
N'hésitez pas à utiliser les balisesCode : Tout sélectionner
et [php] afin de rendre l'affichage de votre code lisible et compréhensible par tous.[/color][/b] De plus, prenez le temps de bien rédiger votre message afin d'y inclure le plus de détails possibles. Les messages du style "ça marche pas" n'aident d'aucune façon la résolution du problème. Question précise, réponse précise! L'inverse est aussi valable : Question de mer**, réponse de mer**. [/quote] [url]http://www.phpfrance.com/forums/voir_sujet-46.php[/url]
Code : Tout sélectionner
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title>Ajout de votre annonce</title>
</head>
<body>
<b>
<table border="0" cellpadding="4" cellspacing="0" width="800" height="100%" bgcolor="white">
<tr>
<td valign="top">
<center>
<br>
<?
include("conf.php3");
$table="annonces";
function clean_file_name($n)
{
$n = ereg_replace("( )|(/)|(|(')","",$n);
$n = strtolower($n);
$n = strtr($n,'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ',
'aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn');
return $n;
}
function uploadfile($file, $dir, $max_size)
{
$fname = $file['name'];
$fname = clean_file_name($fname);
$type = $file['type'];
if (($type = 'image/gif') and ($type != 'image/jpg') and ($type != 'image/jpeg') and ($type != 'image/png'))
{
$fname = '';
echo '<p><b>Ce fichier n\'est probablement pas un fichier image !</b><p></p>';
return;
}
$size = $file['size'];
if($size > $max_size * 1024)
{
$fname = '';
echo '<p><b>Fichier trop volumineux '.$max_size.' Ko maximun !</b></p>';
return;
}
$destfile = $dir.$fname;
// trouver un nouveau nom au fichier si il existe deja
$fname2 = '';
$i = 1;
while (file_exists($destfile)) {
$fname2 = $i.'_'.$fname;
$destfile = $dir.$fname2;
$i++;
}
si $fname2 a ete initialisŽ
if ($fname2) {
//$fname = $fname2;
}
// deplacer le fichier temp
$temp = $file['tmp_name'];
if (!move_uploaded_file($temp, $destfile)) {
echo '<p><b>Problème au moment du transfert !</b></p>';
$fname = '';
}
return $fname;
}
MYSQL_CONNECT($serveur,$login,$pass);
mysql_select_db("$base");
$time=time();
$query="insert into $table values ('0', '$nom', '$auteur', '$email', '$contenu', '$rubrique', '$telephone', '$time', '$userfile')";
$requete = mysql_db_query($base, $query);
$userfile = $HTTP_POST_FILES['userfile'];
echo $userfile;
if ($userfile)
{
// dossier d'upload, chemin relatif ne pas oublier le / à la fin
$upload_dir = '../image/';
// appel de la fonction upload
$docload = uploadfile($userfile, $upload_dir, 15);
if ($docload != ''){
echo '<p><b>Tansfert OK !<br>sous le nom '.$docload.'</b></p>';
}
}
echo "<font face='Arial'><b>Votre annonce a été ajoutée</b></font><br><br>
<br> <br> <center><font face='Arial' size='1'><a href='annonces.html'>Visualiser les annonces</a> - </font></center>";
/*mysql_free_result($result);*/
MYSQL_CLOSE();
?>
</center></table></b>
</body>
</html>
moi les principaux problemes que je rencontre sont au niveau de du format de l'image ainsi que pour le code $userfile = $HTTP_POST_FILES['userfile'];<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title>Ajout de votre annonce</title>
</head>
<body>
<b>
<table border="0" cellpadding="4" cellspacing="0" width="800" height="100%" bgcolor="white">
<tr>
<td valign="top">
<center>
<br>
<?
include("conf.php3");
$table="annonces";
function clean_file_name($n)
{
$n = ereg_replace("( )|(/)|(|(')","",$n);
$n = strtolower($n);
$n = strtr($n,'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ',
'aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn');
return $n;
}
function uploadfile($file, $dir, $max_size)
{
$fname = $file['name'];
$fname = clean_file_name($fname);
$type = $file['type'];
if (($type = 'image/gif') and ($type != 'image/jpg') and ($type != 'image/jpeg') and ($type != 'image/png'))
{
$fname = '';
echo '<p><b>Ce fichier n\'est probablement pas un fichier image !</b><p></p>';
return;
}
$size = $file['size'];
if($size > $max_size * 1024)
{
$fname = '';
echo '<p><b>Fichier trop volumineux '.$max_size.' Ko maximun !</b></p>';
return;
}
$destfile = $dir.$fname;
// trouver un nouveau nom au fichier si il existe deja
$fname2 = '';
$i = 1;
while (file_exists($destfile)) {
$fname2 = $i.'_'.$fname;
$destfile = $dir.$fname2;
$i++;
}
si $fname2 a ete initialisŽ
if ($fname2) {
//$fname = $fname2;
}
// deplacer le fichier temp
$temp = $file['tmp_name'];
if (!move_uploaded_file($temp, $destfile)) {
echo '<p><b>Problème au moment du transfert !</b></p>';
$fname = '';
}
return $fname;
}
MYSQL_CONNECT($serveur,$login,$pass);
mysql_select_db("$base");
$time=time();
$query="insert into $table values ('0', '$nom', '$auteur', '$email', '$contenu', '$rubrique', '$telephone', '$time', '$userfile')";
$requete = mysql_db_query($base, $query);
$userfile = $HTTP_POST_FILES['userfile'];
echo $userfile;
if ($userfile)
{
// dossier d'upload, chemin relatif ne pas oublier le / à la fin
$upload_dir = '../image/';
// appel de la fonction upload
$docload = uploadfile($userfile, $upload_dir, 15);
if ($docload != ''){
echo '<p><b>Tansfert OK !<br>sous le nom '.$docload.'</b></p>';
}
}
echo "<font face='Arial'><b>Votre annonce a été ajoutée</b></font><br><br>
<br> <br> <center><font face='Arial' size='1'><a href='annonces.html'>Visualiser les annonces</a> - </font></center>";
/*mysql_free_result($result);*/
MYSQL_CLOSE();
?>
</center></table></b>
</body>
</html>
moi les principaux problemes que je rencontre sont au niveau de du format de l'image ainsi que pour le code $userfile = $HTTP_POST_FILES['userfile'];
$userfile = $HTTP_POST_FILES['userfile'];
<?php
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;
// vÈrifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sÈlectionner un fichier de type png, gif ou jpg !';
}
if( filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 100Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
$dest_dossier = ".foto/".$dest_fichier;
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier, '¿¡¬?ƒ?«»… ÀÃÕŒœ“”‘’÷Ÿ/€‹›‡·‚„‰ÂÁËÈÍÎÏÌÓÔ?ÚÛÙ?ˆ<breve>??¸´´<caron>', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier);
}
}
?>
Code : Tout sélectionner
<html>
<body>
<!-- Erreur ? -->
<?php
if(isset($erreur)){
echo '<p>', $erreur ,'</p>';
}
?>
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
<form method="POST" action="30.php" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers ‡ 500Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p><label for="photo">Photo :</label><input type="file" name="photo" /></p>
<p><label for="photo_2"></label><!-- bouton d'envoi --> </p>
<p>
<input type="submit" name="envoi" value="Envoyer les fichiers" />
</p>
</fieldset>
</form>
</body>
</html>
Code : Tout sélectionner
<input type="file" name="photo" />