begin process at 2012 02 11 16:39:19
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > UPLOAD D'IMAGE AVEC OPTION (RENOMER - CHOIX EXTENSION - ENREGISTREMENT DANS LA TABLE MYSQL)

UPLOAD D'IMAGE AVEC OPTION (RENOMER - CHOIX EXTENSION - ENREGISTREMENT DANS LA TABLE MYSQL)


 Information sur la source

Note :
8,39 / 10 - par 18 personnes
8,39 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de données Niveau :Expert Date de création :05/11/2002 Date de mise à jour :05/11/2002 14:36:21 Vu / téléchargé :34 460 / 8 816

Auteur : rottweiler

Ecrire un message privé
Site perso
Commentaire sur cette source (101)
Ajouter un commentaire et/ou une note

 Description

un formulaire et une page de 10 lignes de code pour upload renomer et choisir l'extension d'une image le tout enregistrer en même temps dans une base de donnée MYSQL
pourquoi j'ai poster ce code parce que je suis sur que vous apprecirez le court code , la simplisité de sont organisation ,et en plus il sera j'en suis sur un exemple très facile a comprendre pour les personne qui assimile mal ce genre de manipulation .
bien sur un upload d'image souvent on en trouve , mais c'est sois un foutoire de code de 300 ligne sois ya juste le upload
alors la je vous est mis un text pour l'image , un titre , pourquoi pour que vous puissiez facilement creer vos new , albums photo ect..
amusé vous bien et pensser a lire le fichier install.txt.
      



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

EN 1 PAGE RECUPERER LA PROVENANCE D'UN VISITEUR + MYSQL

 Sources de la même categorie

Source avec Zip RECHERCHE DES DOUBLONS DANS UNE TABLE MYSQL EN SÉLECTIONNANT... par aladec2007
[CRON] INSERT ON DUPLICATE KEY UPDATE par pierreSabatier
Source avec Zip CLASS MYSQL 5/PHP5 AVEC GESTION DES EXCEPTION ET DES REQUÊTE... par devil_may_cry
Source avec Zip Source avec une capture MOTEUR DE RECHERCHE SUR BASE MYSQL FULLTEXT ET BOOLEAN AVEC ... par cod57
SYSTÈME DE PAGINATION AVEC BDD ET IMAGES (FICHIERS) par begueradj

Commentaires et avis

Commentaire de rottweiler le 05/11/2002 14:10:29

acctuellement je le repare j'ai fais une petite error y'en a pas pour longtemp ;)

Commentaire de rottweiler le 05/11/2002 14:19:41

voila c'est operationel petit faute de frappe dans mon formulaire ;) reparer

Commentaire de rottweiler le 14/11/2002 01:59:34

bon en travaillant sur la version 2 de mon code j'ai vu que j'avais fais ca un peut vite et j'ai pas tester j'ai put voir que j'avais fais une error dans la requete je vous prie donc de modifier description$ par $description :/  ensuite dans le fichier txt d'installation ya aussi une error alors voila le bon

CREATE TABLE images (
  id mediumint(9) NOT NULL auto_increment,
  file varchar(13) NOT NULL default '',
  titre tinytext NOT NULL,
  description mediumtext NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;

bien sur pensser bien a mettre vos paramettre de connection
'localhost' 'root' ''
et votre base bien sur
puis creer un répertoire nomé (IMG) dans la racine de votre www
encore mille escuse si je vous est fais perdre du temps

Commentaire de rottweiler le 15/11/2002 14:41:56

vous remarquerer que j'avais mis PRIMARY KEY  (id_img) c'est la que javais fais une error voila la modif -> PRIMARY KEY  (id)

Commentaire de Jefflec le 19/02/2003 21:56:53

Salut,
C'est cool, je cherchais un code pour renommer les fichiers d'upload...
Par contre, si je peux te donner un conseil, c'est de faire attention à l'orthographe, pis aussi mettre les balises HTML, BODY etc... pour faire un code "propre".
J'espère que tu m'en voudras pas d'être un peu pointilleux... ;o)
et merci pour ta contribution,
Jefflec

Commentaire de rottweiler le 20/02/2003 09:25:09

:) je t'en veut pas c'est vraix ce que tu dit

Commentaire de mkknot le 27/04/2003 23:51:08

G un PB !!! Ca marche po sur mon site (en local par contre nikel !), G toujours ce pb de permission, qqn peut m'aider SVP ?
Sinon je me suis permis de rajouter un pti controle ...
Getimagesize va cherche des infos sur l'image (taille,type ..;etc )
La colone [2] contient le type de l'image
Si il est égal à 2 c'est un Jpeg , si c'est 1 c'est un Gif ...etc


$controle = getimagesize($HTTP_POST_FILES["file"]["tmp_name"]);
if ($controle[2] == 2)
{   move_uploaded_file($HTTP_POST_FILES["file"]  ["tmp_name"],$chemin);
  
   mysql_query("INSERT INTO $table (file, titre, description)  VALUES('$newname','$titre','$description');");
   echo 'Envoi terminé, merci !';

Commentaire de sharkit le 23/09/2003 10:19:21

zalut
Félicitations pour ce script ( j'ai bien ramé avant de trouver ce qu'il me falait !!! )
Je l'ai intégré à un espace membres et il fonctionne à merveilles.
Mais ( et oui, il y a toujours un mais ... ) je bloque au moment où l'inscis à l'espace membres veut modifier sa photo, je ne vois pas encore commenta faire. Alors si vous avez de bonnes idées, elles sont les bienvenues ...
Merci et bravo !!!
Sharkit

Commentaire de rottweiler le 25/09/2003 22:59:10

edite les donnés en session et écrase la photo d'origine par le même nom tout simplement.
si le gas il a appeler ca photo toto.jpg
fait en sorte qu'il re-envoie une photo nomé toto.jpg

voilà

Commentaire de DarkBoss le 01/10/2003 19:47:04

hum pour ton directory de linstall fodré just mettre
if (chdir("img"))
{
MKDIR("img");
}

Commentaire de Marius5962 le 17/10/2003 11:55:25

Bonjour

J'ai ajouter les champs du formulaire dans mon script!
j'ai aussi ajouter les champs,dans le fichier sql, mais quand j'essaye le nouveau script il me dit:
Column count doesn't match value count at row 1

Qqn peut m'aider?
Je mets aussi ma table
CREATE TABLE images (
id mediumint(20) NOT NULL auto_increment,
pseudo varchar (23) NOT NULL,
email varchar (50) NOT NULL,
dat varchar (10) NOT NULL,
departement varchar (2) NOT NULL,
ville varchar (20) NOT NULL,
titre varchar (30) NOT NULL,
rubrique varchar(20) NOT NULL,
texte varchar (250) NOT NULL,
pass varchar (10) NOT NULL,
file varchar(13) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;

Un grand merci d'avance
Un débutant

Commentaire de Marius5962 le 17/10/2003 14:58:25

Se probleme est resolut,
maintenant, les photos ne se copie pas dans le dossier!
Je precise qu'il n'y a aucune erreur mysql!?
Si qqn peut m'aider a resoudre ce probleme,sa serait sympa de sa part!
Car je RAME

Commentaire de Marius5962 le 20/10/2003 14:17:43

S'est bon!
Probleme resolut :o)

Commentaire de hopilaeupeur le 19/01/2004 14:47:25

Salut !
J'ai récupéré le code source et tout marche nickel. Maintenant il me reste un petit probleme : j'aimerai pouvoir effacer les images (du côté de la base no soucy) mais elles restent sur le ftp et occupent de la place pour rien. Si quelqu'un a une solution... Merci bien

Commentaire de Le Lapin le 26/05/2004 16:54:14

Salut à tous,

c la premiere fois que je viens et que je fais appel au service de qqn...
Se script m'intéresse mais malheureusement pour moi je n'arrive pas à le faire tourner correctement. La creation de la base OK (avec les modifs dites plus haut), l'affichage pour recuperer l'image c OK, OK egalement pour la connexion base (la je suppose mais normalement c bon), mais le code de upload.php affiche des erreurs :

Notice: Undefined variable: rename in c:\program files\easyphp1-7\www\uploadimages\upload.php on line 7

Notice: Undefined variable: ext in c:\program files\easyphp1-7\www\uploadimages\upload.php on line 7

Warning: move_uploaded_file(./img/): failed to open stream: Permission denied in c:\program files\easyphp1-7\www\uploadimages\upload.php on line 13

Warning: move_uploaded_file(): Unable to move 'C:\Program Files\EasyPHP1-7\tmp\php9.tmp' to './img/' in c:\program files\easyphp1-7\www\uploadimages\upload.php on line 13

ETC ...

Je suis sous XP, j'utilise easy PHP 1.7 pour info.

Merci par avance.

Je remercie egalement rottweiler pour toutes les étapes et le code qui a été détaillé.

Commentaire de Le Lapin le 26/05/2004 17:43:31

Re bonjour c lapin,

J'ai trouvé l'erreur, elle était toute simple, je m'excuse :
je m'explique il fallait rajouter du code entre mysql_select_db("photos"); et //newname voudra dire nom+ext qui...

ce code est juste en dessous pour info

//votre table
mysql_select_db("photos");

//Permet de recupérer les valeurs envoyé de form1.php
$ext =$_POST[ 'ext' ];
$rename =$_POST[ 'rename' ];
$titre =$_POST[ 'titre' ];
$description =$_POST[ 'description' ];

//newname voudra dire nom+ext qui arriverons du formulaire biensur ex:monchien/.gif
$newname =($rename.$ext);

Voila,

Merci encore à rottweiler pour les explications de son code

PS : Pour les débutants, je suis une bille en prog et j'ai réussi à faire tourner le code (d'ailleur c le seul code d'upload image que g reussi à faire tourné)

@+

Commentaire de rottweiler le 28/05/2004 15:57:36

promit je rebidouille le code pendant une pause

merci a tous les gas

Commentaire de slog9 le 10/06/2004 17:56:09

Slt!
Merci pour ta source, super simple et sans prise de tete avec connection ftp, login & mdp... Bref cZest nickel.

Jte laisse lZadresse du site si tu veux voir ce que ca donne, mais tu pourra pas utiliser ton script, je mZen suis servi pour la gestion des photos du site... Si tu pouvais également me laisser un avis exterieur, jZten remercie dZavance :)

http://www.grundschule-toitenwinkel.de

Commentaire de rottweiler le 10/06/2004 18:05:10

Slt Slog9

il ne marche pas ton lien photo ;)

Commentaire de slog9 le 10/06/2004 18:11:59

dans le site ou pour te connecter au site?...

Commentaire de slog9 le 10/06/2004 18:33:49

Jvois pas, ca fait 2 jours quZil est en ligne, je lZai testé dans tous les sens et normalement ya pas de bugs...
Il a juste un peu de mal à tourner, g un peu abusé sur les graphismes...

Commentaire de 0ri0n le 08/07/2004 11:32:25

J'ai le meme probleme que "mkknot" :

"G un PB !!! Ca marche po sur mon site (en local par contre nikel !), G toujours ce pb de permission, qqn peut m'aider SVP ?"

Warning: rename(/tmp/php9ToLjT,./img/): Not a directory...

T'as du lui répondre mais je n'arrive pas a voir, ça bugé en dessous, le pb vient de ou ? Parce que en effet en local ca marche nikel, et aussi moi j'aimerai rajouter une fonction pour que si j'envoie une image qu'a le meme nom ça érase l'existante. Merci A++

Commentaire de 0ri0n le 08/07/2004 12:20:25

je crois avoir compris, en fait ça copie le temp dans la racine de mon hébergeur, et a cet endroit je ne suis pas autorisé (normal).

Permission denied in /srv/www/vhosts/agence-immobil...

Je me trompe peut etre, comment arranger ça et choisir la destination du tmp ? Merci, sinon, nikel le script, c'est un des seuls qui marchent

Commentaire de 0ri0n le 08/07/2004 13:07:27

Yessss j'ai trouvé fallait, dans le client ftp, faire clic droit CHMOD et mettre écriture partout :)

Commentaire de rottweiler le 18/07/2004 02:38:36

bein voilà comme tout ftp qui ce respect il faut mettre le répertoire qui dois recevoir une ecriture "creaton fichier"
dois etre mis en CHMOD 777

Commentaire de rottweiler le 18/07/2004 02:46:49

sinon pour ecrasé une photo déjà existante moi je propose la formule simple de checking existance ;)

if(!$ID) { // nouvel enregistrement
                  $query = "INSERT INTO $Table_image ";
                  $query.= "(Valide,Type,Photo) VALUES(";
                  $query.= "\"0\",";
                  $query.= "\"$ext\",";
                  $query.= "\"$nomphoto\" ";
                  $query.= ")";

                  $message = "photo ajoutée.";

                  }else{ // mise a jour de la photo

                  $query = "UPDATE $Table_image SET ";
                  $query.= "Valide=\"0\",";
                  $query.= "ext=\"$ext\",";
                  $query.= "nomphoto=\"$nomphoto\" ";
                  $query.= "WHERE ID=\"$ID\" ";

                  $message= "photo modifiée.";
                  }

La matrix à parlé ;)

Commentaire de 0ri0n le 20/07/2004 18:36:49

merci mais snif ! j'ai acheté un hébergement chez online.net et le CHMOD  777 n'est pas accepté


4- La documentation de mon script me dit que je dois donner les droits d'écriture aux scripts PHP, que dois-je faire? Je dois faire un CHMOD pour permettre l'écriture et mon client FTP me dit que c'est impossible.
R : Les scripts PHP ont tous les droits d'écriture et de lecture dans le site sur lequel ils sont exécutés.
Par défaut, il n'est pas nécessaire de manipuler les droits.

Commentaire de rottweiler le 31/07/2004 18:10:07

c'est obligé surtout cher online il sont bien eux d'après mes rumeurs.

Commentaire de thonypc le 31/07/2004 21:08:47

ca marche impecable ;) mais quelqu'un aurait une modif a faire pour que ca n'écrase pas un fichier existant?

merci

Commentaire de bozdat le 29/09/2004 11:48:48

nickel rott super script ça faisait longtemps que j'en cherchais un qui faisait l'upload et l'insert dans la base dans le même temps

maintenant il me manque plus qu'à ajouter une fonction de création de vignette et le tour est joué pour moi (souhaitez moi bonne chance je suis une bille en php)

si j'y parviens je mettrais le code qu'on pourra prendre comme une extension au super script de rott

Commentaire de bozdat le 29/09/2004 13:19:16

voilà tout marche nickel je bosse sur un serveur free donc ça devrait aussi marcher ailleurs

j'ai donc rajouter la fonction de redimensionnement de l'image uploadée et insérée dans la base (un champs de plus que celle proposée par rott)

amusez vous bien
// on récupère la taille de l'image

$taille = getimagesize("$chemin");
$h_i = $taille[1];
$w_i = $taille[0];

Commentaire de rottweiler le 21/10/2004 19:03:22

;) merci merci

Commentaire de pyranhaz le 30/11/2004 18:33:09

Pourrait-on le plus simplement du monde ajouter une fonction qui gère les extensions autorisés et le poids des images AVANT le upload ???

pour ma part, je pense qu'un poids maximal de 50 ko. serait amplement suffisant...

Merci d'avance

Commentaire de rottweiler le 30/11/2004 23:29:54

c'est claire que tu peu !
mais l'interet du scripts en 10 lignes n'a plus ca valeur.
perso je peu te faire ca en moin 1 heure mais à quoi bon tu as déjà une tonne d'exemple sur le net.

Commentaire de Blacknight91titi le 31/03/2005 18:06:00

Tu oubli un truc.
free n'autorise pas la modification des pages perso comme sa
donc sa marche pas pour moi

Commentaire de kitopabe le 07/05/2005 14:09:18

bjr
quelqu'un peut il m'aider les photos n'arrive pas dans le dossie img et je n'ai aucune erreur sql
merci d'avance
pat

Commentaire de rottweiler le 27/07/2005 20:26:45

kitopabe la tu créer et est t il en chmod 777 ?

Commentaire de yvonig le 05/08/2005 02:00:49

salut !
j'ai le meme pb que lapin il y a un an :

Notice: Undefined variable: rename in c:\program files\easyphp1-7\www\upload\upload.php on line 7

Notice: Undefined variable: ext in c:\program files\easyphp1-7\www\upload\upload.php on line 7

Notice: Undefined index: file in c:\program files\easyphp1-7\www\upload\upload.php on line 13

Notice: Undefined variable: titre in c:\program files\easyphp1-7\www\upload\upload.php on line 15
envoye terminé

j'ai testé ca solution et maintenant j'ai :

Notice: Undefined index: ext in c:\program files\easyphp1-7\www\upload\upload.php on line 7

Notice: Undefined index: rename in c:\program files\easyphp1-7\www\upload\upload.php on line 8

Notice: Undefined index: titre in c:\program files\easyphp1-7\www\upload\upload.php on line 9

Notice: Undefined index: description in c:\program files\easyphp1-7\www\upload\upload.php on line 10

Notice: Undefined index: file in c:\program files\easyphp1-7\www\upload\upload.php on line 20
envoye terminé

une idée serai la bien venue, ou si quelqu un a deja reussi à faire marcher ce code je serai enchanté d'admirer ses prouesses...

merci d'avance

Commentaire de rottweiler le 05/08/2005 14:10:33

c'est pourtant claire , tes variables sont indefinies
lapin ta donné la réponse , ce code marche à merveille tu trouvera pas plus simple et plus claire.




Commentaire de yvonig le 05/08/2005 15:18:54

je crois avoir appliqué sa solution mais comme je l'explique plus haut j'ai maintenant des undefined index et je suis bloqué...
help!!

Commentaire de yvonig le 05/08/2005 15:24:20

en plus quand j'essay de charger un image via form 1 : j'ai :

Warning: move_uploaded_file(./img/logo.jpg): failed to open stream: No such file or directory in c:\program files\easyphp1-7\www\upload\upload.php on line 20

Warning: move_uploaded_file(): Unable to move 'C:\Program Files\EasyPHP1-7\tmp\php49.tmp' to './img/logo.jpg' in c:\program files\easyphp1-7\www\upload\upload.php on line 20
envoye terminé

si tu avais une solution ?

Commentaire de rottweiler le 05/08/2005 16:03:40

oh la la toi tu es largué et tu avance dans l'inconu !!
bon déjà à tu créer ton repertoire img en CHMOD  777
ensuite au lieu de nous montrer tes error montre nous le code !
tu as surement bouletté dans tes déclarations.

Commentaire de yvonig le 05/08/2005 19:16:13

c'est pas bien de se moquer mais t'as raison je suis largué...
je voyais pas comment faire en local pour les droits sur les repertoires dans windows, alors j'ai tout mis chez ovh, mais toujours lmeme probleme à la ligne 20
voila mon code (ou plutot ton code) :
<?php
//vos paramettre conection
mysql_connect("sql6", "artcomedclick", "yvonig");
//votre table
mysql_select_db("images");
//Permet de recupérer les valeurs envoyé de form1.php
$ext =$_POST[ 'ext' ];
$rename =$_POST[ 'rename' ];
$titre =$_POST[ 'titre' ];
$description =$_POST[ 'description' ];

//newname voudra dire nom+ext qui arriverons du formulaire biensur ex:monchien/.gif
$newname =($rename.$ext);

//chemin voudra dire le chemin de deplacement de l'image (votre repertoire img que vous aurez creer bien sur
$chemin = "./img/".$newname;
//table voudra dire que c'est la table images ;) la vous avez compris loll
$table = "images";
// on balance la maneuvre
move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin);
//et pour finir on même ca dans la base de donnée
mysql_query("INSERT INTO $table (file, titre, description)  VALUES('$newname','$titre','description$');");
echo 'envoye terminé ';
?>
merci encore

Commentaire de yvonig le 06/08/2005 01:37:47

mille pardons...
ca marche : j'avais mis le fichier img dans le mauvais repertoir...
merci encore

Commentaire de rottweiler le 06/08/2005 03:35:45

OMG Déconne pas quand tu met un code évite de mettre tes login ;) tu fais flippé toi ;)

content que tu y sois arrivé, à l'occase en message privé montre moi ton site j'aime bien voir ce qu'on fais de mes codes ;)

par contre la je veux pas te faire peur mais tu est cher ovh et tu as fournis les login et passe à des millier de visiteurs change les vites maintenant.
...
rott

Commentaire de yvonig le 06/08/2005 15:51:41

code changé mais pas de panique c'est un base de test...sinon j essaie de pouvoir proposer d'ouvrir les images en cliquant sur le titre et je n'y arrive pas :
<?php
//vos paramettre conection
mysql_connect("", "", "");
//votre base
mysql_select_db("");

// récupération des données de la table images
$requete = "select * from images";
$envoi = mysql_query($requete);
while($tableau = mysql_fetch_array($envoi))
{
$id = $tableau['id'];
$file = $tableau['file'];
$titre = $tableau['titre'];
$description = $tableau['description'];
$chemin = "./img/".$tableau['file'];
// affichage des données
<a href="$chemin">$id $file $titre </a>";
echo "$description<br>";
}
?>
un petit coup de pouce?

Commentaire de yvonig le 06/08/2005 16:06:45

en fait j'ai fini par trouver
$affich="<a href=\"".$chemin."\">$titre</a>"; //lien
echo $affich; //text du lien

Commentaire de rottweiler le 06/08/2005 17:49:46

c'était pas difficile il faut avant même que tu crèe la dynamique des donnés , savoir comment tu veux afficher une page ou les donnés en question.

Commentaire de yvonig le 09/08/2005 10:42:20

super ca marche, mais car il y a un mais, j'upload les images vers un repertoire au dessus de l'arborescence de mon site ( pour des raisons de securite ) et je ne vois pas comment je pourrai les afficher pour le visiteur ...
une idée???

Commentaire de rottweiler le 09/08/2005 11:59:54

Tout dépandra de ce que tu veux en faire ?
listing
tableau (album photo)
edition sur id (section membre)
etc..

Commentaire de yvonig le 09/08/2005 14:42:47

c'est pour un espace membre individualisé utilisant les sessions, j'ai d'abord cherché à combiner session et .htaccess pour proteger les dossiers contenant les images, mais je n'ai pas trouvé de solutions pour que le visiteur ne rentre qu'une foi son mot de passe. mon idée maintenant c'est de faire l'upload des images au dessus de la racine du site et de les copier dans un dossier temporaire(à la racine) lorsque le visiteur veux les visiter et d'effacer le dossier lorsque le visiteur se delogue ou à intervalle regulier ou à je ne sais quel moment. les images sont en fait des docs relativements  confidentiels.
Une idée serait la bien venue...merci

Commentaire de rottweiler le 09/08/2005 15:53:57

asigne l'ID du membre dans la table photo et a chaque action requete fais un check pour voir si le login et le pass de la session en court est bien = IDMembre de la photo!

de plus si tu as une session tu peu largement verifier si la photo que tu affiche est asigné au membre de la session en court et donc lui autoriser des actions sur celle-ci.

Commentaire de yvonig le 09/08/2005 17:25:50

ca n'empechera pas quelqu'un d'acceder au fichiers par un lien direct?

Commentaire de Blacknight91titi le 09/08/2005 18:07:21

05/11/2002 => 09/08/2005
On pourra pas dire que ta source aura servit a rien ^_^

Blacknight

Commentaire de rottweiler le 09/08/2005 18:27:14

bein si tu code le nom du fichier le mec a meilleur interet à joué au loto :) , au moin il a une chance de galérer pour quelque chose :)


oui Blacknight c'est vraix :)

Commentaire de oki972 le 13/10/2005 19:13:17

Salut à tous!
J'ai un souci, php.ini limite la taille de l'upload a 2Mo, et limite le temps d'exécution d'un script à 30 secondes par défaut.
Pour modifier la deuxieme valeur sans toucher a php.ini j'utilise set_time_limit(0); //pour illimité ou je mets une valeur en secondes.
Est ce qu'il y aura d'apres vous une fonction identique qui permettrait d'augmenter la taille max de l'upload sans passer par le fichier meme php.ini.
Cordialement !

Commentaire de zecristof le 28/10/2005 23:07:55

oki972 => tout dépend si tu es hébergé sur un serveur dédié ou pas. Si c'est le cas, vérifie que le serveur n'est pas en safe mode, auquel cas ton set_time_limit ne sera pas pris en considération ( a voir dans le httpd.conf sur apache ).

Si tu est en mutu, les hébergeurs bloquent le safe_mode du serveur apache pour limiter les abus de script interminables et le mangeage de ressources. Là, mauvaise nouvelle, il n'y a pas de soluces à moins que tu sois bon pote avec ton admin serveur pour le débloquer.

Sinon pour le script, j'ai eu qq soucis pour le mettre en place, il fonctionne très bien mais pour éviter les erreurs en mode test, je recommande dans un premier temps de mettre le $chemin à ../img pour en faire un chemin relatif plutôt que absolu. dans le cadre d'un test ( comme je l'ai fait ) si la racine du site n'est pas déclarée, le script plante. normal.

A bon entendeur, bonne bourre.

Commentaire de tatcrew le 10/11/2005 21:16:18

Salut ton code m'interresse beaucoup, seulement j'ai un ch'tit bug, l'upload marche très bien mais quand je veu la regarder on me donne une erreur :forbidden, ils disent que je n'ai pas les authorisation pour voir l'image et impossible de la faire apparaitre par lien sur une page (si je la dl avec un logiciel ftp, l'image fonctionne sur mon pc)

donc je m'interroge.

Sinon bravo (enfin si quelqu'un trouve réponse a mon bug lol)

Commentaire de tatcrew le 10/11/2005 23:31:12

Je présise que j'ai bien appliquer le chmod 777 sur le dossier, et je viens de me rendre compte que les images uploader via le module on un chmod de 600.

Donc je sais pas d'où vien le bugueu

Commentaire de tatcrew le 11/11/2005 00:11:31

c'est bon j'air résolu mon problème j'ai ajouter ceci vers la fin de la page upload.php

chmod ($chemin, 0755);

Commentaire de plume12 le 18/11/2005 11:55:44

Merci bien, pour ma part tout fonctionne parfaitement, je vais essayer de modifier la taille des images pour éviter d'avoir des images mega grosses.
Bonne journée

Commentaire de Clinton92 le 25/11/2005 21:05:25

J ai un gros probleme le script marcha a merveille en local mais quand je le met sur amen voila ce que ca me donne : merci d avance a tous

Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/.sites/93/site37/web/uploadphoto.php on line 3

Warning: mysql_select_db(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/.sites/93/site37/web/uploadphoto.php on line 5

Warning: mysql_select_db(): A link to the server could not be established in /home/.sites/93/site37/web/uploadphoto.php on line 5

Warning: mysql_query(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/.sites/93/site37/web/uploadphoto.php on line 29

Warning: mysql_query(): A link to the server could not be established in /home/.sites/93/site37/web/uploadphoto.php on line 29

Warning: Cannot modify header information - headers already sent by (output started at /home/.sites/93/site37/web/uploadphoto.php:3) in /home/.sites/93/site37/web/uploadphoto.php on line 30

Commentaire de carabaas le 03/12/2005 23:43:07

Salut tout le monde et surtout a rottweiler. Ton code est super, simple et tout et tout .
Encore merci
++

Commentaire de macmartygan le 30/01/2006 13:22:53

salut rottweiler et tous les atres :)
merci pour le code
je debute en php (comme bien d autres) et je voudrais utiliser ce code ... je l ai remanier a mes besoins et cela donne :

<?php

if (isset($_POST['marque'])
AND isset($_POST['model'])
AND isset($_POST['cylindree'])
AND isset($_POST['kilometres'])
AND isset($_POST['porte'])
AND isset($_POST['carburant'])
AND isset($_POST['annee'])
AND isset($_POST['type'])
AND isset($_POST['prix'])
AND isset($_POST['garantie'])
AND isset($_POST['file'])
AND isset($_POST['rename'])
AND isset($_POST['ext'])) // Si les variables existent
{
    if ($_POST['marque'] != NULL
AND  $_POST['model'] != NULL
AND $_POST['cylindree'] != NULL
AND $_POST['kilometres'] != NULL
AND $_POST['porte'] != NULL
AND $_POST['carburant'] != NULL
AND $_POST['annee'] != NULL
AND $_POST['type'] != NULL
AND $_POST['prix'] != NULL
AND $_POST['garantie'] != NULL
AND $_POST['file'] != NULL
AND $_POST['rename'] != NULL
AND $_POST['ext'] != NULL) // Si on a quelque chose à enregistrer
    {

      mysql_connect("", "", "");
              mysql_select_db("");

    $marque = htmlentities ($_POST['marque']);
            $model = htmlentities ($_POST['model']);
            $cylindree = htmlentities ($_POST['cylindree']);
    $kilometres = htmlentities ($_POST['kilometres']);
    $porte = htmlentities ($_POST['porte']);
    $carburant = htmlentities ($_POST['carburant']);
    $annee = htmlentities ($_POST['annee']);
    $type = htmlentities ($_POST['type']);
    $prix = htmlentities ($_POST['prix']);
    $garantie = htmlentities ($_POST['garantie']);
    $rename=($_POST['rename']);
    $ext =($_POST['ext']);
    $newname =($rename.$ext);
    $chemin =('./img/'.$newname);   //Permet de recupérer les valeurs envoyé

move_uploaded_file($HTTP_POST_FILES['file']['tmp_name'],$chemin);

    mysql_query("INSERT INTO occasions VALUES('','$marque','$model','$cylindree','$kilometres','$porte','$carburant','$annee','$type','$prix','$garantie','$newname')");
        mysql_close();
    }

}
?>

( g viré titre et description )

voila, ma bdd est bonne
mais quan je lance la page j ai un prob.:

Notice: Undefined index: file in c:\inetpub\wwwroot\garage rousseau\newocc.php on line 50

la ligne 50 étant la ligne suivante :move_uploaded_file($HTTP_POST_FILES['file']['tmp_name'],$chemin);


je continue a chercher sur cette page si la solusion a ete deja donnée présédament ...(au cas ou ...mais j ai du caca dans neneuil )

merci a tous
et encore merci pour le code

Commentaire de bm3507 le 07/04/2006 15:00:53

Suis novice et ça marche pô chez moi! sniff, qqun peut m'aider?
mon erreur:


Notice: Undefined variable: rename in c:\program files\easyphp1-8\www\upload\upload.php on line 7

Notice: Undefined variable: ext in c:\program files\easyphp1-8\www\upload\upload.php on line 7

Notice: Undefined index: file in c:\program files\easyphp1-8\www\upload\upload.php on line 13

Notice: Undefined variable: titre in c:\program files\easyphp1-8\www\upload\upload.php on line 15

Notice: Undefined variable: description in c:\program files\easyphp1-8\www\upload\upload.php on line 15
envoye terminé


mon code:

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("photo");
$newname =($rename.$ext);
$chemin = "./img/".$newname;
$table = "images";
move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin);
mysql_query("INSERT INTO $table (file, titre, description)  VALUES('$newname','$titre','$description');");
echo 'envoye terminé ';
?>

ma base de donnée s'appelle: upload et ma table photo


merci à tous pour votre aide

Commentaire de rottweiler le 10/05/2006 01:28:50

c'est pourtant claire , une variable n'est pas définie ;)
elle sont toute appelées au ligne d'error !
regarde bien

Commentaire de titze le 20/05/2006 01:42:22

j'espère que je serez vu!

Y a pas besoin de base de donnée...

<form1.php> que j'ai transformer en <formulaire.html>

<form enctype="multipart/form-data" method="post" action="../up/upload1.php">
  <div align="left">
    <p><br>
      Fichier:
      <input name="file" type="file" value="Choisissez l'image">
      <span class="Style27">Cliquer sur <strong>parcourir </strong>et choisissez l'image sur votre ordinateur    </span></p>
    <p> choisir un nouveau nom
      <input name="rename" type="text" value="1">
      <span class="Style28">Ne pas toucher &quot;1&quot; est le nom de l'image de la page n&deg;1      </span></p>
    <p>type :
      <label>
      <input name="ext" type="radio" value=".jpg" checked="checked" />
jpeg</label>
      <span class="Style28">Ici c'est l'extension comme cela vous pouvez mettre tous types d'images</span></p>
    <p>
      <label></label>
      <input name="submit" type="submit" value="Envoyer" />
      <span class="Style28">Attention si votre image est grosse le temps d'attente sera long (environs 20 &agrave; 1 min !) </span><br>
      <label></label>
      <br>
    </p>
  </div>
</form>

<upload.php> toujours en <upload.php>

<?php
//newname voudra dire nom+ext qui arriverons du formulaire biensur ex:monchien/.gif
$newname =($rename.$ext);
//chemin voudra dire le chemin de deplacement de l'image (votre repertoire img que vous aurez creer
$chemin = "../../image/site/".$newname;
//table voudra dire que c'est la table images ;) la vous avez compris loll
$table = "images";
// on balance la maneuvre
move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin);
//et pour finir on même ca dans la base de donnée
echo 'envoye terminé', '<BR>';
echo '<a href="../fond/fond.php">Retour</a>', '<BR>';
?>

VOILA

Commentaire de rottweiler le 20/05/2006 04:59:33

généralement on propose des améliorations pas des diminution de code :) , autant passer par un logiciel ftp alors :)

Commentaire de titze le 20/05/2006 11:20:17

Non parceque le site permet de mettre des image on-line et donner le FTP n'est pas du tout conseillé.
En effet, mais tu as dit plus haut que l'originilité de ton script tenait sur 10 lignes.
Moi, il tient vraiment par 10 ligne, de plus tout le monde n'a pas de base de données ou les débutant n'ont pas envie de fouiller dans les script, celui-ci marche direct...

Mais bon ca depend ce que l'on veut en faire. de plus a quoi sert la base de donnée dans un upload?!

Commentaire de rottweiler le 20/05/2006 13:45:18

La base de donnée, elle sert par exemple à faire des scripts comme celui qui nous utilisons actuellement pour discuter (tu crois que nix ajoute ton avatar à la main à gauche de ton texte ;) ? ) , quand tu vois des news sur un site il y a une base de donnée derrière, c'est le béaba de tout site dit dynamique! le meilleur exemple est un album photo dynamique etc.

Ce code est une bonne base pour faire la main au débutant mais pour un site pro il faut scripts plus élaborés ! Dès que j'ai 1 heure devant moi et un peu de courage, je ferais un script capable de tout faire sur une image ! Tu verras l'intérêt d'une base de données :)
Tiens un autre exemple imagine que tu gère un commerce en ligne de disque

Tu va créer une base de données avec tous tes champs et bien sur pour que les pochettes s’affichent automatiquement à chaque référence de disque il faut que la table sache quel disque est associé à quelle image (et c'est la que la base de donnée va te servire)!

Commentaire de titze le 20/05/2006 20:11:17

Merci de ta reponse et toujours de ton travail!!!

Mais tu n'a pas répondu a ma question qui était:
A quoi sert la base de donnée dans un UPLOAD sinon oui je sais  a quoi sert dans le reste...

Bon bah bonne soirée

Commentaire de Padaone91 le 28/07/2006 14:33:35

Bonjour à tous,

Franchement root il est nickel ton php !!! Par contre j'ai une question (je suis une bille en php), comment peut on afficher les images sur une page web tout en les liant à leurs commentaires respectifs ?
Parce que j'ai réussi à afficher toutes les images du dossier img mais les commentaires et autres infos déposées dans la base de donnée ne sont pas affichées au bon endroit.

Help i need somebody...

Merci

Commentaire de rottweiler le 28/07/2006 15:25:02

etudit les requetes avec SELECT c'est la base du php

Commentaire de ertyskipass le 01/08/2006 14:20:24

Notice: Undefined variable: rename in c:\program files\easyphp1-8\www\developpement\phpcs_source_13038\upload.php on line 7

Notice: Undefined variable: ext in c:\program files\easyphp1-8\www\developpement\phpcs_source_13038\upload.php on line 7

Notice: Undefined variable: titre in c:\program files\easyphp1-8\www\developpement\phpcs_source_13038\upload.php on line 15
envoye terminé

super ca marche ce script

Commentaire de ertyskipass le 01/08/2006 14:26:19

mes variables sont indefinies

Commentaire de rottweiler le 01/08/2006 14:31:01

alors au boulot !

Commentaire de ertyskipass le 06/08/2006 12:09:20

bonjour le script marche impec

sauf que j ai voulu integrer une Réduction d'images  pour  pour avoir un aperçu d'une image

trouver sur le site du zero

<?php
$ext =$_POST[ 'ext' ];
$rename =$_POST[ 'rename' ];
$titre =$_POST[ 'titre' ];
$description =$_POST[ 'description' ];


//vos paramettre conection
mysql_connect("localhost", "root", "");
//votre table
mysql_select_db("test");
//newname voudra dire nom+ext qui arriverons du formulaire biensur ex:monchien/.gif
$newname =($rename.$ext);
//chemin voudra dire le chemin de deplacement de l'image (votre repertoire img que vous aurez creer bien sur
$chemin = "./img/".$newname;
//table voudra dire que c'est la table images ;) la vous avez compris loll
$table = "images";
// on balance la maneuvre
move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin);
//et pour finir on même ca dans la base de donnée
mysql_query("INSERT INTO $table (file, titre, description)  VALUES('$newname','$titre','description$');");
echo 'envoye terminé ';

$affich="<a href=\"".$chemin."\">$titre</a>"; //lien
echo $affich; //text du lien
// merci rottweiler ;)
// si vous faitre des trucs simpa avec ca filer moi l'adresse que j'admire un peu votre travail ;) ca me ferais plaisir

$source = imagecreatefromjpeg("$chemin"); // La photo est la source
$destination = imagecreatetruecolor(200, 150); // On crée la miniature vide

// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);

// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);

// On enregistre la miniature sous le nom "mini_couchersoleil.jpg"
imagejpeg($destination, 'img/mini/mini_$rename.$ext');

?>

sur cette ligne je voudrai recupere le non du fichier imagejpeg($destination, 'img/mini/mini_$rename.$ext');

mais cela ne marche et cela donne /img/mini/mini_$rename.$ext au lieu de ce que je voudrai mini_non de limage .jpg ou gif
comment dois je faire

Commentaire de rottweiler le 06/08/2006 18:36:54

si tu met ta variable dans le texte il la prendra comme un texte normal
essai un truc dans le genre !

imagejpeg($destination, "img/mini/mini_$rename/".$ext);

Commentaire de ertyskipass le 07/08/2006 09:43:52

merci de ton aide rottweiler
j ai cherche a partir de ce que tu as marque et cela qui fallait ecrire et sa marche impec
imagejpeg($destination, "img/mini/mini_$rename".$ext);
ceci est en trop /

Commentaire de rottweiler le 07/08/2006 10:18:21

à ton service

Commentaire de osgii le 28/08/2006 11:33:42

Bonjour.
C'est à mon tour d'avoir des problèmes :)

Voici mon erreur :
Warning: move_uploaded_file(./web/img/fon5.gif) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/www/93dca1b5646a34b59f13fa1a34915908/web/upload.php on line 18

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpi7AQ9F' to './web/img/fon5.gif' in /home/www/93dca1b5646a34b59f13fa1a34915908/web/upload.php on line 18
envoye terminé

( déjà, je ne comprends pas d'ou viennent tout ces chiffres! )

Et, ici, mon code :

<?php
//vos paramettre conection
mysql_connect("*******", "*******", "******");
//votre table
mysql_select_db("images");

//Permet de recupérer les valeurs envoyé de form1.php
$ext =$_POST[ 'ext' ];
$rename =$_POST[ 'rename' ];
$titre =$_POST[ 'titre' ];
$description =$_POST[ 'description' ];

//newname voudra dire nom+ext qui arriverons du formulaire biensur ex:monchien/.gif
$newname =($rename.$ext);
//chemin voudra dire le chemin de deplacement de l'image (votre repertoire img que vous aurez creer bien sur
$chemin = "./web/img/".$newname;
//table voudra dire que c'est la table images ;) la vous avez compris loll
$table = "images";
// on balance la maneuvre
move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin);
//et pour finir on même ca dans la base de donnée
mysql_query("INSERT INTO $table (file, titre, description)  VALUES('$newname','$titre','$description');");
echo 'envoye terminé ';

// merci rottweiler ;)
// si vous faitre des trucs simpa avec ca filer moi l'adresse que j'admire un peu votre travail ;) ca me ferais plaisir
?>

J'espère que vous arriverez à m'éguiller! Je cherche depuis maintenant de bonnes heures. Merci d'avance

Commentaire de osgii le 28/08/2006 11:36:18

Heum, c'est bon! J'avais une erreur dans le chemin. Merci à rottweiler pour la source! Je te montre prochainement ce que ça donne. Je vais rajouter encore quelque fonction.

Commentaire de rottweiler le 28/08/2006 11:39:23

ca marche ;)

Commentaire de 107ans le 03/10/2006 06:08:11

j'ai ajouté deux options qui permette de ne pas créer l'image si celle ci existe déjà (le nom bien sur) car cela ecrasait les anciennes images

vérification de l'existence du nom de l'image dans le repertoire img
iterdiction de doublon dans la base de donné
et aussi un require du formulaire une fois l'image uploadé


<?php
//vos paramettre conection
mysql_connect("sql.free.fr", "inserezvotrepseudo", "inserezvotrepseudo");
//votre table
mysql_select_db("inserezvotrebase");
//newname voudra dire nom+ext qui arriverons du formulaire biensur ex:monchien/.gif
$today = date ("jmY");
$newname =($rename.$ext);
//chemin voudra dire le chemin de deplacement de l'image (votre repertoire img que vous aurez creer bien sur
$chemin = "./img/".$newname;
//table voudra dire que c'est la table images ;) la vous avez compris loll
$table = "images";

if(file_exists("$chemin")) {
echo "Fichier existant";
}
else {


// on balance la maneuvre
move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin);
//et pour finir on même ca dans la base de donnée
        $titre = htmlentities ($_POST['titre']);
  $description = htmlentities ($_POST['description']);


mysql_query("INSERT INTO $table (file, titre, description)  VALUES('$newname','$titre','$description');");
echo "Votre image est envoyé sur notre serveur";
require "imagehebergement.php";

// merci rottweiler ;)
// si vous faitre des trucs simpa avec ca filer moi l'adresse que j'admire un peu votre travail ;) ca me ferais plaisir

}
?>


Commentaire de softghost le 19/10/2006 04:15:29

merci pour le code c super ..... juste une petit remarque
il faut ajouter une fonction pour ecraser une image deja exista, c simple en attendant voici le code sans beuge:
---------------------------------------------------------------------------------------------
<?php
//vos paramettre conection
mysql_connect("localhost", "root", "");
//votre table
mysql_select_db("image");


//Permet de recupérer les valeurs envoyé de form1.php
$ext =$_POST[ 'ext' ];
$rename =$_POST[ 'rename' ];
$titre =$_POST[ 'titre' ];
$description =$_POST[ 'description' ];

//newname voudra dire nom+ext qui arriverons du formulaire biensur ex:monchien/.gif
$newname =($rename.$ext);


//chemin voudra dire le chemin de deplacement de l'image (votre repertoire img que vous aurez creer bien sur
$chemin = "./img/".$newname;
//table voudra dire que c'est la table images ;) la vous avez compris loll
$table = "images";
// on balance la maneuvre
move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin);
//et pour finir on même ca dans la base de donnée
mysql_query("INSERT INTO $table (file, titre, description)  VALUES('$newname','$titre','$description');");
echo 'envoye terminé ';
?>
----------------------------------------------------------------------
attention au parametre de connexion : localhost, root, passe,

----------------------------------------------------------------------
et voici la base de donner:

-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Jeudi 19 Octobre 2006 à 02:14
-- Version du serveur: 4.1.9
-- Version de PHP: 4.3.10
--
-- Base de données: `image`
--

-- --------------------------------------------------------

--
-- Structure de la table `images`
--

CREATE TABLE `images` (
  `id` mediumint(9) NOT NULL auto_increment,
  `file` varchar(13) NOT NULL default '',
  `titre` tinytext NOT NULL,
  `description` mediumtext NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;

--
-- Contenu de la table `images`
--

INSERT INTO `images` VALUES (9, 'moma.jpg', 'lolo', 'hihihihi');
INSERT INTO `images` VALUES (8, 'msalek.jpg', 'msalek', 'momo ');

-------------------------------------------------------------------
vous pouver suprimer les enregistrement .

merci a+

Commentaire de thekid23 le 28/11/2006 17:29:36

Peut tu me dire pourquoi tu a mit EXPERT ? Ses plutot débutant comme source ;)

Commentaire de marial le 02/02/2007 10:16:00

Salut rottweiler!
Merci , je cherchais depuis comment uploader les images et je suis tombé sur ton code qui est simpla, fiable, très pratique, sans prise de tête.
<b>107ans </b> Merci aussi pour ta vérification de l'existance du fichier ou pas.
Merci à vousss.

Commentaire de marial le 02/02/2007 10:20:56

Comment afficher une photo enregistrer dans la Base de données ??

Commentaire de rottweiler le 02/02/2007 15:43:30

$query = "SELECT * FROM images Where 1";
$mysql_result = execute_requete($query);

// ************* Recupere le résultats ****************

while($row = mysql_fetch_array($mysql_result)) {

    $db_ID = $row['id'];
    $db_Photo = $row['file'];

//affichage simple
$image = "<img src=\"./img/$db_Photo\" width=\"100\" border=\"0\">";
echo $image;

Commentaire de marial le 03/02/2007 11:23:19

Salut rottweiler,

Milles fois merci à toi et cela faisait deux jours que je cherchais à afficher les photos uploader sans succès; Merci pour tout , même ton code source est impact et surtout bonne continuation. L'informatique a besoin des génies comme toi.
Merciiiiiiiiii.

Commentaire de marial le 03/02/2007 11:52:21

Resalut rottweiler,

Je viens de me familiarisé avec ton code qui est vraiment digest sans soucis, j'ai aussi constaté que la photo est automatiquement redimensionnée; vue du fait que je suis entrain de créer un album photo, j'aimerais savoir comment pourrai-je faire pour afficher la photo dans sa taille réelle après le clic du visiteur ?
Merci.

Commentaire de rottweiler le 03/02/2007 12:20:03

//coté php:

// ************* requete *****
$query = "SELECT * FROM images Where 1";
$mysql_result = execute_requete($query);

// ************* Recupere le résultats ****************
while($row = mysql_fetch_array($mysql_result)) {

    $db_ID = $row['id'];
    $db_titre = $row['id'];
    $db_description = $row['description'];
    $db_Photo = $row['file'];

// ************* vérifis si photo *************
  
  if($db_Photo ) {

// ************* si photo cree le lien cliquable sur la photo *************
  $image = "<a href=\"javascript:PopupImage("./img/$db_Photo')\"><img src=\"./img/$db_Photo\" width=\"200\" border=\"0\" alt=\"$db_titre\"></a>";

}else{
// ************* sinon affiche une photo de remplacement nophoto.jpg que tu aura crée et placé dans le rep "img" ******

$image = "<img src=\"./img/nophoto.jpg\" width=\"200\" border=\"0\" alt=\"$db_titre\">";
}

// ************* récupère les champs et les met en tableau unitaire
$result[] .= "<table border=\"0\">
<tr>
<td>$image <br>$db_description</td>
</tr>
</table>";
} //fin du while

// ************* Génère ton album dont le nombre de colonne ce modifis sur la variable $cell actuellement à 3 par 3 ***

    $aff_photo.= "<table>\n";
    $cell=0;
    for($n=0;$n<count($result);$n++) {
         $aff_photo.= ($cell == 0)? "<tr>\n" : "";
         $aff_photo.= ($result[$n]!="")? "<td valign=\"top\">$result[$n]</td>\n" : "<td>&nbsp;</td>\n";
         $cell++;
         $aff_photo.= ($cell == 3)? "</tr>\n" : "";
         $cell = ($cell == 3)? 0 : $cell;
         }
    $aff_photo.= "</table>\n";

// ************* on affiche le résulat
echo $aff_photo;



// ************* coté javascripts ta fonction pour la popup
function PopupImage(img) {
titre="titre de la popup";
w=open("",'image','width=10,height=100,directories=no,status=no,toolbar=NO,scrollbars=NO,resizable=NO,menubar=NO,location=NO');
w.document.write("<HTML><HEAD><TITLE>"+titre+"</TITLE><meta http-equiv='imagetoolbar' content=no></HEAD>");
w.document.write("<SCRIPT language=javascript>function checksize()  { if (document.images[0].complete) {  window.resizeTo(document.images[0].width+10,document.images[0].height+60); window.focus();} else { setTimeout('check()',250) } }</"+"SCRIPT>");
w.document.write("<BODY onload='checksize()' oncontextmenu='return false' onselectstart='return false' ondragstart='return false' leftMargin=0 topMargin=0 marginwidth=0 marginheight=0 oncontextmenu='return false' onselectstart='return false' ondragstart='return false'><IMG src='"+img+"' border=0>");
w.document.write("</BODY></HTML>");
w.document.close();
}

// ************* j'ai peu être fait quelques errors tu devrais pouvoir faire avec ca je pense

// ************* bon courage rottweiler

Commentaire de marial le 05/02/2007 10:39:47

Salut rottweiler ,

Merci pour ton code et je prendrai de la peine  à l'étudier ensuite l'essayer, mais j'ai eu encore à faire une remarque sur ton code précédent.
Désolé de te le dire, j'ai trouvé personnellement un peu embêtant de demander l'extension de la photo à un visiteur à chaque fois que celui-ci désire en ajouter une et j'essayer de vérifier automatiquement l'extension en supprimant les champs ".gif" et ".jpeg" dans ton code HTML; mais
j'ai cette erreur qui s'affiche dans ma page de traitement
Undefined variable ext D:/.... online 29 que voici $newname = ($rename.$ext); pourtant la photo s'enregistre dans la Base de données (sans extension) et elle apparait aussi lorsque je l'affiche dans une page normale
Je veux savoir si est-ce que toi tu as une méthode pouvant verifier l'extension de la photo ?? sans demander à l'internaute de préciser celle de sa photo (suppose que cet internaute soit nul).
Voici ton code que j'ai un peu modifier mais j'ai un message d'erreur de l'extension.

<?php
    
if(!empty($_FILES['file']) AND !empty($_POST['rename']))
{
$poids_max = 512000;

$rename=$_POST['rename'];

if ($_FILES['file']['size'] > $poids_max)
{
echo 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
}
else
{
echo "Extension de la photo acceptée.<br/>";
}
}

else{
echo "Vous avez oublié de remplir un ou plusieurs champs !<br/>";
}

//vos paramettre conection
mysql_connect("localhost", "root", "");
//votre table
mysql_select_db("maestro");
//newname voudra dire nom+ext qui arriverons du formulaire biensur ex:monchien/.gif
$newname = ($rename.$ext);

//chaque caractère est remplacé par celui qui occupe la même place dans la chaine après la virgule.


$newname = preg_replace('#[!"\#$%&\'.()*+,/:;<=>?@[\]^{|}~¡¢£¤¥§¨©«\\®±´µ¸º»]#', '', $newname);
//supprime les \
$newname = str_replace('\\', '', $newname);
//supprime les espaces
$newname = str_replace(' ', '_', $newname);  
//met en minuscule la chaine
$newname = strtolower($newname);

// On définit l'extention du fichier
    if ($_FILES['file']['type'] == '.jpeg')
                {
                $ext = '.jpeg';
                }
      
        if ($_FILES['file']['type'] == '.jpeg')
                {
                $ext = '.jpg';
                }
                
    if ($_FILES['file']['type'] == '.png')
                {
                $ext = '.png';
                }
                
    if ($_FILES['file']['type'] == '.gif')
                {
                $ext = '.gif';
                }        
          
//chemin voudra dire le chemin de deplacement de l'image (votre repertoire img que vous aurez creer bien sur
$chemin = "./photo/".$newname;
//table voudra dire que c'est la table images ;) la vous avez compris loll
$table = "upload";

if(file_exists("$chemin"))
{
echo "Fichier existant";
}
else {
  

// on balance la maneuvre
move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin);
//et pour finir on même ca dans la base de donnée
  
mysql_query("INSERT INTO upload  VALUES('','$newname')");
echo "Votre image est envoyé sur notre serveur";


// merci rottweiler ;)
// si vous faitre des trucs simpa avec ca filer moi l'adresse que j'admire un peu votre travail ;) ca me ferais plaisir
}

mysql_close();
?>

Merci et à très bientôt.

MARIAL

Commentaire de rottweiler le 05/02/2007 19:35:15

Tu utilise ta variable $ext avant de l'avoir déclaré!
Pour le système automatique il ne ce détecte pas parce que le but numéro 1 est de pouvoir modifier l'extension de mon fichier, au choix ! Sinon j'aurai simplement récupéré le nom d'origine avec l'extension ;)  

/* détermine l'extension du fichier */
$ext = strstr($photo_name, ".");

bon courage

Commentaire de g_fuck le 17/04/2007 09:14:52

salut !!! j'ai un probleme avec cette ligne ....

move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin);
dans la base tout marche a merveille mais la photo n'est pas uploade!!!!
est ce que qq'un pourait m'eclairer dans cette histoire?

Commentaire de elodie77 le 01/07/2007 17:37:50

Bonjour,
ce code est très bien..débutante c le seul que g pu utilisé et même modifier!!!

Par contre comment faire pour afficher l'image?
Merci

Commentaire de elodie77 le 08/07/2007 14:14:50

AU SECOURS!!!
Je me sert de se script pour une interface admin de gestion annonce voiture.

Il marche très bien lorsque je veux creer une nouvelle annonce mais impossible d'uplaoder les image dans la page de modidfication. pourtant je suis parti de la meme chose!!!

Dans la base les modif sont accepté mais rien dans le dossier img???


// formulaire de modification de l'annonce
<html>
<head>
<title>MODIFICATION</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../css/feuille%20_style1.css" type="text/css">
</head>

<body>
<?php
include('../inc/head_webmaster.php');
?>
<table width="800" height="60" align="center">
  <tr>
    <td width="978" height="60" valign="bottom" align="center" class="titre_page" >
Ecran de modification</td>
  </tr>
</table>
<?php
$id_modif = $_GET['id'];

if ($id_modif == ""){
echo "ID MANQUANT";
}
else{
include('../inc/database_open.php');
$requete_id = "SELECT * FROM car WHERE id='$id_modif'";
$requete=mysql_query($requete_id);
$nb_resultats=mysql_num_rows($requete);

if ($nb_resultats > 0){
echo "<form action='actionmodif.php' method='post'>";
for ($i=0; $i<$nb_resultats; $i++)
{
$row=mysql_fetch_array($requete);
$marque_car = $row['marque'];
$modele_car = $row['modele'];
$annee_car = $row['annee'];
$km_car = $row['km'];
$moteur_car = $row['moteur'];
$couleur_car = $row['couleur'];
$opt_car = $row['opt'];
$prix_car = $row['prix'];
$img_car = $row['img'];
$ext_car = $row['ext'];
$chemin_car = $row['chemin'];
$img_vignette_car = $row['img_vignette'];
$ext_vignette_car = $row['ext_vignette'];
$chemin_vignette_car = $row['chemin_vignette'];
$nbreporte_car = $row['nbreporte'];
$carrosserie_car = $row['carrosserie'];
$cylindre_car = $row['cylindre'];
$id_car = $row['id'];


echo "<table width='610' border='0' cellpadding='0' cellspacing='0' align='center'>";
    echo "<tr>";
      echo "<td width='300' valign='top' height='280'>";
        echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>";
          echo "<tr>";
            echo "<td width='129' height='28' valign='middle' class='cartitle'> MARQUE:</td>";
            echo "<td valign='middle' width='171'>";
              echo "<input type='text' name='marque_form' value='$marque_car'>";
            echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td height='28' valign='middle' class='cartitle'>MODELE :</td>";
            echo "<td valign='middle'>";
              echo "<input type='text' name='modele_form' value='$modele_car'>";
            echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td valign='middle' height='28' class='cartitle'>ANNEE :</td>";
            echo "<td valign='middle'>";
              echo "<input type='text' name='annee_form' value='$annee_car'>";
            echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td height='28' valign='middle' class='cartitle'>KILOMETRAGE : </td>";
            echo "<td valign='top'>";
              echo "<input type='text' name='km_form' value='$km_car'>";
            echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td height='28' valign='middle'><span class='cartitle'>MOTORISATION</span>:</td>";
            echo "<td valign='middle'>";
              echo "<input type='text' name='moteur_form' value='$moteur_car'>";
            echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td valign='middle' height='28' class='cartitle'>CYLINDRE :</td>";
            echo "<td valign='middle'>";
              echo "<input type='text' name='cylindre_form' value='$cylindre_car'>";
            echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td valign='middle' height='28' class='cartitle'>CAROSSERIE :</td>";
            echo "<td valign='middle'>";
              echo "<input type='text' name='carrosserie_form' value='$carrosserie_car'>";
            echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td valign='middle' height='28' class='cartitle'>COULEUR :</td>";
            echo "<td valign='middle'>";
              echo "<input type='text' name='couleur_form' value='$couleur_car'>";
            echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td height='28' valign='middle' class='cartitle'>PORTE :</td>";
            echo "<td valign='middle'>";
              echo "<input type='text' name='nbreporte_form' value='$nbreporte_car'>";
            echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td height='28' valign='middle' class='cartitle'>PRIX :</td>";
            echo "<td valign='middle'>";
              echo "<input type='text' name='prix_form' value='$prix_car'>";
            echo "</td>";
          echo "</tr>";
       echo "</table>";
      echo "</td>";
      echo "<td width='10'></td>";
      echo "<td width='300' rowspan='2' valign='top'>";
        echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>";
          echo "<tr>";
           echo "<td valign='middle' height='67' colspan='2' class='cartitle'>OPTION
              :</td>";
            echo "<td valign='top' colspan='2'>";
              echo "<textarea name='opt_form'>$opt_car</textarea>";
            echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td valign='middle' height='19' colspan='4' class='cartitle' bgcolor='#CCCCCC'>
              PHOTO :</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td valign='top' height='33' colspan='4'>";
              echo "<div align='right'><font face='Times New Roman, Times, serif' size='2'>
                280x185</font>";
echo "<input name='file_modif' type='file'>";
             echo "</div>";
            echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td width='127' valign='middle' height='28' class='annonce'>Nom actuel:";
  echo "</td>";
            echo "<td valign='top' colspan='3'>";
              echo "<input type='text' name='rename' value='$img_car'>";
            echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td valign='middle' height='28' class='annonce'>Type :</td>";
            echo "<td valign='middle' colspan='3'>";
echo "<label>
             <input type='radio' name='ext' value='.gif'>gif
          </label>";
echo "<label>
             <input type='radio' name='ext' value='.jpg'>
              jpeg</label>";
echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td height='19' colspan='4' valign='middle' class='cartitle' bgcolor='#CCCCCC'>VIGNETTE
              :</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td height='33' colspan='3' valign='top'>";
              echo "<div align='right'><font face='Times New Roman, Times, serif' size='2'>100x60</font>";
                echo "<input name='file2_modif' type='file'>";
              echo "</div>";
            echo "</td>";
            echo "<td width='2'></td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td valign='middle' height='28' class='annonce'>Nom actuel:</td>";
            echo "<td valign='top' colspan='3'>";
              echo "<input name='rename2' type='text' value='$img_vignette_car'>";
           echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td height='27' valign='top' class='annonce'>Type :</td>";
            echo "<td valign='top' colspan='3'>";
echo "<label>
              <input type='radio' name='ext2' value='.gif'>
              gif
  </label>";
  echo "<label>
              <input type='radio' name='ext2' value='.jpg'>
              jpeg
  </label>";
  echo "</td>";
          echo "</tr>";
          echo "<tr>";
            echo "<td height='1'></td>";
            echo "<td width='1'></td>";
            echo "<td width='170'></td>";
            echo "<td></td>";
          echo "</tr>";
        echo "</table>";
      echo "</td>";
    echo "</tr>";
    echo "<tr>";
      echo "<td height='3'></td>";
      echo "<td></td>";
    echo "</tr>";
    echo "<tr>";
      echo "<td height='33' colspan='3' valign='top'>";
        echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>";
          echo "<tr>";
            echo "<td height=33' width='610' valign='top'>";
echo "<input type='hidden' name='id_form' value='$id_car'>";
              echo "<div align='center' valign='middle'>";
                echo "<input type='submit' value='MODIFIER' name='submit'>";
              echo "</div>";
            echo "</td>";
          echo "</tr>";
        echo "</table>";
      echo "</td>";
    echo "</tr>";
  echo "</table>";


}
echo '</form>';

}
require('../inc/database_close.php');
}
?>

<?php
include('../inc/footer_pt.php');
?>
</body>
</html>




// et voici la page qui permet de modifier

<?php
include('../inc/database_open.php');

$marque_modif = $_POST['marque_form'];
$modele_modif = $_POST['modele_form'];
$annee_modif = $_POST['annee_form'];
$km_modif = $_POST['km_form'];
$moteur_modif = $_POST['moteur_form'];
$couleur_modif = $_POST['couleur_form'];
$opt_modif = $_POST['opt_form'];
$prix_modif = $_POST['prix_form'];
$nbreporte_modif = $_POST['nbreporte_form'];
$carrosserie_modif = $_POST['carrosserie_form'];
$cylindre_modif = $_POST['cylindre_form'];

$ext =$_POST[ 'ext' ];
$rename =$_POST[ 'rename' ];
//newname voudra dire nom+ext qui arriverons du formulaire biensur ex:monchien/.gif
$newname =($rename.$ext);
//chemin voudra dire le chemin de deplacement de l'image (votre repertoire img que vous aurez creer bien sur
$chemin = "./img/".$newname;

$ext2 =$_POST[ 'ext2' ];
$rename2 =$_POST[ 'rename2' ];
//newname voudra dire nom+ext qui arriverons du formulaire biensur ex:monchien/.gif
$newname2 =($rename2.$ext2);
//chemin voudra dire le chemin de deplacement de l'image (votre repertoire img que vous aurez creer bien sur
$chemin2 = "./img/".$newname2;

if ($marque_modif == "" || $modele_modif==""){ // pour prendre en compte autre element les inserer de la meme maniere
echo "Merci d'indiquer les élement correspondant la voiture";
}
else{
move_uploaded_file($HTTP_POST_FILES["file_modif"]["tmp_name"],$chemin);
move_uploaded_file($HTTP_POST_FILES["file2_modif"]["tmp_name"],$chemin2);


$requete_id = "UPDATE car SET cylindre = '$cylindre_modif', carrosserie = '$carrosserie_modif' , nbreporte = '$nbreporte_modif' , chemin_vignette = '$chemin2' , ext_vignette = '$ext2' , img_vignette = '$newname2' , chemin = '$chemin' , ext = '$ext' , img = '$newname' , prix = '$prix_modif' , opt = '$opt_modif', couleur = '$couleur_modif', moteur = '$moteur_modif' , km = '$km_modif' , annee = '$annee_modif' , modele = '$modele_modif' , marque = '$marque_modif' WHERE id = $id_form;";

$requete=mysql_query($requete_id);
if($requete){
header('location:menu_webaster.php');
mysql_close($link);
}else{
echo "probleme d'insertion dans la base";
}
}

include('../inc/footer.php');

?>

Commentaire de EsKa be le 03/04/2008 10:34:35

Erreur sur le zip ?

|Utiliser le chemin : oui   Superposer les fichiers : oui
|Pour le fichier "@Readme-CodeS-SourceS-FR.txt", l'estampille temporel du répertoire central est invalide, utilisation de l'heure courante.
|Pour le fichier "@Source telecharge depuis ce lien.url", l'estampille temporel du répertoire central est invalide, utilisation de l'heure courante.
|Avertissement : "form1.php" ignoré. Les flags d'intérêt général stockés dans l'en-tête local pour ce fichier ne sont pas les mêmes que les flags d'intérêt général stockés dans l'en-tête central

Je tombais enfin sur le code dont j'avais besoin.

Commentaire de Psyfrag le 14/07/2008 01:18:07

Bon script à modifier soit même, cependant impossible de uploader les images en local et sur le serveur...

ERREUR :

Warning: move_uploaded_file(./upimgqcm/): failed to open stream: Permission denied in c:\program files\easyphp1-8\www\qcm\edition_qcm.php on line 40

INFO : Mon dossier est "upimgqcm" pour les images et placé dans le dossier "QCM" dans lequel se trouve le script "edition_qcm.php".

Je déclare donc la variable "$chemin" comme suit :

$chemin = "./upimgqcm/";

move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin);

même en modifiant "$HTTP_POST_FILES"

move_uploaded_file($_FILES["file"]["tmp_name"],$chemin);

Mais aucun résultat concernant le UP ? Une idée ?

Commentaire de ramdam39 le 08/01/2009 18:17:11

Salut à tous, merci pour ce script qui marche impeccablement bien. Par contre, je coince toujours sur l'affichage des images.

J'ai creer un script de news sur le site,et je voudrais que les membres puissent intégrer une image à leur news.

J'ai donc une table "news" et une table "images".

Pourriez vous me dire à partir du code upload ci dessus, quel code je dois intégrer à mes pages afin que chaque nouvelle news, puissent être accompagnées d'une photo.

D'avance merci beaucoup de votre aide.

JC

Commentaire de AbouJalal le 10/03/2010 01:13:25

est ce que je peux te demander une version ou tu echange mysql en pdo?
:)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales