Page 1 sur 1

Erreur isup

Posté : 13 avr. 2022, 22:26
par OUROUQUE
Bonjours je travaille actuellement sur la conception d'une GED et j'ai une erreur que je n'arrive pas à résoudre depuis 2 semaines qui me dit "Undefined method 'isup`."
Merci.

Re: Erreur isup

Posté : 14 avr. 2022, 11:11
par @rthur
L'avantage de PHP c'est que les messages sont plutôt explicite et indique là où se situe l'erreur donc regarde le fichier concerné + le numéro de ligne et où est indiqué isup car c'est probablement utilisé sur un objet qui n'a pas cette méthode, mais on ne peut pas t'en dire davantage vu qu'on ne connait pas ton code.

Re: Erreur isup

Posté : 16 avr. 2022, 13:10
par OUROUQUE
Voila le code je ne comprend vraiment pas


<?php
class ged_files{
public $db;
public $extAccepted;
public $fileState;

function __construct(){
$this->extAccepted=array(
"application/pdf",
"image/jpeg",
"image/png"
);


require_once('mysql.php');
$db = new mysqlConnector();
$this->db = $db->dataBase ;
}


//INSERT INTO `ged_files` (`id`, `name`, `type`, `date`, `url`) VALUES (NULL, 'name', 'application', CURRENT_TIMESTAMP, 'Http://jesaispas\r\n');
function copyFile($file){
$destDir = str_replace('class\mdl_ged_files.php','folderRoot', __FILE__);
$name=$file['fichier']['name'];
$fileName= time()."_".$name;
$type=$file['fichier']['type'];
$tmp_name=$file['fichier']['tmp_name'];
$error=$file['fichier']['error'];
$size=$file['fichier']['size'];
if($this->isup($tmp_name)){
$this->fileState.="le fihier n'as pas été uploader de maniere réguilere";
echo"le fihier n'as pas été uploader de maniere réguilere";
die();
}
if(!in_array($type, $this->extAccepted)){
echo 'format incorecte';
die();
}
//expression régulière qui permet de vérifier que le fichier ne cache pas son type pour hack
if(preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#',$name)){
echo'tentative de hack';
die();
}
//si il y a une erreur renvoie
if($error !="0"){
echo'erreur de upload';
die();
}
//si le fichier fait plus de 100 mo pas accepter
if($size <100000){
echo'erreur de taille';
die();
if (move_uploaded_file($tmp_name,$destDir.DIRECTORY_SEPARATOR.$fileName)){
$m = array("succes","Le fichier à bien était téléchargé");
}
else{
$m = array("error","Le fichier n'à pas était téléchargé");
}

}
/**vérifie si le fichier à bien été charger */

function isup($tmp_name){
if(!is_uploaded_file($tmp_name)){
true;
}else{
false;
}
}
}

}
?>

Re: Erreur isup

Posté : 16 avr. 2022, 13:18
par or 1
<?php
class ged_files
{
    public $db;
    public $extAccepted;
    public $fileState;

    function __construct()
    {
        $this->extAccepted = array(
            "application/pdf",
            "image/jpeg",
            "image/png"
        );

        require_once ('mysql.php');
        $db = new mysqlConnector();
        $this->db = $db->dataBase;
    }

    //INSERT INTO `ged_files` (`id`, `name`, `type`, `date`, `url`) VALUES (NULL, 'name', 'application', CURRENT_TIMESTAMP, 'Http://jesaispas\r\n');
    function copyFile($file)
    {
        $destDir = str_replace('class\mdl_ged_files.php', 'folderRoot', __FILE__);
        $name = $file['fichier']['name'];
        $fileName = time() . "_" . $name;
        $type = $file['fichier']['type'];
        $tmp_name = $file['fichier']['tmp_name'];
        $error = $file['fichier']['error'];
        $size = $file['fichier']['size'];
        if ($this->isup($tmp_name))
        {
            $this->fileState .= "le fihier n'as pas été uploader de maniere réguilere";
            echo "le fihier n'as pas été uploader de maniere réguilere";
            die();
        }
        if (!in_array($type, $this->extAccepted))
        {
            echo 'format incorecte';
            die();
        }
        //expression régulière qui permet de vérifier que le fichier ne cache pas son type pour hack
        if (preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name))
        {
            echo 'tentative de hack';
            die();
        }
        //si il y a une erreur renvoie
        if ($error != "0")
        {
            echo 'erreur de upload';
            die();
        }
        //si le fichier fait plus de 100 mo pas accepter
        if ($size < 100000)
        {
            echo 'erreur de taille';
            die();
            if (move_uploaded_file($tmp_name, $destDir . DIRECTORY_SEPARATOR . $fileName))
            {
                $m = array(
                    "succes",
                    "Le fichier à bien était téléchargé"
                );
            }
            else
            {
                $m = array(
                    "error",
                    "Le fichier n'à pas était téléchargé"
                );
            }

        }
        /**vérifie si le fichier à bien été charger */

        function isup($tmp_name)
        {
            if (!is_uploaded_file($tmp_name))
            {
                true;
            }
            else
            {
                false;
            }
        }
    }

}
?>
avec un indentation correcte, on se rend rapidement compte du problème.
et vu ce que fait la fonction isup, on peut se poser la question de l’intérêt de cette fonction.