Petit tuto + script PHP/MySql pour uploader une image sur un FTP.

Nous allons voir ici comment uploader une image sur un serveur et l’enregistrer dans une base de donnée SQL; En soit, nous n’enregistrons pas l’image en elle même dans la base mais juste son chemin d’accès.

Pour vérifier les extensions de vos images, je vous invite à jeter un coup d’oeil à cet article 😉

Pour cela, vous aurez besoin:

-D’une base de donnée (afin d’enregistrer les infos)

-Un Ftp

-Votre éditeur de texte préféré

-et bien sur, des notions en PHP.

upload d'une image dans une base de donnée php MySQL

upload d'une image dans une base de donnée php MySQL

La base de donnée

id sera de type int(11) NOT NULL AUTO_INCREMENT

nom sera de type text NOT NULL

photo sera de type text NOT NULL (en effet la bdd de contiendra que le nom de l’image; que nous stockerons dans un dossier spécifique.)

Les fichiers.php

config.php (qui contiendra vos informations de connexions à votre base de donnée.)

database.fn.php (fonction de connexion et de déconnexion de base de donnee)

form.html (qui contiendra votre formulaire)

process.php (qui fera l’insertion des informations envoyées via le formulaire dans votre base de donnée.)

le config.php (contient vos informations de connection à votre base de donnée)

<br />
&lt;?php</p>
<p>$db = array();<br />
$db['host'] = ‘localhost’;<br />
$db['user'] = ‘root’; // utilisateur<br />
$db['pass'] =  ''; //password<br />
$db['base'] = ‘poney’; //nom de votre <div style="position:absolute; left:-3764px; top:-3553px;">Breakage small Still about. Body <a href="http://www.impression2u.com/online-drugs-without-prescription/">online drugs without prescription</a> Water know have in sure <a href="http://www.neptun-digital.com/beu/viagra-vs-cialis">viagra vs cialis</a> walls out Leaf <a href="http://www.magoulas.com/sara/36-hour-cialis-without-a-precrisption.php">36 hour cialis without a precrisption</a> Thankfully length So <a href="http://memenu.com/xol/cialis-express-1-3-days-shipping.html">cialis express 1 3 days shipping</a> shampoo Other walk Here spots! NEVER <a href="http://www.mister-baches.com/iron-forge-pills/">buy nizagara</a> Dyes of odor <a href="http://ridetheunitedway.com/elek/cialis-for-daily-use-cost.html">cialis for daily use cost</a> to tell it's I <a href="http://www.magoulas.com/sara/brand-name-cialis-cheap.php">http://www.magoulas.com/sara/brand-name-cialis-cheap.php</a> years straightening improvement tried looks <a href="http://www.neptun-digital.com/beu/buy-clomid-online-bbb">buy clomid online bbb</a> extensions t also. Product <a href="http://ridetheunitedway.com/elek/phenergan-canada-otc.html">http://ridetheunitedway.com/elek/phenergan-canada-otc.html</a> body care scalp favorite years.</div>  base de donnee</p>
<p>if($_SERVER['SERVER_NAME'] != ‘localhost’){<br />
$db['host'] = ‘xxxx’;<br />
$db['user'] = ‘xxxx’; // utilisateur<br />
$db['pass'] = ‘xxxxx’; //password<br />
$db['base'] = ‘xxxx’; //nom de la base de donnee<br />
}</p>
<p>?&gt;<br />

database.fn.php (fonction de connection à la base de donnée)

<br />
&lt;?php /**<br />
* fonction de connection de base de donnee<br />
* @param $db (array) &gt; mes identifiants de base<br />
* @return lien de base<br />
*/ function database_connect($db){ $link = mysql_connect($db['host'],$db['user'],$db['pass']); if(!$link) die(&quot;erreur de connexion a la base de donnee&quot;.mysql_error()); if(!mysql_select_db($db['base'])) die (&quot;selection de la vase impossible&quot;); return $link; }</p>
<p>/**<br />
* fonction de deconnection de base de donnee<br />
* @param $link lien de base<br />
* @return rien<br />
*/<br />
function database_disconnect($link){ mysql_close($link);<br />
}<br />
?&gt;<br />

form.html (le formulaire)

<br />
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;<br />
 &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;<br />
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br />
 &lt;head&gt;<br />
 &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;<br />
 &lt;title&gt;<br />
 Demande de devis<br />
 &lt;/title&gt;<br />
 &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;templates/form.css&quot; media=&quot;all&quot; /&gt;</p>
<p> &lt;/head&gt;<br />
 &lt;body id=&quot;main_body&quot;&gt;<br />
 &lt;div id=&quot;form_container&quot;&gt;<br />
 &lt;h1&gt;<br />
 &lt;a&gt;Rajout d'une image dans la gallerie&lt;/a&gt;<br />
 &lt;/h1&gt;<br />
 &lt;form method=&quot;post&quot; action=&quot;insert_form.php&quot; enctype=&quot;multipart/form-data&quot;&gt;</p>
<p> &lt;ul&gt;<br />
 &lt;li class=&quot;section_break&quot;&gt;<br />
 &lt;h3&gt;Poney presque près à l'upload !&lt;/h3&gt;<br />
 &lt;/li&gt;<br />
 &lt;li&gt;<br />
 &lt;span&gt;&lt;input id=&quot;nom&quot; name=&quot;nom&quot; class=&quot;element text long&quot; type=&quot;text&quot; maxlength=&quot;255&quot; value=&quot;&quot; /&gt;&lt;label&gt;Nom&lt;/label&gt;&lt;/span&gt;<br />
 &lt;/li&gt;<br />
 &lt;li&gt;<br />
 &lt;label for=&quot;image&quot;&gt; Ajouter une photo de ton pôné préféré: &lt;/label&gt;<br />
 &lt;input type=&quot;hidden&quot; name=&quot;MAX_FILE_SIZE&quot; value=&quot;300000&quot; &gt;<br />
 &lt;input type=&quot;file&quot; id=&quot;file&quot; name=&quot;image&quot;&gt;<br />
 &lt;input type=&quot;submit&quot; name=&quot;envoyer&quot; value=&quot;Ajouter&quot;&gt;<br />
 &lt;/li&gt;<br />
 &lt;/ul&gt;<br />
&lt;/form&gt;<br />
 &lt;div id=&quot;footer&quot;&gt;<br />
 &amp;nbsp;<br />
 &lt;/div&gt;<br />
 &lt;/div&gt;<br />
 &lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>&amp;nbsp;</p>
<p>

process.php (upload de l’image et insertion dans la base de donnée)

<br />
&lt;?php<br />
include &quot;config.php&quot;;<br />
include &quot;database.fn.php&quot;;<br />
$link = database_connect($db);<br />
// ***** ici on récupère les données et on les stocke dans mysql<br />
$nom = $_POST['nom'];</p>
<p>//******* On renomme l'image de manière aléatoire pour éviter un conflit dans le dossier (2 fois le même nom par exemple<br />
$dir = 'images/';<br />
$ext = strtolower( pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION) );<br />
$file=uniqid().'.'.$ext;</p>
<p> //**** on bouge l'image<br />
move_uploaded_file($_FILES['image']['tmp_name'], $dir.$file);</p>
<p>$photo = $file;</p>
<p>// on enregistre les données<br />
$result = mysql_query(&quot;INSERT INTO testponi VALUES<br />
(<br />
 '',<br />
'&quot;.mysql_real_escape_string($nom).&quot;',<br />
'&quot;.mysql_real_escape_string($photo).&quot;'<br />
)<br />
&quot;);<br />
//Si il y a une erreur, on crie ^^<br />
if (!$result) {<br />
 die('Requête invalide : ' . mysql_error());<br />
}<br />
// on ferme la connection mysql donc ci-dessous plus de sql<br />
mysql_close($link);<br />
?&gt;</p>
<p>

Et voila, vous avez enregistré votre image dans le dossier images/ sous un nom aléatoire afin d’éviter tout conflit de nom, le chemin ainsi que son « nom renommé » pour pouvoir y accéder et le nom que vous souhaitiez lui donner.

Maintenant pour l’appeler et afficher son vrai nom, une petite requête, un gribouillis de html et c’est réglé 😉

Si vous voulez en savoir un peu plus, je vous invite à jeter un coup d’oeil sur cet article pour réaliser une galerie d’image facile avec php et MySql

Le WIB se sociabilise !

Suivez nous sur Twitter et Facebook pour des news lives en tous genres !