par
Johan » 30 janv. 2006, 01:48
Il me reste plus qu'à régler le pb du fichier non uploader ... pcq sinon désormais le nom du fichier puis son extension s'inscrivent bien dans le champ "photo" ... voici mes modif :
// stockage dans la bdd
$nom = $_POST['nom'];
$email = $_POST['email'];
$titre = $_POST['titre'];
$telephone = $_POST['telephone'];
$prix = $_POST['prix'];
$photo = $_FILES['photo']['name'];
$description = $_POST['description'];
<p>Votre photo : <?php
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPG');
$taille_max = 200000000;
$dest_dossier = 'photo/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['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);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
?>
<input type="file" name="photo" /></p>
Donc désormais pour l'upload ... il me semble qu'il me manque une "action" dans le début de mon form ... non ? dans le tuto :
Code : Tout sélectionner
<form method="POST" action="notre_script.php" enctype="multipart/form-data"> et moi :
Code : Tout sélectionner
<form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Il me reste plus qu'à régler le pb du fichier non uploader ... pcq sinon désormais le nom du fichier puis son extension s'inscrivent bien dans le champ "photo" ... voici mes modif : [php] // stockage dans la bdd
$nom = $_POST['nom'];
$email = $_POST['email'];
$titre = $_POST['titre'];
$telephone = $_POST['telephone'];
$prix = $_POST['prix'];
$photo = $_FILES['photo']['name'];
$description = $_POST['description'];
[/php]
[php] <p>Votre photo : <?php
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPG');
$taille_max = 200000000;
$dest_dossier = 'photo/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['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);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
?>
<input type="file" name="photo" /></p>
[/php]
Donc désormais pour l'upload ... il me semble qu'il me manque une "action" dans le début de mon form ... non ? dans le tuto : [code]<form method="POST" action="notre_script.php" enctype="multipart/form-data">[/code] et moi : [code] <form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">
[/code]