Vous n'êtes pas identifié(e).
[25 janvier 2021] - Publication de Wanewsletter 3.1.0
Pages : 1
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
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
personne pour m'aider a resoudre mon probleme?
Hors ligne
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
Pages : 1