Vous n'êtes pas identifié.
Bonjour a tous !!!
J'espére que vous allre pouvoir m'aider :)
Alors voilan je voudrais uploader une image dans un repertoire donner en la redimensionnant !
Un ami a moi m'as donner un code pour le redimensionnement, mais pas pour le reste. C'est une fontion php ;
Ca c'est la fontion :
function cImage($max,$source,$dest){
$size = getimagesize($source);
$w = $size[0];
$h = $size[1];
$simg = imagecreatefromjpeg($source);
$dimg = imagecreatetruecolor($max,$max);
$wm = $w/$max;
$hm = $h/$max;
$h_height = $max/2;
$w_height = $max/2;
if($w > $h){
$adjusted_width = $w / $hm;
$half_width = $adjusted_width / 2;
$int_width = $half_width - $w_height;
imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$max,$w,$h);
}elseif(($w < $h) || ($w == $h)){
$adjusted_height = $h / $wm;
$half_height = $adjusted_height / 3;
$int_height = $half_height - $h_height;
if($int_height < 0) $int_height = 0;
imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$max,$adjusted_height,$w,$h);
}else{
imagecopyresampled($dimg,$simg,0,0,0,0,$max,$max,$w,$h);
}
imagejpeg($dimg,$dest,100);
}Et ca c'est le code pour exécuté cette fonction :
cImage(50,$_FILES['fichier']['name'],'../../img/photo/50/$user_id.jpg')
Mais je n'est pas le code pour envoyer l'image apres redimentionnement. J'ai essayer ca, mais ca ne marche pas du tout !!
<<LA FONCTION DU HAUT>>
if(move_uploaded_file(cImage(50,$_FILES['fichier']['name'],'../../img/photo/50/$user_id.jpg')))
{
echo '<b>Image uploadée avec succès !</b>';
echo '<hr />';
echo '<b>Fichier :</b> ', $_FILES['fichier']['name'], '<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 {
// Sinon on affiche une erreur système
echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br /><br />';
}
}Vous pouvez m'aider svp ? :)
Merci
la page de test : http://tydoo.free.fr/membre/image/
(pour engendre l'id, connexion : test - test)
Dernière modification par tydoo (10-03-2011 18:40:36)
Hors ligne

Salut tydoo !
Alors il y a quelques erreurs et mauvaises interprétations dans ton code.
Dans la partie que tu as codée, tu cherches pas à uploader une image que tu viens d'enregistrer sur ton serveur (grâce à la fonction imagejpeg()), ça ne peut donc pas marcher.
Tu vas simplement tester si ton image a bien été créée.
Pour cela tu remplaces ton test par :
if(cImage(50, $_FILES['fichier']['tmp_name'], '../../img/photo/50/'.$user_id.'.jpg'))
{Tu remarques au passage qu'on appelle le fichier par sa valeur tmp_name (lien du fichier sur le serveur et non son nom) *
Et tu remarques aussi qu'on doit casser la destination pour rendre active la variable $user_id
Et pour que ta fonction cImage() te retourne une valeur (true ou false) si l'image a été créée, tu dois procéder comme ceci :
if(imagejpeg($dimg, $dest, 100))
return true;(c'est juste 2 lignes à modifier ^^)
Petit plus, si tu veux les informations de ton image (largeur, hauteur) il faut que tu rajouter juste après ton test (avant l'affichage des informations) la fonction getimagesize() (qui permet de récupérer la taille de la nouvelle image) :
$infos_img = getimagesize('../../img/photo/50/'.$user_id.'.jpg');Sans ça, la variable $infos_img n'a aucune valeur ^^
Encore un petit plus, une légère amélioration qui sert à alléger ton code, remplaces :
elseif(($w < $h) || ($w == $h))
Par :
elseif($w <= $h)
Voilou, si il y a encore un problème n'hésites pas, mais normalement c'est ok 
* Un exemple de ce que te retourne ta variable $_FILES['fichier'] (ici sous WAMP) :
Array
(
[fichier] => Array
(
[name] => IMG_1866.JPG
[type] => image/jpeg
[tmp_name] => C:\wamp\tmp\php2DB0.tmp
[error] => 0
[size] => 353202
)
)Hors ligne
Ta fonction cImage() te permet de créer une image à partir d'une image existante.
La fonction imagecopyresampled() présente dans ta fonction cImage() permet de paramétrer l'image que tu vas créer (caractéristiques de la source, de la destination, ...)
Pour plus d'informations sur cette fonction : imagecopyresampled()
Ensuite, tu as la fonction imagejpeg() permet d'envoyer l'image créée sur le serveur.
Ta fonction cImage() te créait donc une image à la taille voulue et l'enregistre ensuite sur le serveur à l'adresse de ton choix.
Ton teste (celui qui te donne les caractéristiques de l'image ou le message d'erreur) doit donc juste tester que la fonction cImage() retourne la valeur true pour afficher les caractéristiques de l'image, sinon il affiche le message d'erreur.
Hors ligne
d'accord :) ET donc la fonction cImage() va chercher l'image existante sur le serveur, la redimensionne et l'enregisre auter part.
Donc faut que je fasse un uploade avant c'est ca ? Cette fonction n'as rien a voir avec l'upload donc ?
Hors ligne
Non, la fonction ne va pas chercher une image présente sur le serveur, elle utilise l'image que tu upload.
C'est à dire, la personne va uploader une image (pour illustrer son compte par exemple).
Au lieu de laisser son image telle quelle sur le serveur, grâce à la fonction cImage(), tu vas modifier la taille de l'image (qui n'est pas encore enregistrée) et seulement après l'image est enregistrée sur le serveur.
Avant, il te faut juste un formulaire qui permet au visiteur d'aller sélectionner l'image sur son disc dur :
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data"> <input type="file" name="fichier" /> <input type="submit" value="Envoyer" /> </form>
Hors ligne
oui d'accord :p
Donc on arrive a ca ? :
<?php
session_start();
$user_id = $_SESSION['id'];
?>
<form method="post" action="index.php?id=<?php echo $user_id ?>" enctype="multipart/form-data">
<input type="file" name="fichier" />
<input type="submit" name="send_img" value="Envoyer" />
</form>
//-----------------------------------------------------------------------------
<?php
if(isset($_POST["send_img"])) {
function cImage($max,$source,$dest){
$size = getimagesize($source);
$w = $size[0];
$h = $size[1];
$simg = imagecreatefromjpeg($source);
$dimg = imagecreatetruecolor($max,$max);
$wm = $w/$max;
$hm = $h/$max;
$h_height = $max/2;
$w_height = $max/2;
if($w > $h){
$adjusted_width = $w / $hm;
$half_width = $adjusted_width / 2;
$int_width = $half_width - $w_height;
imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$max,$w,$h);
}
elseif($w <= $h){
$adjusted_height = $h / $wm;
$half_height = $adjusted_height / 3;
$int_height = $half_height - $h_height;
if($int_height < 0) $int_height = 0;
imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$max,$adjusted_height,$w,$h);
}else{
imagecopyresampled($dimg,$simg,0,0,0,0,$max,$max,$w,$h);
}
imagejpeg($dimg,$dest,100);
}
cImage(50,$_FILES['fichier']['name'],'../../img/photo/50/$user_id.jpg') //on redimensioone
if(imagejpeg($dimg, $dest, 100)) //on test si ca a bien marcher
return true;
{
move_uploaded_file(); //si ca a bien redimensionner on envoi la photo
echo 'c\'est bon la photo est enregistrer !';
}
else {
// Sinon on affiche une erreur système
echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br /><br />';
}
}
?>Hors ligne
Non, plutôt à ceci (si tu lis bien les conseils donnés dans le premier post) :
<?php
function cImage($max,$source,$dest)
{
$size = getimagesize($source);
$w = $size[0];
$h = $size[1];
$simg = imagecreatefromjpeg($source);
$dimg = imagecreatetruecolor($max,$max);
$wm = $w/$max;
$hm = $h/$max;
$h_height = $max/2;
$w_height = $max/2;
if($w > $h)
{
$adjusted_width = $w / $hm;
$half_width = $adjusted_width / 2;
$int_width = $half_width - $w_height;
imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$max,$w,$h);
}
elseif($w <= $h)
{
$adjusted_height = $h / $wm;
$half_height = $adjusted_height / 3;
$int_height = $half_height - $h_height;
if($int_height < 0) $int_height = 0;
imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$max,$adjusted_height,$w,$h);
}
else
{
imagecopyresampled($dimg,$simg,0,0,0,0,$max,$max,$w,$h);
}
if(imagejpeg($dimg, $dest, 100))
return true;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Fichier tests </title>
</head>
<body>
<?php
if(isset($_FILES['fichier']))
{
if(cImage(50, $_FILES['fichier']['tmp_name'], '../../img/photo/50/'.$user_id.'.jpg'))
{
$infos_img = getimagesize('../../img/photo/50/'.$user_id.'.jpg');
echo '<b>Image uploadée avec succès !</b>';
echo '<hr />';
echo '<b>Fichier :</b> ', $_FILES['fichier']['name'], '<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
{
// Sinon on affiche une erreur système
echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br /><br />';
}
}
else
{
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<input type="file" name="fichier" />
<input type="submit" value="Envoyer" />
</form>
<?php
}
?>
</body>
</html>Je te laisse lire le code et n'hésites pas à poser des questions si tu en as !
Hors ligne
C'est pas compliqué, c'est juste de la logique que tu vas acquérir au file du temps !
Mais poses tes questions, on est là pour y répondre pour que tu progresse !
Hors ligne
Et bien ça c'est de l'aide
, merci mic ;).
@tydoo : je te rassure tout de suite, c'est le genre typique de code qui m'em**rde littéralement aussi et que j'ai un peut de mal à assimiler
!
Hors ligne
Normal ... 
Faut bien que fasse mon petit come back d'après les vacances ![]()
Hors ligne
donc enfaite imagejpeg() va crée et uploader l'image sur le serveur si j'ai bien compris :)
Pourquoi CODE QUI SUIS renvoi true ? Ca fait quoi enfaite ?
if(imagejpeg($dimg, $dest, 100))
return true;Je suis entrain de faire mon ptit reseau social enfaite ^^ J'aimerais tester l'envoi du fichier est vide mais le code ne marche pas :(
if (!empty($_FILES['fichier'])) {
TOUT LE RESTE DU CODE }Hors ligne
Le code renvoie true SI ET SEULEMENT SI la fonction imagejpeg() a bien été exécutée (donc a bien enregistrée l'image sur le serveur).
Etant à la fin de la fonction cImage(), il suffit de tester la valeur renvoyée par cette dernière (true ou false) pour savoir si celle-ci a bien été exécutée.
Bien vu pour le second teste 
Tu peux en dire plus sur ce réseau sociale ?
Hors ligne
grace au teste d'erreur, si il y a une erreur (donc pas d'image a uploader), il renvoi au else du bas => { LA PAGE HTML DE L'ERREUR UPLOAD }
Enfaite je suis entrain de coder une réseau social pour mon lycée et pour les lycée de ma ville dans un deuxième temps.
Avec gestion des classes, des devoir a partager avec solution proposé par les membres de la classe. (un système de point pour chaque solution au devoir serra mit en place. Et celui avec le plus de point serras mit en avant.
Chaque classe serra gérer par un animateur (avec droit admin seulement sur sa classe)
Des club seront aussi mit en place avec des clubs commun au site, mais aussi pour chaque classe.
Je pars sur mon lycée. Et suivant comment ca démarrera je vais en suite créer des espace lycée en plus (pour gérer les lycée)
ps: Grâce a vous, j'ai fini mon pti script de gestion des images sur le site avec l'avatar !! MERCI :)
J'arrive a ca :
session_start();
if(isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) {
if ($_FILES['fichier']['size'] <= 5000000)
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['fichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg');
if (in_array($extension_upload, $extensions_autorisees))
{
function cImage($max,$source,$dest)
{
$size = getimagesize($source);
$w = $size[0];
$h = $size[1];
$simg = imagecreatefromjpeg($source);
$dimg = imagecreatetruecolor($max,$max);
$wm = $w/$max;
$hm = $h/$max;
$h_height = $max/2;
$w_height = $max/2;
if($w > $h)
{
$adjusted_width = $w / $hm;
$half_width = $adjusted_width / 2;
$int_width = $half_width - $w_height;
imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$max,$w,$h);
}
elseif($w <= $h)
{
$adjusted_height = $h / $wm;
$half_height = $adjusted_height / 3;
$int_height = $half_height - $h_height;
if($int_height < 0) $int_height = 0;
imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$max,$adjusted_height,$w,$h);
}
else
{
imagecopyresampled($dimg,$simg,0,0,0,0,$max,$max,$w,$h);
}
if(imagejpeg($dimg, $dest, 100))
return true;
}
require_once('../../script/config.php');
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe"); mysql_select_db("$nom_de_la_base")
or die('Impossible de sélectionner une base de donnée. Assurez vous d\'avoir correctement remplit les données de connections.');
$user_id = $_SESSION['id'];
$hasard = rand(1000000000, 10000000000);
$id_photo = $user_id.$hasard.$user_id;
$res = mysql_query('SELECT COUNT(*) AS total FROM img')
OR die(mysql_error());
$row = mysql_fetch_assoc($res);$row['total'];
$id_total = $row['total'];
cImage(50, $_FILES['fichier']['tmp_name'], '../../img/photo/50/'.$id_photo.'.jpg');
cImage(100, $_FILES['fichier']['tmp_name'], '../../img/photo/100/'.$id_photo.'.jpg');
cImage(300, $_FILES['fichier']['tmp_name'], '../../img/photo/300/'.$id_photo.'.jpg');
cImage(600, $_FILES['fichier']['tmp_name'], '../../img/photo/600/'.$id_photo.'.jpg');
//ENREGISTREMENT EN BDD
$id_membre = $_SESSION['id'];
$url = $id_photo;
$valider = 'NON';
$result = mysql_query(" INSERT INTO img VALUES (
'',
'$id_membre',
'$url',
'$valider'
) ");
$resulgyguguyfuft = mysql_query(" UPDATE membre SET
avatar= '$id_total'
WHERE id = '$user_id'
");
mysql_close();
if (!$result) {
die('Requête invalide : ' . mysql_error());
}
else {
header('Location: ../avatar');
}
}
else {
header('Location: ../avatar');
}
}
else {
header('Location: ../avatar');
}
}
else
{
LA PAGE HTML DE L'ERREUR UPLOADE
}Dernière modification par tydoo (17-03-2011 18:40:51)
Hors ligne
L'idée est bonne, j'ai d'ailleurs planché et ébauché un petit réseau de ce genre, et ça peut s'avérer très utile pour les grandes écoles, là où la vie étudiante est mieux mise en avant que la vie lycéenne (la moitié voire plus des lycéens ne savent pas ce qu'ils font dans leur lycée, alors il ne voient pas l'utilité d'un site..)
Par contre, j'ai des questions à te poser :
tydoo a écrit:
Avec gestion des classes, des devoir a partager avec solution proposé par les membres de la classe. (un système de point pour chaque solution au devoir serra mit en place. Et celui avec le plus de point serras mit en avant.
Penses-tu vraiment que les élèves sont intéressés de passer du temps à apporter sur la correction d'un devoir ?
Penses-tu que la maturité des membres (je demande car je ne connais pas les élèves de ton lycée, je parle en fonction de mon expérience personnelle) soit assez grande pour ne pas te retrouver avec des corrections de type spam ?
As-tu déjà trouvé un système qui permet aux élèves de créer facilement les corrections d'un devoir ?
tydoo a écrit:
Chaque classe serra gérer par un animateur (avec droit admin seulement sur sa classe)
As-tu des amis dans chaque classe ? Des personnes sur lesquelles tu peux compter et qui ne tenteront pas de mettre en pagaille ton réseau ?
tydoo a écrit:
Des club seront aussi mit en place avec des clubs commun au site, mais aussi pour chaque classe.
Et que proposeront ces clubs ?
Je pense que je peux te donner des idées novatrices en terme d'animations proposés par ces clubs ^^
tydoo a écrit:
ps: Grâce a vous, j'ai fini mon pti script de gestion des images sur le site avec l'avatar !! MERCI :)
Petit commentaire sur le renommage de tes images (et oui, je suis un vrai casse co*illes ^^) pourquoi ne pas renommer les images pas l'ID du membre et c'est tout ?
Je pense que ça sera plus facile par la suite de les utiliser, il suffira simplement de connaitre l'ID pour retrouver l'image...
Ce n'est qu'une question de point de vue, à toi d'en faire ce que tu veux 
Pour finir, as-tu mené une étude auprès de tes camarades ? (d'abords ceux de ta classe, puis ceux des autres)
- - - - - - - - - - - - - - - - - - -
Ensuite, parce que j'aime bien (quand je suis motivé) améliorer les choses, je te montre les choses que je modifierais à ta place :
Je remplacerais :
$infosfichier = pathinfo($_FILES['fichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg');
if(in_array($extension_upload, $extensions_autorisees))Par ceci :
if(preg_match("#(.jp(e)?g){1}$#i", $_FILES['fichier']['name']))Ca allège le code, et ça tient surtout compte des majuscules qui peuvent être présentent dans l'extension jpg (on retrouve régulièrement du image.JPEG)
Ensuite, ceci :
//ENREGISTREMENT EN BDD
$id_membre = $_SESSION['id'];
$url = $id_photo;
$valider = 'NON';
$result = mysql_query("INSERT INTO img VALUES ('', '$id_membre', '$url', '$valider')");
$resulgyguguyfuft = mysql_query("UPDATE membre SET avatar = '$id_total' WHERE id = '$user_id'");
mysql_close();
if (!$result)
{
die('Requête invalide : ' . mysql_error());
}
else
{
header('Location: ../avatar');
}Par ceci :
//ENREGISTREMENT EN BDD
$id_membre = $_SESSION['id'];
$url = $id_photo;
$resulgyguguyfuft = mysql_query("UPDATE membre
SET avatar = '".$id_total."'
WHERE id = '".$user_id."'");
if(mysql_query("INSERT INTO img VALUES ('', '".$id_membre."', '".$url."', 'NON')"))
{
header('Location: ../avatar');
}
else
{
die('Requête invalide : ' . mysql_error());
}
mysql_close();Petit conseil, évites les variables telles que $resulgyguguyfuft parce que quand tu vas te replonger dans ton code, tu vas t'arracher les cheveux :)
Et un autre conseil qui ne fait de mal à personne, essayes d'étager ton code, c'est à dire utilises la touche TAB pour créer des espaces à chaque fois que tu entres dans une instruction PHP, ça nous évite de devoir le faire pour comprendre le code et ça t'aidera à t'y retrouver par la suite ^^
Voici un petit article qui peut donner des idées et qui explique surtout comment présenter un code : bien présenter son code
La rigueur est la première des choses à apprendre lorsqu'on veut gagner du temps ... et garder ses cheveux par la même occasion ![]()
Hors ligne
mic54800 a écrit:
Penses-tu vraiment que les élèves sont intéressés de passer du temps à apporter sur la correction d'un devoir ?
Penses-tu que la maturité des membres (je demande car je ne connais pas les élèves de ton lycée, je parle en fonction de mon expérience personnelle) soit assez grande pour ne pas te retrouver avec des corrections de type spam ?
As-tu déjà trouvé un système qui permet aux élèves de créer facilement les corrections d'un devoir ?
Alors je ne sais pas pour la maturité. Mais dans notre classe on s'échange enormement les corection (oui on est des enfants serieu :p)
Pour le système, je le code moi même ^^
mic54800 a écrit:
As-tu des amis dans chaque classe ? Des personnes sur lesquelles tu peux compter et qui ne tenteront pas de mettre en pagaille ton réseau ?
Oui j'ai deux trois amis dans des classe qui sont chaud pour le projet :)
mic54800 a écrit:
Et que proposeront ces clubs ?
Je pense que je peux te donner des idées novatrices en terme d'animations proposés par ces clubs ^^
Les club ca va etre un espace ou on va parler d'un théme. Comme les page facebook par exemple
Oui les idées je suis preneur :) :)
mic54800 a écrit:
Petit commentaire sur le renommage de tes images (et oui, je suis un vrai casse co*illes ^^) pourquoi ne pas renommer les images pas l'ID du membre et c'est tout ?
Je pense que ça sera plus facile par la suite de les utiliser, il suffira simplement de connaitre l'ID pour retrouver l'image...
Ce n'est qu'une question de point de vue, à toi d'en faire ce que tu veux
Enfaite je ne peut pas, car sinon il va remplacer a chaque foi l'image. Or c'est la gestion des photos et pas seulement l'avatar.
L'image est uploader avec 'ID_DU_membre + CHIFFRE ALEATOIRE + ID_DU_membre' .jpg
Dans ma table membre, un champ avatar. On enregistre le dernier id de la photo.
Dans la table image, on enregistre l'id du membre et l'url, c'est a dire "ID_DU_membre + CHIFFRE ALEATOIRE + ID_DU_membre' (Ce qui permet d'avoir une photo qui commence par un chiffre unique (1, 2 ..) et qui enplus a un chiffre aléatoire, comme ca il écrase pas deja une photo.)
Voilou =)
J'ai modifier les code par ce que tu m'as donner :) Merci beaucoup =)
Dernière modification par tydoo (17-03-2011 19:50:57)
Hors ligne
Salut tout les 2
,
Je m'incruste un peut dans la conversation pour ma compréhension personnel et parce que je ne suis pas aussi doué que pourrait le croire tydoo
.
La fonction « cImage() » ne prend en charge que le format jpg, pourquoi ne pas prendre en charge le format gif et png tant qu'à faire ?
mic54800 a écrit:
pourquoi ne pas renommer les images pas l'ID du membre et c'est tout
En lisant tes réponses tydoo, j'ai un peut de mal à visualiser la tête de tes tables.
Si table "membre" contient un champ "avatar", tu enregistres alors juste l'id du membre comme nom de l'avatar (ex: 22.jpg). Si le membre veut changer d'avatar, il supprime celui-ci et le remplace par un autre et toi tu fais un simple UPDATE du champ avatar.
Idem pour la table image, si elle permet d'afficher une sorte de galerie par membre et qu'elle contient que 2 champs "id_du_membre" et "url", tu rajoutes un troisième champs comme "id" en "auto incrémente".
id = auto incrementation
id_du_membre = enregistre l'id du membre
url = /membre-id/timestamp+format soit /membre-2/1300396509.jpg
Le timestamp (unix) désigne le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit...donc impossible d'avoir 2 fois le même nom d'image pour un même membre.
Hors ligne
yes pour le timestamp !! ♥
Alors, j'ai déjà l'id pour la table img. ^^
Je vais le rééxpliquer, car je l'est très mal expliquer enfaite.
Dans ma table img, j'ai 3 champs. ID, ID_membre et url (c'est le nom de la photo => "130130204341" )
Dans ma table membre j'ai un champ "avatar"
Dans ce champ avatar, j'enregistre l'ID de la photo (qui viens du champ ID de la table img, et donc qui est unique)
Comme ca, j'ai ma galerie photos par table sql. Et quand j'update l'avatar, il enregistre simplement l'id de la photo
A tester en ligne ; http://tydoo.free.fr | login : test / Passe : test.
Accueil > Mon compte => Modifier mon avatar
A coté, je peut aussi uplader une image, qui enregistre la photo dans la table membre avec l'id du membre qui a uploader la photo, et le nom de l'image.
Comme ca chaque membre peut avoir sa gualerie photo.
J'affiche les photos comme ca :
$a1 = mysql_query("SELECT * FROM img WHERE id_membre = $id_login_top ORDER BY id DESC LIMIT 0,4 ");Dernière modification par tydoo (17-03-2011 23:16:11)
Hors ligne
Grossièrement, il faut utiliser respectivement la fonction imagepng() et imagegif() mais cela nécessite de vérifier au préalable l'extension de l'image pour lui attribuer la bonne fonction.
Pour en revenir à tes enregistrements d'images, je n'avais pas comprit que l'avatar et galerie était lié.
J'aime bien ton interface membre et l'utilisation de l'upload par contre faut pas trop regarder le code source de tes pages ...
Hors ligne
oui je sais que mon code source n'est pas jolie. CAr je code sous NVU et sous notepad ++ (NVU pour l'agencement et NVU pour codage PHP)
Merci pour l'interface.
Je vais rajouter image gif et png :)
et pour le coup, comment rajouter .png et .gif dans le test d'extension ?*
if(preg_match("#(.jp(e)?g){1}$#i", $_FILES['fichier']['name']))
{Et donc si j'ai bien compris, on exécute la fonction imagepng() si l'extension est en png ^^
Donc on arriverais a ca :
if (CODE D'EXTENXION JPEG == Jpeg) {
if(imagejpeg($dimg, $dest, 100))
return true;
}
elseif (CODE D'EXTENXION PNG == png) {
if(imagepng($dimg, $dest, 100))
return true;
}
else (CODE D'EXTENXION GIF == gif) {
if(imagegif($dimg, $dest, 100))
return true;
}Dernière modification par tydoo (18-03-2011 14:36:26)
Hors ligne
Pour le code source des tes pages, je pencherais plus pour le faites que tu effectues des includes de pages que tu a créé sous NVU, ce qui ajoute forcément des entêtes et corps de page un peut partout au document final (html ,head,body).
Hors ligne
Propulsé par PunBB
© Copyright 2007
Forum créer un site