par
moogli » 10 déc. 2011, 16:48
oui t'a pas chercher a comprendre le code je pense ?
cette fonction retourne un tableau que tu n'a pas dans ton code.
cette fonction contient l'information de "validation" et si besoin de le message d'erreur.
il te manque
$return[] = $valid;
$return[] = $erreur;
return $return;
si tu fait
$retour = up_error($error,$fichier);
$retour[0] aura pour valeur true / false en fonction du code erreur (true pour un upload ok et false pour le reste) et le message d'erreur qui va bien dans $retour[1] si $retour[0] === false.
c'est pas super pratique, j'ai pu dire soit c'est true soit c'est retour d'erreur mais bon vu que tout le monde utilise le == la comparaison a true aurait toujours fonctionné, même en cas d'erreur (parce que true == 'nimporte quelle chaine de caractère sauf zéro / false'

)
sinon il aurait fallu un tite objet du style
<?php
class validerror {
private $error;
public function up_error($code,$nom='') {
switch ($code) {
case UPLOAD_ERR_OK : $this->error = 'Pas d\'erreur';$valid = true;break;
case UPLOAD_ERR_INI_SIZE : $this->error = 'Votre fichier `'.$nom.'` dépasse la taille maximale d\'upload autorisée par PHP( '.get_cfg_var('upload_max_filesize').' )';$valid = false;break;
case UPLOAD_ERR_FORM_SIZE : $this->error = 'Votre fichier dépasse la taille maximale demandée par le Webmestre';$valid = false;break;
case UPLOAD_ERR_PARTIAL : $this->error = 'Le fichier n\'a été que partiellement téléchargé. !!!';$valid = false;break;
case UPLOAD_ERR_NO_FILE : $this->error = 'Aucun fichier téléchargé !!!';$valid = false;break;
case UPLOAD_ERR_NO_TMP_DIR : $this->error = 'Un dossier temporaire est manquant.'
case UPLOAD_ERR_CANT_WRITE : $this->error = 'Échec de l\'écriture du fichier sur le disque.'
case UPLOAD_ERR_EXTENSION : $this->error = 'Une extension PHP a arrété l\'envoi de fichier. PHP ne propose aucun moyen de déterminer quelle extension est en cause. L\'examen du phpinfo() peut aider.';
default : $this->error = 'L\'upload a rencontré une erreur inconnue !!!';$valid = false; break;
}
return $valid;
}
public function getError(){
return $this->error;
}
}
?>
mais a ce niveau la autant faire une classe pour tout l'upload
@+