tout d'abort je precise que j'ai pas chercher sur le forum(acces tres tres limité)
voila j'ai plusieurs problemes
le premier c'est l'enregistrement d'une url, mon probleme vient du type d'oblique à utiliser (/ ou \) pour passer sur toutes les machines (unix et win) à priorie ce serait les obliques / mais elles ne marche pas sous firefox et windows (voir code ci dessous )
le deuxieme est comment recupere le chemin du dossier ou le sript s'execute
$_SERVEUR['script_Name'].'/./';
et le troisieme vient du tuto sur l'upload j'ai des problemes apparement avec la fonction $dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
elle coupe parfois (1 fois sur 3)les noms des fichers exemple :IMG1209 devient IMG1_
voici le code ou l'on retrouve les erreurs
if(isset($_FILES['fichier']) and isset($_POST['send']))
{
// params
unset($erreur);
$largeur="150";// en pixel
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 1000000;
$dest_dossier ='E:/essai template/eurotrading/developpement/site/gallerie/'.$_POST['theme'];
// vérifications
if( !in_array( substr(strrchr($_FILES['fichier']['name'], '.'), 1), $extensions_ok ) )
{
$erreur='format';
header('location:'.$_SERVER['PHP_SELF'].'?erreur='.$erreur);
}
elseif( file_exists($_FILES['fichier']['tmp_name'])
and filesize($_FILES['fichier']['tmp_name']) > $taille_max)
{
$erreur='taille';
header('location:'.$_SERVER['HTTP_REFERER'].'?erreur='.$erreur);
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['fichier']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
//verifiaction du dossier theme
if(!is_dir($dest_dossier))
{mkdir($dest_dossier,0770);}
else
// copie du fichier
{move_uploaded_file($_FILES['fichier']['tmp_name'], $dest_dossier.'/'.$dest_fichier);}
//creation de la miniature
//ouverture du l'image originale
//retourne le type de l'image
$typesource=substr(strrchr($_FILES['fichier']['name'], '.'), 1);
if($typesource=='jpeg' or $typesource=='jpg' )
$miniature= imagecreatefromjpeg($dest_dossier.'/'.$dest_fichier);
elseif($typesource=='png')
$miniature= imagecreatefrompng($dest_dossier.'/'.$dest_fichier);
else
{
$erreur='format';
header('location:'.$_SERVER['HTTP_REFERER'].'?erreur='.$erreur);
}
if($miniature == "" )
{
$erreur='creation';
header('location:'.$_SERVER['HTTP_REFERER'].'?erreur='.$erreur);
}else{
if(!is_dir($dest_dossier.'/miniature'))//ouverture du repertoire miniature
mkdir($dest_dossier.'/miniature',0770);
//recuperation des proportions
$imagex=imagesx($miniature);
$imagey=imagesy($miniature);
$ratio=$imagex/$imagey;
$largeurdestination=$largeur;
$hauteurdestination=$largeur/$ratio;
$im = imagecreatetrueColor($largeurdestination, $hauteurdestination)
or die ("Erreur lors de la création de l'image");
imagecopyresampled($im,$miniature,0,0,0,0, $largeurdestination, $hauteurdestination, $imagex, $imagey);
if($typesource=='jpeg' or $typesource=='jpg' )
imagejpeg($im, $dest_dossier.'/miniature/'.$dest_fichier);
elseif($typesource=='png')
imagepng($im,$dest_dossier.'/miniature/'.$dest_fichier);
}
//enregitrement base de donnée
if(isset($erreur))
{header('location:'.$_SERVER['HTTP_REFERER'].'?erreur='.$erreur);}
else{
$conn=mysql_connect('localhost','root','') or die ("erreur:".mysql_error());
$db=mysql_select_db('gallerie',$conn) or die ("erreur:".mysql_error());
$theme=addslashes($_POST['theme']);
$descriptif=addslashes($_POST['descriptif']);
$commentaire=addslashes($_POST['commentaire']);
$urlphoto=addslashes($dest_dossier.'/'.$dest_fichier);
$urlminiature=addslashes($dest_dossier.'/miniature/'.$dest_fichier);
$query1='INSERT INTO photo (urlphoto,urlminiature,theme,descriptif) VALUES ("'.$urlphoto.'","'.$urlminiature.'","'.$theme.'","'.$descriptif.'")';
$res1=mysql_query($query1) or die ("erreur:".mysql_error());
$query2='SELECT idphoto from photo order by idphoto desc limit 0,1';
$res2=mysql_query($query2) or die ("erreur:".mysql_error());
$resultat=mysql_result($res2,0,'idphoto');
$query3='INSERT INTO commentaire (commentaire,idphoto) VALUES ("'.$commentaire.'","'.$resultat.'")';
$res3=mysql_query($query3) or die ("erreur:".mysql_error());
mysql_close();
}
}
}
merci