Erreur isup

Petit nouveau ! | 2 Messages

13 avr. 2022, 22:26

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.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

14 avr. 2022, 11:11

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.
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 2 Messages

16 avr. 2022, 13:10

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;
}
}
}

}
?>

Mammouth du PHP | 2703 Messages

16 avr. 2022, 13:18

<?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.