ecriture d'url
Posté : 03 août 2005, 12:09
salut
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
IMG1209 devient IMG1_
voici le code ou l'on retrouve les erreurs
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