EasyPHP

rose -  
elghafoud Messages postés 129 Statut Membre -
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.
Configuration: Windows XP
Internet Explorer 6.0

1 réponse

  1. elghafoud Messages postés 129 Statut Membre 18
     
    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