Envoie d'image en php

Résolu/Fermé
Utilisateur anonyme - 19 avril 2010 à 21:29
a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 - 19 avril 2010 à 22:36
Bonjour,

sur mon site j'ai un formulaire avec des informations et 3 images. je décide donc de stocker les infos sur la base de donnée et le chemin des images...

j'ai créer une table pour les infos et une autre table pour les noms des images --> pour ne pas aveoir deux images appeler la meme chose.


voila mon formulaire
_____________________________________________________

<form action="new_machine.php" method="POST" ENCTYPE="multipart/form-data">
Nom de la machine : <input type="text" name="nom"/>
Type de pliage : <input type="text" name="pliage"/>
Vitesse : <input type="text" name="vitesse"/>
Dimension : Min <input type="text" name="dim_min"/>
Max <input type="text" name="dim_max"/>
Image 1 : <input type="file" name="img1"/>
Image 2 : <input type="file" name="img2"/>
Image 3 : <input type="file" name="img3"/>
Option : <input type="text" name="option"/>
Description :
<textarea name="description" cols="65" rows="6"></textarea>
<input type="Submit" name="envoyez" value="Nouvelle Machine"/>

</form>
_____________________________________________________



après je vais sur new_machine.php et je marque sa
_____________________________________________________

$nom = $_POST['nom'];
$pliage = $_POST['pliage'];
$vitesse = $_POST['vitesse'];
$dim_min = $_POST['dim_min'];
$dim_max = $_POST['dim_max'];
$option = $_POST['option'];
$description = $_POST['description'];

$base = Mysql_connect("localhost", "...", "");
Mysql_select_db ('...', $base);

$sql = 'SELECT nombre FROM nombre_images';
$req = mysql_query($sql) or die ('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());

while ($data = mysql_fetch_array($req))
{
$img0 = $data['nombre'];
}

$img1 = $img0 + 1;
$img2 = $img1 + 1;
$img3 = $img2 + 1;
$chemin = "images/contenu/machines/";

move_uploaded_file($FILES['img1']['tmp_name'], $contenu.$img1);
move_uploaded_file($FILES['img2']['tmp_name'], $contenu.$img2);
move_uploaded_file($FILES['img3']['tmp_name'], $contenu.$img3);


mysql_query('INSERT INTO machine_ocase VALUES("", "'.$nom.'","'.$img1.'", "'.$img2.'", "'.$img3.'", "'.$pliage.'", "'.$vitesse.'", "'.$dim_min.'", "'.$dim_max.'", "'.$option.'", "'.$description.'")');
Mysql_query('UPDATE nombre_images SET nombre='.$img3.'');
mysql_close();
_____________________________________________________


j'ai deux problème

1. sa ne me mets aucune image dans le dossier selectionner

2. dans ma abse de donnée mon image et appeller par exemple "5" mais il n'y a pas son extention avec donc lors de l'affichage de l'image sa ne joue pas... il y a t'il un moyen pour récuperer l'extention de l'image entrée dans le formulaire ?

A voir également:

3 réponses

a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 217
19 avril 2010 à 21:54
Salut,

Enfait tes deux problèmes viennent du même endroit, ton upload d'images.

Je te propose mon script d'upload :
Il ne faut pas qu'il y ai d'espace dans le nom de l'image.

if($ajout == "1"){


	// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
	if (isset($_FILES['image1']) AND $_FILES['fichier_up']['error'] == 0)
	{
	
		
	// Testons si le fichier n'est pas trop gros (10Mo max)
        if ($_FILES['fichier_up']['size'] <= 10000000)
        {
        
        
        
        $infosfichier = pathinfo($_FILES['image1']['name']);
        $extension_fichier = $infosfichier['extension'];
		$extensions_autorisees = array('jpg', 'JPG', 'jpeg', 'JPEG', 'gif', 'GIF', 'PNG', 'png');
        $nom_image = $_POST['nom'];
		$nom_fichier_complet = "{$nom_image}.{$extension_fichier}";
		
		
		$repertoire = "images/contenu/machines/";
		

        	if (in_array($extension_fichier, $extensions_autorisees))
        	{
        	// On peut valider le fichier et le stocker définitivement
                        move_uploaded_file($_FILES['image1']['tmp_name'], 'images/contenu/machines/'.$nom_fichier_complet);
                        
                       $url_image = "images/contenu/machines/{$nom_fichier}.{$extension_fichier}";


C'est la variable $url_image que tu peux mettre dans ta base de donnée.

Cordialement
0
Utilisateur anonyme
19 avril 2010 à 22:33
wOOAAAA Super merci ... j'ai un peu adapter a ma sauce parce que sa sera que l'administrateur qui pourra incérer des image donc pas besoin de tout vérifier mais autrement sa ma super aider...


Grand merci à toi :D
0
a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 217
19 avril 2010 à 22:36
Waou, je m'attendais pas à ce que le premier feedback soit aussi positif. Ravi d'avoir pu t'aider.

Bien entendu, pour les vérifications, à toi de voir
Perso, je les mets comme ça, je mets des else plus bas avec un message d'erreur différent qui, en cas d'erreur, me permet de savoir illico d'où vient le soucis.

Mais elles ne sont pas obligatoire.

Bonne soirée, et bonne continuation pour ton site.

Cordialement.
0