1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| <?php
if (isset($_FILES['photo_1'], $_POST['titre'], $_POST['description'], $_POST['age'], $_POST['origine'], $_POST['num'], $_POST['ville'], $_POST['cp'], $_POST['statut']))
{
// on vérifie que l'upload s'est déroulé sans erreur
// que le nom récupéré ne contient que des lettres (restriction forte)
// que la longueur du nom ne dépasse pas 15 caractères
$basename = (string)basename($_FILES['photo1']['name']);
if (($_FILES['photo1']['error'] === 0) && ctype_alpha($basename) && (strlen($basename) <= 15))
{
$dir = './md/'.$basename;
$i = 0;
while (++$i <= 10) // jusqu'à 10 images par nom
{
$n = sprintf('%02d', $i);
if (is_file($dir.$n) === false)
{
$dir .= $n;
break;
}
}
if ($i === 11)
{
echo "Limite du nombre d'images atteinte (10)";
}
else
{
if (move_uploaded_file($_FILES['photo1']['tmp_name'], $dir))
echo "L'envoi a bien été effectué";
else
echo "L'envoi a échoué";
}
}
}
try{ // Connexion à la BDD
$bdd=new PDO('mysql:host=xxxxxx;dbname=xxxxx', 'xxxxxxx','xxxxxxxx');
}
catch(Exception $e){
die ('Erreur:'.$e->getMessage());
}
// Insertion des données envoyées par l'internaute grâce à une requête préparée
$stockage='http://xxxxxxxxx/xxx/md/'.$_FILES['photo1']['name'].'';
$insertion=$bdd->prepare('INSERT INTO annonces(titre, description, age, origine, num, ville, cp, statut, photo1) VALUES (:titre, :description, :age, :origine, :num, :ville, :cp, :statut, :photo1)');
$insertion->execute(array(
'titre' => $_POST['titre'],
'description' => $_POST['description'],
'age' => $_POST['age'],
'origine' => $_POST['origine'],
'num' => $_POST['num'],
'ville' => $_POST['ville'],
'cp' => $_POST['cp'],
'statut' => $_POST['statut'],
'photo1' => $stockage
));
if($insertion==true) {
echo '<p> Les données ont bien été enregistrées</p>';
}
else {
echo 'Erreur dans l\'enregistrement des données </p>';
}
$insertion->closeCursor(); // déconnexion
}
?> |
Partager