Ameliorer mon code pour la redimension d'image

0123azerty Messages postés 2 Date d'inscription lundi 29 octobre 2007 Statut Membre Dernière intervention 1 janvier 2008 - 1 janv. 2008 à 06:14
Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 - 2 janv. 2008 à 10:39
bjr a tous ...

<html>

<?php

// connexion à la BD
include ('bdd.php');

$sexe = $_POST["sexe"];
$recherchant = $_POST["recherchant"];
$pour = $_POST["pour"];
$login = $_POST["login"];
$pass = $_POST["pass"];
$prenom = $_POST["prenom"];
$tel = $_POST["tel"];
$ville = $_POST["ville"];
$email = $_POST["email"];
$region = $_POST["region"];
$corpulence = $_POST["corpulence"];
$sex_orient = $_POST["sex_orient"];
$situation = $_POST["situation"];
$age = $_POST["age"];
$taille = $_POST["taille"];
$deplace = $_POST["deplace"];
$recois = $_POST["recois"];
$annonce = $_POST["annonce"];

// SCRIPT D'UPLOAD PHOTO XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

// définition de l'espace destiné à recevoir les fichiers

$DESTINATION_FOLDER="upload/";

// si un fichier maphoto a bien été transféré

if (is_uploaded_file($_FILES["maphoto"]["tmp_name"])) {

// autrement dit tout ce qu'il y a après le dernier point (inclus)

$nomPhoto = $_FILES["maphoto"]["name"];

$oDate = '.'.date("YmdHis"); // On déterminer la date

$in = array('.gif','.jpg','.jpeg');//précise les extension

$out = array($oDate.'.gif',$oDate.'.jpg',$oDate.'.jpeg');//On précise leur remplacement

$nomFichier = str_replace($in,$out,$nomPhoto);// et on remplace le nom du fichier par nom.Date.extension

move_uploaded_file($_FILES["maphoto"]["tmp_name"], $DESTINATION_FOLDER.$nomFichier);

}

// SCRIPT POUR REDIMENSIONNER LA PHOTO XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

$image= "upload/"; // le chemin

// prend la taille de l'image
$dimension=getimagesize($image.$nomFichier);
// superieur à 500 dans l'exemple
if($dimension[0]>500){

$max=500; //taille a redimensionensionner

$reduc=$max/$dimension[0];
$coef_l=$max;
$coef_h=$dimension[1]*$reduc;
$chemin = imagecreatefromjpeg($image);
$nouvelle =imagecreatetruecolor ($coef_l, $coef_h);
imagecopyresampled($nouvelle,$chemin,0,0,0,0,$coef_l,$coef_h,$dimension[0],$dimension[1]);
imagejpeg($nouvelle,$image);
imagedestroy ($chemin);

}

$limite = 100; // L'image est considérée comme miniature en dessous de la taille 100x100 pixels
$dimension = getimagesize($DESTINATION_FOLDER.$nomFichier);
$hauteur = $dimension[1];
$largeur = $dimension[0];

if($hauteur >= $limite OR $largeur >= $limite)

{

$source = imagecreatefromjpeg($DESTINATION_FOLDER.$nomFichier); // L'image est la source

if($hauteur >= $limite AND $hauteur >> $largeur) // Calcule des dimensions miniatures

{

$hauteur = $hauteur / ($largeur / $limite); // Calcule de la hauteur miniature
$largeur = $limite;

}

else

{

$largeur = $largeur / ($hauteur / $limite); // Calcule de la largeur miniature
$hauteur = $limite;

}

$destination = imagecreatetruecolor($largeur, $hauteur); // On crée la miniature vide

$largeur_source = imagesx($source); // Largeur de la source
$hauteur_source = imagesy($source); // Hauteur de la source
$largeur_destination = imagesx($destination); // Largeur de la miniature
$hauteur_destination = imagesy($destination); // Hauteur de la miniature

// Notez bien que l'on n'est pas obligé de faire ces calculs, car on les a déjà fait. Moi je préfère, pour plus de sureté

$nomMiniature = 'small_'.$nomFichier; // Nom de la miniature

imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source); // Création de la
imagejpeg($destination, $DESTINATION_FOLDER.$nomMiniature); // miniature

//SCRIPT TRAITEMENT BDD XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

// Exemple de requete de stockage en BD avec MySQL

mysql_connect($dbhost,$dblogin,$dbpassword);mysql_selectdb($dbname);

// et une table qui aurait pu être créée par

// CREATE TABLE matable (ID varchar(64), image varchar(64), icone varchar(64));

$result=mysql_query("INSERT INTO membre (image,sexe,recherchant,pour,login,pass,prenom,tel,ville,email,region,corpulence,sex_orient,situation,age,taille,deplace,recois,annonce) VALUES

('" . addslashes($nomFichier) . "','" . addslashes($sexe) . "','" . addslashes($recherchant) . "','" . addslashes($pour) . "','" . addslashes($login) . "','" . addslashes($pass) . "','" . addslashes($prenom) . "','" . addslashes($tel) . "','" . addslashes($ville) . "','" . addslashes($email) . "','" . addslashes($region) . "','" . addslashes($corpulence) . "','" . addslashes($sex_orient) . "','" . addslashes($situation) . "','" . addslashes($age) . "','" . addslashes($taille) . "','" . addslashes($deplace) . "','" . addslashes($recois) . "','" . addslashes($annonce) . "')");

echo mysql_error();

if (!$result) {

echo"
";

echo "L'enregistrement de vos données a échoué. Essayez plus tard
";

} else {

echo"
";

// on récupère l'id de notre nouveau membre
$id = mysql_insert_id();
session_start();
$_SESSION['login'] = $_POST['login'];

// on stocke cet id dans une variable de session
$_SESSION['id'] = $id;
header('Location: accueil.php');

exit();

}

?>

</html>

1 réponse

Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 2
2 janv. 2008 à 10:39
il n'y a pas de question ?

je peux déjà te dire que récupérer tes valeurs $_POST sans avoir vérifié au préalable qu'elles sont bien présentes, c'est courir le risque d'avoir une liste de warning longue comme mon bras

Loki
0
Rejoignez-nous