Bonjour,
ça fait un moment que je ne suis pas venu sur le forum, j'ai pas mal progressé depuis !
Cependant j'ai écris une fonction pour me permettre de filtrer les extension des fichier lors d'un upload.
Avec ce code je tombe sur mon erreur 4 donc je n'arrive pas a tester l'extension du fichier avec ma fonction j'aimerais juste savoir ce qui peu clocher.
Merci
ça fait un moment que je ne suis pas venu sur le forum, j'ai pas mal progressé depuis !
Cependant j'ai écris une fonction pour me permettre de filtrer les extension des fichier lors d'un upload.
$AUTH_EXT = array(".pdf", ".rar", ".zip");
function isExtAutorized($ext){
global $AUTH_EXT;
if(in_array($ext, $AUTH_EXT))
{
return true;
}else {
return false;
}
}
$dossier = '../../rapport/';
$fichier = basename ($_FILES['lien']['name']);
$taille_maxi = 100000;
$taille = filesize ($_FILES['lien']['tmp_name']);
$extension = strrchr ($_FILES['avatar']['name'], '.');
echo $extention;
//Début des vérifications de sécurité...
if (isExtAutorized($extension)) //Si l'extension n'est pas dans le tableau
{
if ($taille>$taille_maxi)
{
$file_auth = $_FILES['lien']['name'];
if (!isset ($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr ($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace ('/([^.a-z0-9]+)/i', '-', $fichier);
if (move_uploaded_file ($_FILES['lien']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
$req =$cnx->prepare("SELECT * FROM dossiers WHERE nom = :nom") or die("Error REQ!".$req.mysql_error());
$req->execute(array(
"nom"=>$_POST['nom']
));
$fichier = false;
while($row = $req->fetch(PDO::FETCH_ASSOC))
{
$fichier = true;
}if($fichier == true)
{
header('location: Addrapport.php?err=3');
}
$sql = $cnx->prepare('INSERT INTO dossiers(IDRapport, nom, file, date, IDClient)
VALUES("", :nom, :file, curdate(), :client)') or die(print_r($cnx->errorInfo(), TRUE));
$sql->execute(array(
"nom"=>$_POST['nom'],
"file"=>$file_auth,
"client"=>$_POST['clients']
));
header('location: Addrapport.php?err=1');
}else //Sinon (la fonction renvoie FALSE).
{
header('location: Addrapport.php?err=2');
}
}else {
echo $erreur;
}
}else {
header('location: Addrapport.php?err=5');
}
}else {
header('location: Addrapport.php?err=4');
}
}else {
/************ HEADER ************/
include("../includes/header.php");?>
<div id="contenue" class="row contenue-tablaux">
<?php if(isset($_GET['err']))
{?>
<div class="text-center col-lg-12"><?php
if($_GET['err'] == 1)
{?>
<p class="text-success bg-success"><small>Vous venez d'ajouter un nouveau fichier !</small></p><?php
}
if($_GET['err'] == 2)
{?>
<p class="text-danger bg-danger"><small>Echec de l'envoi !</small></p><?php
}
if($_GET['err'] == 3)
{?>
<p class="text-danger bg-danger"><small>Le nom du rapport éxiste déjà !</small></p><?php
}
if($_GET['err'] == 4)
{?>
<p class="text-danger bg-danger"><small>Vous devez ajouter un fichier de type .pdf, .rar ou .zip !</small></p><?php
}
if($_GET['err'] == 5)
{?>
<p class="text-danger bg-danger"><small>Le fichier est trop gros...!</small></p><?php
}?>
</div><?php
Avec ce code je tombe sur mon erreur 4 donc je n'arrive pas a tester l'extension du fichier avec ma fonction j'aimerais juste savoir ce qui peu clocher.
Merci