Image PHP [Résolu/Fermé]

Signaler
Messages postés
24
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
15 novembre 2016
-
Messages postés
24
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
15 novembre 2016
-
Bonjour,

J'ai un formulaire comme l'image ci-jointe qui doit enregistrer toutes les informations rentrées sur la base de données, et pour l'image il doit la sauvegarder dans un dossier et mettre le chemin dans la base de données. Etant encore amateur en Php, je n'arrive pas à trouver le bon code pour le faire marcher. Voici le code que j'ai écris, il marche très bien apart pour l'image.

<?php 
require 'testimage.php';


if(isset($_POST['regie']))      $regie=$_POST['regie'];
else      $regie="";

if(isset($_POST['annonceur']))      $annonceur=$_POST['annonceur'];
else      $annonceur="";

if(isset($_POST['categorie']))      $categorie=$_POST['categorie'];
else      $categorie="";

if(isset($_POST['titre']))      $titre=$_POST['titre'];
else      $titre="";

if(isset($_POST['lien']))      $lien=$_POST['lien'];
else      $lien="";

if (isset($_FILES['fileToUpload']))		$image=$_FILES['fileToUpload'];
else	  $image="";

if(isset($_POST['nombrepassage']))      $nombrepassage=$_POST['nombrepassage'];
else      $nombrepassage="";

if(isset($_POST['datefin']))      $datefin=$_POST['datefin'];
else      $datefin="";


if(empty($regie) OR empty($annonceur) OR empty($categorie) OR empty($titre) OR empty($image) OR empty($nombrepassage) OR empty($datefin))
    { 
    echo '<font color="red">Attention, aucun champs ne peut rester vide  !</font>'; 
    } 


else      
    { 

$db = mysql_connect('localhost', 'root', 'SaadBn159753')  or die('Erreur de connexion '.mysql_error());


    mysql_select_db('geomedia',$db)  or die('Erreur de selection '.mysql_error()); 
     

    $sql = "INSERT INTO Banner(Régie, Annonceur, Catégorie, Titre, Lien, Image, Nombre_Passage, Date_Fin ) VALUES('$regie','$annonceur','$categorie','$titre', '$lien','$target_file','$nombrepassage','$datefin')"; 
     
 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 


    echo 'Vos infos ont bien été ajoutées.'; 

    mysql_close();  
    }  
?>


code de l'upload d'image :
<?php
$target_dir = "upload/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if(isset($_POST["submit"])) {

if ($target_file == "upload/") {
$msg = "Aucun fichier selectionné";
$uploadOk = 0;
}



else if (file_exists($target_file)) {
$msg = "Fichier déjà existant.";
$uploadOk = 0;
}

else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Seuls les formats JPG, JPEG, PNG & GIF sont autorisé.";
$uploadOk = 0;
}

else if ($_FILES["fileToUpload"]["size"] > 5000000) {
$msg = "Fichier trop large.";
$uploadOk = 0;
}


else if ($uploadOk == 0) {
$msg = "Erreur votre image n'a pas bien été reçu";


} else {

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
$msg = "Le fichier ". basename( $_FILES["fileToUpload"]["name"]). " a bien été reçu";
echo($msg);
}

}

}

?>

2 réponses

Messages postés
24
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
15 novembre 2016

Modification du code : L'URL est rentré dans la db mais l'image ne s'upload pas.
Messages postés
6114
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
19 octobre 2020
1 326
slt

dans ton formulaire, tu as bien mis:
<form method="post" action="" enctype="multipart/form-data">
?
Messages postés
6114
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
19 octobre 2020
1 326
<?php
$target_dir = "upload/";
 $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
 $uploadOk = 1;
 $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
 if(isset($_POST["envoi"])) {

    if ($target_file == "upload/") {
        $msg = "Aucun fichier selectionné";
        $uploadOk = 0;
    }



    else if (file_exists($target_file)) {
        $msg = "Fichier déjà existant.";
        $uploadOk = 0;
}

	else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Seuls les formats JPG, JPEG, PNG & GIF sont autorisé.";
    $uploadOk = 0;
	
}

    else if ($_FILES["fileToUpload"]["size"] > 5000000) {
        $msg = "Fichier trop large.";
        $uploadOk = 0;
}


    else if ($uploadOk == 0) {
        $msg = "Erreur votre image n'a pas bien été reçu";

}   else {

        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
            $msg = "Le fichier ". basename( $_FILES["fileToUpload"]["name"]). " a bien été reçu";
}

}

}

?>



<form method="post" action="" enctype="multipart/form-data">
<td> <input  size="50px" type="file" name="fileToUpload" id="fileToUpload"></td>
<input type="submit" name="envoi" id="envoi" value="Envoyer">
</form>

 


et moi je viens de tester ça, et ça fonctionne
Messages postés
24
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
15 novembre 2016

C'est bizarre je n'arrive toujours pas à le faire marcher..
Peux tu agir sur mon code directement stp ?
Le chemin du dossier upload est : C:\wamp64\www\geomedia\upload (je travaille en wamp local)

Code du form :
<?php
$target_dir = "upload/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
if(isset($_POST["envoi"])) {

if ($target_file == "upload/") {
$msg = "Aucun fichier selectionné";
$uploadOk = 0;
}



else if (file_exists($target_file)) {
$msg = "Fichier déjà existant.";
$uploadOk = 0;
}

else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Seuls les formats JPG, JPEG, PNG & GIF sont autorisé.";
$uploadOk = 0;

}

else if ($_FILES["fileToUpload"]["size"] > 5000000) {
$msg = "Fichier trop large.";
$uploadOk = 0;
}


else if ($uploadOk == 0) {
$msg = "Erreur votre image n'a pas bien été reçu";

} else {

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
$msg = "Le fichier ". basename( $_FILES["fileToUpload"]["name"]). " a bien été reçu";
}

}

}
?>
<html>
<head>
<meta charset="UTF-8">
<link href="style.css" type="text/css" rel="stylesheet">
<title>Enregistrement</title>
</head>
<body>
<div class="Table">
<fieldset>
<legend>
<h1 id="Table"><b>Éditer</b></h1>
</legend>
<form method="post" action="connect.php" enctype="multipart/form-data">
<table>
<tr>
<td>Régie* :</td>
<td>
<select id="s" name="regie">
<option value="Choisissez"></option>
<option value="test1">Test 1</option>
<option value="test2">Test 2</option>
</select>
</td>
</tr>
<tr>
<td>Annonceur* :</td>
<td>
<select id="s" name="annonceur">
<option value="Autres"></option>
<option value="test2">Test 2</option>
<option value="test1">Test 1</option>
</select>
</td>
</tr>
<tr>
<td>Catégorie* :</td>
<td>
<select id="s" name="categorie">
<option value="Catégorie"></option>
<option value="test1">Test 1</option>
<option value="test2">Test 2</option>
</select>
</td>
</tr>
<tr>
<td>Titre* :</td>
<td><input size="50px" name="titre" type="Text"></td>
</tr>
<tr>
<td>Lien* :</td>
<td><input size="50px" name="lien" type="Text"></td>
</tr>
<tr>
<tr>
<td> Selectionnez l'image : </td>

<td> <input size="50px"type="file" name="fileToUpload" id="fileToUpload"></td>
</tr>
<td>Nombre de passage* :</td>
<td><input size="50px" name="nombrepassage" type="Text"></td>
</tr>
<tr>
<td>Date de fin :</td>
<td><input name="datefin" type="Date" value="jj/mm/aaaa"></td>
</tr>
<tr>
<td></br></br></br><input type="submit" name="envoi" id="envoi" value="Envoyer">
</tr>
</form>
</div>
</fieldset>
</body>
</html>

<?php 
require 'index.php';


if(isset($_POST['regie'])) $regie=$_POST['regie'];
else $regie="";

if(isset($_POST['annonceur'])) $annonceur=$_POST['annonceur'];
else $annonceur="";

if(isset($_POST['categorie'])) $categorie=$_POST['categorie'];
else $categorie="";

if(isset($_POST['titre'])) $titre=$_POST['titre'];
else $titre="";

if(isset($_POST['lien'])) $lien=$_POST['lien'];
else $lien="";

if (isset($_FILES['fileToUpload'])) $image=$_FILES['fileToUpload'];
else $image="";



if(isset($_POST['nombrepassage'])) $nombrepassage=$_POST['nombrepassage'];
else $nombrepassage="";

if(isset($_POST['datefin'])) $datefin=$_POST['datefin'];
else $datefin="";


if(empty($regie) OR empty($annonceur) OR empty($categorie) OR empty($titre) OR empty($image) OR empty($nombrepassage) OR empty($datefin))
{
echo '<font color="red">Attention, aucun champs ne peut rester vide !</font>';
}


else
{

$db = mysql_connect('localhost', 'root', 'SaadBn159753') or die('Erreur de connexion '.mysql_error());


mysql_select_db('geomedia',$db) or die('Erreur de selection '.mysql_error());


$sql = "INSERT INTO Banner(Régie, Annonceur, Catégorie, Titre, Lien, Image, Nombre_Passage, Date_Fin ) VALUES('$regie','$annonceur','$categorie','$titre', '$lien','$target_file','$nombrepassage','$datefin')";


mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());


echo 'Vos infos ont bien été ajoutées.';

mysql_close();
}

?>
Messages postés
6114
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
19 octobre 2020
1 326
slt

je ne connais pas wamp, mais je sais qu'il faut autoriser les rechargements !
tu as bien fait ce qu'il fallait sur apache ?
Messages postés
24
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
15 novembre 2016

Oui, j'ai déjà travailler sur wamp sur plusieurs projet, et pour celui là j'ai juste le problème sur le champ Image, tout les autres champs sont insérés dans la base de données.
Messages postés
24
Date d'inscription
mardi 1 novembre 2016
Statut
Membre
Dernière intervention
15 novembre 2016

Bonjour astuce72 le problème a été résolu grâce à ton aide merci beaucoup !
Il me fallait juste retaper le code manuellement et corriger quelques petites erreurs.