Bonjour à tous,
Malgré des recherches avec l'ami Google et quelques lectures par çi par là, je n'arrive pas à mettre en place des limitations liées à l'envoi de fichier par formulaire.
Je m'explique: je suis en train de construire un site d'administration basique adaptable à divers projets, et sur certaines pages, je permets à l'utilisateur d'ajouter des fichier images.
L'upload vers le dossier que j'ai choisi se passe bien.
Mais j'aimerais maintenant mettre en place 2 limitations:
** limitation de la taille du fichier.
** limitation du type (ou de l'extension) du fichier.
En l'état actuel des choses, voici mon code:
* page avec le formulaire *
* page avec ma fonction d'upload (en include sur la page précédente) *
Voilà où mon travail en est, je vous avoue n'avoir jamais réalisé de limitations en ce qui concerne les fichiers, si quelqu'un pouvait m'expliquer, cela serait très aimable à vous.
En attendant de l'aide, je vous souhaite à tous et toutes une bonne journée!
Malgré des recherches avec l'ami Google et quelques lectures par çi par là, je n'arrive pas à mettre en place des limitations liées à l'envoi de fichier par formulaire.
Je m'explique: je suis en train de construire un site d'administration basique adaptable à divers projets, et sur certaines pages, je permets à l'utilisateur d'ajouter des fichier images.
L'upload vers le dossier que j'ai choisi se passe bien.
Mais j'aimerais maintenant mettre en place 2 limitations:
** limitation de la taille du fichier.
** limitation du type (ou de l'extension) du fichier.
En l'état actuel des choses, voici mon code:
* page avec le formulaire *
<?php
include("protect.php");
require_once("connexion.php");
include("fonctions.php");
// MES VARIABLES
$laTable = "personnes";
// LES FONCTIONS
function ajouter(){
global $laTable;
$nom = addslashes($_POST["nom"]);
$prenom = addslashes($_POST["prenom"]);
$fonction = addslashes($_POST["fonction"]);
$fichier = $_FILES["fichier"]["name"];
$texte = addslashes($_POST["texte"]);
$mail = addslashes($_POST["mail"]);
$sql = "INSERT INTO $laTable (nom,prenom,fonction,photo,texte,mail)
VALUES ('$nom','$prenom','$fonction','$fichier','$texte','$mail');";
mysql_query($sql);
}
function supprimer() {
global $laTable,$tiroir;
$id = $_GET["del"];
montrer($id);
$lefichier = $tiroir->photo;
if($lefichier !="" && file_exists("uploads/$lefichier")){
unlink("uploads/$lefichier");
}
$sql = "DELETE FROM $laTable
WHERE id = $id;";
mysql_query($sql);
}
function montrer($id){
global $laTable,$tiroir;
$sql = "SELECT *
FROM $laTable
WHERE id = $id ;";
$resultat = mysql_query($sql);
$tiroir = mysql_fetch_object($resultat);
}
function modifier(){
global $laTable;
$nom = addslashes($_POST["nom"]);
$prenom = addslashes($_POST["prenom"]);
$fonction = addslashes($_POST["fonction"]);
$texte = addslashes($_POST["texte"]);
$fichier = $_FILES["fichier"]["name"];
$mail = addslashes($_POST["mail"]);
$id = $_POST["id"];
if ($_FILES["fichier"]["name"]!="") {
$photo = $_FILES["fichier"]["name"];
$sql = "UPDATE $laTable
SET nom = '$nom',
prenom ='$prenom',
fonction = '$fonction',
texte = '$texte',
mail ='$mail',
photo = '$photo'
WHERE id = $id;";
}
else {
$sql = "UPDATE $laTable
SET nom = '$nom',
prenom ='$prenom',
fonction = '$fonction',
texte = '$texte',
mail ='$mail',
photo = '$photo'
WHERE id = $id;";
}
mysql_query($sql);
}
// TESTS ET ROUTAGE ----------------------------------------------
// INSERT si il existe un POST id et qu'il est nul
if (isset($_POST["id"]) && $_POST["id"]==0) {
ajouter();
upload();
}
// DELETE si il existe un GET del
if (isset($_GET["del"])) {
supprimer();
}
// SHOW si il existe un GET show
if (isset($_GET["show"])) {
$id = $_GET["show"];
montrer($id);
}
// UPDATE si il existe un POST id et qu'il est différent de 0
if (isset($_POST["id"]) && $_POST["id"]>0) {
modifier();
upload();
}
// ---------------------------------------------------------------
// Je formule ma requête et je stocke la recherche dans une armoire $resultat
$sql = "SELECT *
FROM $laTable
ORDER BY nom ASC;";
$resultat = mysql_query($sql);
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Site d'administration - page des Rubriques</title>
<link rel="stylesheet" href="styles.css">
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
<script>
function confirmation(){
message = "Etes vous sur de vouloir supprimer cette personne?"
reponse = confirm(message);
if (reponse==true){
return true;
}
else {
return false;
}
}
</script>
</head>
<body>
<div id="adminAccueil">
<h1>Page d'administration - site COACHING</h1>
<div id="corps">
<div id="gauche">
<?php include("menu.php"); ?>
<?php include ("deconnexion.php");?>
</div>
<div id="spécifique">
<h2>Gestion des <?php echo $laTable; ?>:</h2>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">
<fieldset><legend>Ajouter une personne</legend>
<p><label for="nom">Nom : </label><input type="text" name="nom" value="<?php if (isset($_GET["show"])) {echo $tiroir->nom;} ?>" /></p>
<p><label for="prenom">Prénom : </label><input type="text" name="prenom" value="<?php if (isset($_GET["show"])) {echo $tiroir->prenom;} ?>" /></p>
<p><label for="fonction">Fonction : </label><input type="text" name="fonction" value="<?php if (isset($_GET["show"])) {echo $tiroir->fonction;} ?>" /></p>
<p><label for="photo">Photo : </label><input type="file" name="fichier" /></p>
<input type="hidden" name="max_file_size" value="5242880">
<p><label for="mail">Mail : </label><input type="text" name="mail" value="<?php if (isset($_GET["show"])) {echo $tiroir->mail;} ?>" /></p>
<p><label for="texte">Texte: </label><textarea class="ckeditor" id="editeur" name="texte" value="<?php if (isset($_GET["show"])) {echo $tiroir->texte;} ?>"></textarea>
<script type="text/javascript">
CKEDITOR.replace( 'editor1' );
</script>
<input type="hidden" name="id" value="<?php if (isset($_GET["show"])) {echo $tiroir->id;} else {echo "0";} ?>" />
<p><input type="submit" /></p>
</fieldset>
</form>
<h2>Les personnes:</h2>
<ul class="liste">
<?php
while($tiroir = mysql_fetch_object($resultat)){?>
<li><?php echo $tiroir->nom; ?> <?php echo $tiroir->prenom; ?>
<p>Fonction: <?php echo $tiroir->fonction; ?></p>
<p>Photo: <?php echo $tiroir->photo; ?></p>
<p>Texte: <?php echo $tiroir->texte; ?></p>
<p>Mail: <?php echo $tiroir->mail; ?></p>
<a href="<?php echo $_SERVER["PHP_SELF"]; ?>?show=<?php echo $tiroir->id; ?>">Modifier</a> -
<a href="<?php echo $_SERVER["PHP_SELF"]; ?>?del=<?php echo $tiroir->id; ?>" onclick="return confirmation();">Supprimer</a>
</li>
<?php }?>
</ul>
</div>
</div>
<?php include("footer.php"); ?>
</div>
</body>
</html>
* page avec ma fonction d'upload (en include sur la page précédente) *
<?php
function upload(){
$tempName = $_FILES["fichier"]["tmp_name"];
$name = $_FILES["fichier"]["name"];
$destination= "uploads/$name";
move_uploaded_file($tempName, $destination);
}
?>
Voilà où mon travail en est, je vous avoue n'avoir jamais réalisé de limitations en ce qui concerne les fichiers, si quelqu'un pouvait m'expliquer, cela serait très aimable à vous.
En attendant de l'aide, je vous souhaite à tous et toutes une bonne journée!