Eléphanteau du PHP |
19 Messages
21 mai 2019, 14:44
function actionTousLivres($twig,$db){
$form = array();
$Catalogue = new Catalogue($db);
var_dump($_POST);
if (isset($_POST['Etat'])) {
$Etat = $_POST['Etat'];
$form['Etat'] = $Etat;
}
if (isset($_POST['btAjouter'])){
$titre = $_POST['titre'];
$resume= $_POST['resume'];
$auteur = $_POST['auteur'];
$gerne = $_POST['gerne'];
$prix =$_POST['prix'];
$quantite=$_POST['quantite'];
//#Debut upload photo
$photo=null;
if(isset($_FILES['photo'])){ //Cette ligne teste si la variable fichier qui se nomme « photo » existe en mémoire.
if(!empty($_FILES['photo']['name'])){ //Est-ce qu'une photo a été envoyée ?
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'jfif'); //Cette ligne indique les extensions des fichiers que nous autoriserons. Nous les mettons dans un tableau .
$taille_max = 500000;
$dest_dossier = '/data/si62019/hattencourt/web/images/couverture/'; //Chemin du répertoire où seront stockées les images. Il faudra donner des droits au répertoire qui accueillera vos images.
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) ){ //La ligne regarde si dans le nom de la photo, nous avons bien une extension autorisée.
echo 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
else{
if( file_exists($_FILES['photo']['tmp_name'])&& (filesize($_FILES['photo']
['tmp_name'])) > $taille_max){
echo 'Votre fichier doit faire moins de 500Ko !';
}
else{
$photo = basename($_FILES['photo']['name']); //Cette ligne récupère uniquement le nom du fichier
// enlever les accents
$photo=strtr($photo,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAA
AAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caractères autres que lettres, chiffres et point par _
$photo = preg_replace('/([^.a-z0-9]+)/i', '_', $photo);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier.$photo);
}
}
}
}
$Catalogue = new Catalogue($db);
$exec = $Catalogue->insert($titre,$resume,$auteur,$prix, $quantite, $gerne, $photo);
$form['titre'] = $titre;
}//Fin
//Debut pagination
$limite=10;
if(!isset($_GET['nopage'])){
$inf=0;
$nopage=0;
}
else{
$nopage=$_GET['nopage'];
$inf=$nopage * $limite;
}
$r = $Catalogue->selectCount();
$nb = $r['nb'];
$listecatalogue = $Catalogue->selectLimit($inf,$limite);
$form['nbpages'] = ceil($nb/$limite);
//Fin
//Supprimer un livre [version choix multiple]
if(isset($_POST['btSupprimer'])){
$cocher = $_POST['cocher'];
$form['valide'] = true;
foreach ( $cocher as $idlivre){
$exec=$Catalogue->delete($idlivre);
if (!$exec){
$form['valide'] = false;
$form['message'] = 'Problème de suppression dans la table produit';
}
}
}
//Fin
echo $twig->render('tousleslivres.html.twig', array('form'=>$form, 'listecatalogue'=>$listecatalogue));
}
Voila mon controleur complet
<form method="POST" action="index.php?page=tousleslivres">
<p>Selectionné l'état du catalogue :</p>
<select class="form-control" id="Etat" name="Etat">
<option value="True">Activer</option>
<option value="False">Desactiver</option>
</select>
<div>
<button id="BtEtat" name="BtEtat" type="sumbit">Envoyer</button>
</div>
</form>
mon formulaire
{%if form.Etat == True %}
<li>
<a href="index.php?page=catalogue">Catalogue</a>
</li>
{%endif%}