Bonsoir,
Novice en PHP, je me retrouve actuellement face à un problème liés à l'Upload d'image sur mon serveur et sauvegarde de l'URL dans une bdd. Je vous explique.
Je suis en train de réaliser une interface de CMS (gestion de contenu) par laquelle l'utilisateur pourra notamment rentrer une news pour son site. Les données rentrées sont stockées sur une table mysql avec les champs suivant : id - date - titre - texte - photo. Le champ photo est censé contenir l'url d'une image stockée sur mon serveur. (Je n'ai pas choisi la solution du stockage de la photo sous forme binaire dans ma table car trop lourd.)
Ma page contient un formulaire contenant les champs date - titre - texte - photo.
Lors de la validation du formulaire, il envoie tout sur ma table. Jusque là tout fonctionne.
Mon problème concerne ce champ photo. J'ai ajouté à coté de ce champ une icone renvoyant à une pop-up permettant à l'utilisateur d'uploader l'image depuis son ordinateur. L'upload fonctionne correctement.
Je voudrais juste que, après l'upload, le nom de l'image ou même l'url complete de l'image se mette dans le champ "photo" de mon formulaire. Je ne sais pas faire cela.
Actuellement, j'affiche les données relatives à la photo uploadée dans la Pop-up et l'utilisateur doit copier et coller manuellement le nom de l'image dans le champ "photo" du formulaire.
Vous me suivez ? En fait, il faudrait que directement après l'upload, mon champ se remplisse automatiquement lorsque je ferme ma pop-up.
Si vous pouviez m'aider ça serait vraiment sympa
!
voilà mon code :
mon formulaire d'ajout : add.php
<?php
if (isset($HTTP_POST_VARS)) {
include("base.inc.php");
@mysql_connect ($server, $login, $password)
or die ("Erreur : connexion a la base de donnees impossible");
@mysql_select_db($base)
or die ("Erreur : pas de base de donnees ".$base);
$add_query = "INSERT INTO news ";
$k = 0;
while(list($variable, $value) = each($HTTP_POST_VARS)) {
//make the query
if ($k) {
$left_query .= ", $variable";
$right_query .= ", '$value'";
} else {
$left_query = "($variable";
$right_query = "('$value'";
}
$k++;
}
$add_query .= $left_query.") VALUES ".$right_query.")";
$result_query = mysql_query ($add_query);
mysql_close();
}
?>
<html>
<head>
<title>add page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.Style1 {font-family: "Trebuchet MS"}
.Style4 {font-size: small; color: #666666; }
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<center>
<form name="add" action="add.php" method="post">
<table>
<tr>
<td><input type="text" name="date" readonly="readonly">
<span class="Style1">Date <span class="Style4">(cliquez sur l'icone pour ajouter <a href="#" onClick=" window.open('pop.php?frm=add&ch=date','calendrier','width=350,height=160,scrollbars=0').focus();"><img src="petit_calendrier.gif" width="14" height="17" border="0"/></a> )</span></span></td>
</tr>
<tr>
<td><input type="text" name="titre">
<span class="Style1">Titre de la News</span></td>
</tr>
<tr>
<td><input type="text" name="texte">
<span class="Style1">Contenu de la News</span></td>
</tr>
<tr>
<td><input name="photo" type="text" value="nomdelimage.jpg">
<span class="Style1">Nom de l'image <span class="Style4">(cliquez sur l'icone pour charger une image <a href="#" onClick=" window.open('upload.php?frm=add&ch=photo','calendrier','width=350,height=350,scrollbars=0').focus();"><img src="petit_appareil.gif" width="21" height="17" border="0"></a>)</span></span></td>
</tr>
<tr>
<td><input type="submit" value="Ajouter cette News"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
ma pop-up de téléchargement : upload.php
<?php
$target = '../../../images/uploads/';
$extension = 'jpg';
$max_size = 100000;
$width_max = 100;
$height_max = 100;
$nom_file = $_FILES['fichier']['name'];
$taille = $_FILES['fichier']['size'];
$tmp = $_FILES['fichier']['tmp_name'];
?>
<html>
<head>
<title>Pop-Up d'Upload</title>
<style type="text/css">
<!--
.Style1 {
font-family: "Trebuchet MS";
font-weight: bold;}
.Style2 {font-family: "Trebuchet MS";}
.Style3 {font-size: small; color: #666666; }
}
-->
</style>
</head>
<body>
<p>
<?php
if(!empty($_POST['posted'])) {
if(!empty($_FILES['fichier']['name'])) {
if(substr($nom_file, -3) == $extension) {
$infos_img = getimagesize($_FILES['fichier']['tmp_name']);
if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size)) {
if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$_FILES['fichier']['name'])) {
echo '<b>Image uploadée avec succès !</b';
echo '<hr />';
echo '<img src="images/uploads/'.$_FILES['fichier']['name'].'" alt="" /><br />';
echo '<b>Fichier :</b> ', $_FILES['fichier']['name'], '<br />';
echo '/!\ copiez ce nom et collez le ensuite dans le champ NOM DE LIMAGE du formulaire /!\ <br />';
echo '<b>Taille :</b> ', $_FILES['fichier']['size'], ' Octets<br />';
echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />';
echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />';
echo '<hr />';
echo '<br /><br />';
} else {
echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br /><br />';
}
} else {
echo '<b>Problème dans les dimensions ou taille de l\'image !</b><br /><br />';
}
} else {
echo '<b>Votre image ne comporte pas l\'extension .jpg !</b><br /><br />';
}
} else {
echo '<b>Le champ du formulaire est vide !</b><br /><br />';
}
}
?>
</p>
<p class="Style1">Envoyer le fichier :</p>
<form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="POST">
<input type="hidden" name="posted" value="1" />
<input name="fichier" type="file" />
<input type="submit" value="Uploader" />
</form>
</body>
</html>