EasyPHP

Fermé
rose - 8 avril 2008 à 09:38
elghafoud Messages postés 121 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 29 avril 2013 - 8 avril 2008 à 11:12
Bonjour,
j'ai un projet de fin d'études sur la création d'un site web, je suis bloquée sur:
je veut que mon internaute insert à partir de l'interface une image ou plusieurs et ces images seront biensur stockées dans la base de données(EasyPHP version 1.6), mais ca marche pas
voici mon code si quelqu'un arrive à m"aider je serai contante.
merci d'avance.
Rq:
le dossier ou je sauvegarde les images s'appelle: images
j'ai utilisé la méthode UPLOAD.
voici la page uploadp.php
/////////////////////////////////////////////////////////////////////////////////////////:
<form action="upload.php" method="post" enctype="multipart/form-data">
<p>
<!-- Limiter la taille des fichiers à 500Ko -->
<input type="hidden" name="a" value="500000" />
<input name="photo" type="file" id="photo" />
</p>
<input type="submit" value="Envoyer" />
</form>
///////////////////////////////////////////////////////////////////////////////////////////
voici la page upload.php
<?

$connect=mysql_connect("localhost","root","") or die("alert");
mysql_select_db("Licence",$connect) or die ("alert db");

if(!empty($_FILES['photo']['tmp_name']) AND is_uploaded_file($_FILES['photo']['tmp_name']))
{
if(isset($_FILES['photo']))
{
// params unset($erreur);
$extensions_ok = array('gif', 'jpg');
$taille_max = 100000;
$dest_dossier = '../images/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type gif ou jpg !';
}
else
if( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
} // copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier // enlever les accents
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', '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 . $dest_fichier);
}
}
}
mysql_query('insert into image (NomImg) values ("'.$photo.'")');

?>
////////////////////////
sachant que ma base s'appelle: Licence
merci.

1 réponse

elghafoud Messages postés 121 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 29 avril 2013 18
8 avril 2008 à 11:12
Bonjour,

ton code ne marche pas à cause de l'utilisation d'une variable nullement initialisé!
$photo : tu l'utilise alors que tu devrai utiliser $dest_fichier!

je me suis permis de modifier un peu ton code pour un meilleur fonctionnement!
courage!


<?php
// formatage nom fichier
// enlever les accents
// remplacer les caracteres autres que lettres, chiffres et point par _
function preparString($str)
{
$str = strtr($str, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$str = preg_replace('/([^.a-z0-9]+)/i', '_', $str);
return $str;
}

// params unset($erreur);
$extensions_ok = array('gif', 'jpg');
$taille_max = 100000;
$dest_dossier = '../images/';

$erreur = array();

if (isset($_POST)) {
if(!empty($_FILES['photo']['tmp_name']) && is_uploaded_file($_FILES['photo']['tmp_name']))
{
if(isset($_FILES['photo']))
{
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur[] = 'Veuillez sélectionner un fichier de type gif ou jpg !';
}
else
if( file_exists($_FILES['photo']['tmp_name']) && filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur[] = 'Votre fichier doit faire moins de 500Ko !';
} // copie du fichier
if(empty($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
$dest_fichier = preparString($dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
$connect = mysql_connect("localhost", "root", "") or die("alert");
mysql_select_db("Licence", $connect) or die ("alert db");
mysql_query('insert into image (NomImg) values ("'.$dest_fichier.'")');
}
}
if (!empty($erreur)) {
echo '<ul>';
foreach ($erreur as $value) {
echo '<li><span style="color:red;"><b>'.$value.'</b></span></li>';
}
echo '</ul>';
}
?>

<form action="upload.php" method="post" enctype="multipart/form-data">
<p>
<!-- Limiter la taille des fichiers à 500Ko -->
<input type="hidden" name="a" value="500000" />
<input name="photo" type="file" id="photo" />
</p>
<input type="submit" value="Envoyer" />
</form>




0