golant
Messages postés6Date d'inscriptionmercredi 27 décembre 2006StatutMembreDernière intervention28 octobre 2009
-
18 mai 2009 à 01:33
golant
Messages postés6Date d'inscriptionmercredi 27 décembre 2006StatutMembreDernière intervention28 octobre 2009
-
24 sept. 2009 à 10:03
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
<hr />
<?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>
Et voilà le formulaire dans lequel vous devez récupérer le nom de l'image (via php après upload) :
<form name="form_fichier">
</form>
Lors du click sur "valider cette image", on ferme la pop-up et on sauvegarde le nom de l'image téléchargée pour le mettre dans le champ "photo" du formulaire (ici add.php) qui sera envoyé.
Ensuite, pour l'affichage, on récupère le nom de l'image dans la base et, connaissant le dossier d'upload, on peut facilement l'afficher !