par
yoann38 » 20 déc. 2014, 13:49
le code au complet:
Traitement des infos.
<?php
session_start();
if(!empty($_POST))
{
extract($_POST);
$validation=true;
if(isset($_FILES['image']) AND $_FILES['image']['error']==0)
{
$infos_image=pathinfo($_FILES['image']['name']);
$extension_image=$infos_image['extension'];
$ext_autorisees=array('jpg','jpeg','png');
if($_FILES['image']['size']>2000000)
{
$validation=false;
$erreur_image='L\'image doit être inférieure à 2Mo';
}
elseif(!in_array($extension_image,$ext_autorisees))
{
$validation=false;
$erreur_image='L\'image doit être au format jpg, jpeg ou png';
}
}
else
{
$validation=false;
$erreur_image='Indiquez l\'image que vous souhaitez publier';
}
if(empty($titre))
{
$validation=false;
$erreur_titre='Il manque un titre';
}
if($validation)
{
$image=$_FILES['image']['name'];
$tmp_name=$_FILES['image']['tmp_name'];
include('bdd.php');
$req=$bdd->prepare('INSERT INTO banniere (titre,image) VALUES (:titre,:image)');
$req->execute(array(
'titre'=>$titre,
'image'=>$image
));
$req->closeCursor();
move_uploaded_file($tmp_name,"images/portfolio/recent/$image");
$valide='L\'envoi de l\'image a bien été effectué !';
unset($nom);
unset($auteur);
}
}
?>
J'affiche mes images dejà presente en bdd:
<?php
include('bdd.php');
$nombre=$bdd->query("SELECT * FROM banniere ORDER BY id DESC");
$total=$nombre->rowCount();
$nb_page=$total/6;
if(!isset($_GET['page'])){$page_actuelle=1;}else{$page_actuelle=$_GET['page'];}
$liste=6*$page_actuelle-6;
$req=$bdd->query("SELECT * FROM banniere ORDER BY id DESC LIMIT $liste,6");
$compteur=0;
while($donnees_select=$req->fetch())
{
$compteur=$compteur+1;
?>
<div class="col-md-4">
<a href="images/portfolio/recent/<?php echo $donnees_select['image']; ?>" rel="lightbox" class="effet" title="<?php echo $donnees_select['titre']; ?> ">
<div class="cadre"><?php echo $donnees_select['titre']; ?> </div>
</a><img src="images/portfolio/recent/<?php echo $donnees_select['image']; ?>" <?php if($compteur!=3){?><?php }else{$compteur=0;} ?>/>
</div>
<?php
}
?>
// Pagination
<div class="pagination">
<br>
<?php
$compteur_page=0;
while($compteur_page<$nb_page)
{
$compteur_page=$compteur_page+1;
?>
<a href="index.php?page=<?php echo $compteur_page; ?>" <?php if($page_actuelle==$compteur_page){ ?>style="color:#e30059;text-decoration:underline;"<?php } ?>>Page <?php echo $compteur_page; ?></a> -
<?php
}
?>
</div>
J'integrer en bdd ( partie administration si on veut )
Publier une nouvelle banniere
<div class="ligne"></div>
<form method="post" action="banniere.php" enctype="multipart/form-data">
<?php if(isset($valide)){ ?><div class="valide"><?php echo $valide; ?></div><?php } ?>
<label>Titre</label>
<input class="form-control" type="text" name="titre" value="<?php if(isset($titre))echo $titre; ?>"/><?php if(isset($erreur_titre)){ ?><div class="erreur"><?php echo $erreur_titre; ?></div><?php } ?>
<br>
<label>Photo</label>
<input type="file" name="image"/><?php if(isset($erreur_image)){ ?><div class="erreur_image"><?php echo $erreur_image; ?></div><?php } ?>
<br>
<input class="send" type="submit" value="ENVOYER"/>
</form>
Et maintenant dans une autre page j'affiche les bannieres ( la partie visible par l'utilisateur )
// le chemin est correct on retrouve bien les photos inserer grace au formulaire et donc tt est bien integrer en bdd
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<?php
$listebanniere = $bdd->query('SELECT * FROM banniere ORDER BY id');
?>
<div class="carousel-inner" role="listbox">
<div class="item">
<img src="admin/images/portfolio/recent/<?php echo $listebanniere ['image']; ?>">
</div>
</div>
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
<span class="sr-only">Next</span>
</a>
</div>