Annonce

[15 février 2017] Publication de Wanewsletter 3.0.1

#1 2014-09-30 10:24:23

athena
Membre
Inscription : 2014-09-30
Messages : 3

insertion d'url image dans base MSQL

Bonjour a tous je suis un peu nouveau en PHP
mais je travail en ce moment sur une base de donnee pour gestion des resources humaines
voila j'aimerais que lors de l'enregistrement d'un nouveau employe dans ma base que je puise oploader sa photo pour en en suite pourvoire afficher les information de l'employe et sa photo sur un aute formulaire php.
voila mon code:
<?php
include ('fonction.php');
if (isset($_POST['submit']))
{
   
    $matricule = htmlspecialchars(trim($_POST['matricule']));
    $nomprenom = htmlspecialchars(trim($_POST['nomprenom']));
    $datenaissance = htmlspecialchars(trim($_POST['datenaissance']));
    $photo=$_FILES['photo']['name'];
    $photo_tmp=$_FILES['photo']['tmp_nname'];
    $errors=array();
    if(!empty($photo_tmp))
    {
        $image=explode('.',$photo);
        $image_ext=end($image);
        if(in_array(strtolower($image_ext)array('png','jpg','jpeg'))===false)
        {
          $errors[]="veillez saisir une image";
               }
        }
        if(empty($errors))
        {
            fonction redimensionner
            function upload_photo($photo_tmp)
        }else echo $errors
   
    if ($matricule&&$nomprenom&&$datenaissance&&$photo)
    { echo "Information de l'employe  inserer avec success";
      
          mysql_connect('localhost','root','kisore1988');
          mysql_select_db('gestionemp');
          $query = mysql_query("
                 
                  INSERT INTO employe VALUES('$matricule','$nomprenom','$datenaissance','$photo')
                 
                 
                 
                  ");
       
       
    } else echo "Veillez saisir tout les champs";
}

?>
<title>Inscriptin Employe</title>
<body bgcolor="CCCCFF">
<h1>Enregistrer un employe</h1>
<form method="post" action="nouveauemp.php" enctype="multipart/form-data">
<p>Matricule</p>
<input type="text"  name="matricule">
<p>Nom et Prenom</p>
<input type="text" name="nomprenom">
<p>Date de Naissance</p>
<input type="date" name="datenaissance"><br></br>
<p>PHOTO</p>
<input type="file" name="photo"><br></br>
<input type="submit" name="submit" value="Valider">

</form>


</body>


Ma fonction.php

<?php
function upload_photo($photo_tmp)
{
    if(file_exists($photo_tmp))
    {
        $image_size=getimagesize($photo_tmp);
        if($image_size['mime']=='image/jpeg')
        {
            $image_src=imagecreatefromjpeg($photo_tmp);
        }elseif ($image_size['mime']=='image/png')
        {
            $image_src=imagecreatefrompng($photo_tmp);
        }else {echo "Votre image n'es pas valide";
              $image_src=false;
        }
        if ($image_src!==false)
        {
            $image_width=300;
            if ($image_size[0]<=$image_width)
            {
                $image_finale=$image_src;
            }else {
                $new_width[0]=$image_width;
                $new_height[1]=($image_size[1]/$image_size[0])*$image_width;
                $image_finale=imagecreatetruecolor($new_width[0],$new_height[1]);
                imagecopyresampled($image_finale,$image_src,0,0,0,0,$new_width[0],$new_height[1],
                        $image_size[0],$image_size[1]);
             }
            imagejpeg($image_finale,'photoemp/','','jpg');   
        }
    }
}



?>

Hors ligne

#2 2014-09-30 10:33:42

athena
Membre
Inscription : 2014-09-30
Messages : 3

Re : insertion d'url image dans base MSQL

je ne veut pas stocker l'image dans la base je veut juste stocker l'url pour ensuite lui faire apel sur un formulaire

Hors ligne

#3 2014-10-02 11:41:12

athena
Membre
Inscription : 2014-09-30
Messages : 3

Re : insertion d'url image dans base MSQL

personne pour m'aider a resoudre mon probleme?

Hors ligne

#4 2014-10-02 18:39:59

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 260

Re : insertion d'url image dans base MSQL

Salut,

Le problème est qu'ici, c'est un forum de support pour wanewsletter et wamailer, pas un forum d'apprentissage du PHP ;-)
Cela dit, je vais faire quelques observations:

- l'appel à htmlspecialchars() se fait à l'affichage des données, pas au moment de leur stockage (dans une base de données ici)
- cette partie est syntaxiquement fausse :

 if(empty($errors))
        {
            fonction redimensionner
            function upload_photo($photo_tmp)
        }else echo $errors

Vous vouliez sans doute faire:

 if(empty($errors))
        {
            upload_photo($photo_tmp);
        }else echo $errors

- vous avez affiché votre mot de passe root dans votre message. Vous devriez faire plus attention et garder cette information secrète
- La ligne pour faire votre insertion dans la base de données contient une faille d'injection SQL. Renseignez-vous sur ce type de faille de sécurité.
- l'appel à la fonction imagejpeg() est erroné. Cette fonction ne prend que trois arguments. L'appel serait plutôt :

 imagejpeg($image_finale, 'photoemp/num_du_fichier.jpg', 85);

- Si vous utilisez la valeur de $_FILES['photo']['name'] comme nom de fichier pour stocker votre image redimensionnée, faites une vérification de cette valeur et rejetez le fichier si le nom contient des caractères non utilisables dans un nom de fichier, en particulier les caractères de contrôle qui peuvent introduire une faille de sécurité sur des versions de PHP pas récente. Voir pour l'exemple : http://www.madirish.net/401


PHP et MySQL, un duo gagnant !

Hors ligne

Pied de page des forums