IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Problème de syntaxe


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Par défaut Problème de syntaxe
    Bonjour à tous !

    Je me décide enfin à écrire pour trouver une réponse à mon problème.

    En effet, cela fait maintenant plus de 2 jours que j'essaye de trouver la bonne syntaxe pour le code ci-dessous.

    Voilà ce que je souhaite faire et ce qui fonctionne :

    1/ J'ai créer, à partir de divers scripts, un script permettant d'uploader un fichier. En uploadant celui-ci, je souhaite :
    1. Vérifier le type de fichier (ex. : pdf, avi, jpg, etc.) et si celui-ci est valide alors on passe à l'étape suivante, sinon on a un message d'alerte.
    2. Vérifier son poids, si celui-ci ne dépasse pas un poids maximal et si tel est le cas, alors on a un message d'alert.
    3. Si tous les autres critères sont valides, alors on vérifie si le fichier porte le même nom qu'un fichier existant se trouvant dans le même dossier, et si c'est le cas, alors on ajoute la date à son nom, sinon on copie simplement le fichier avec sont nom.
    Et si possible, supprimer les espaces dans le fichier par le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $extension_upload = substr( strrchr($_FILES['fichier']['name'], '.') ,1);

    Ce qui fonctionne :
    Le dernier point (n°3) fonctionne, à savoir que j'upload un fichier, s'il n'est pas existant, alors il est copié tel quel, sinon la date est ajouté à son nom, mais laisse les espaces, donc le code cité ci-dessus ne fonctionne pas.

    Mais mon soucis, c'est que j'upload tout et n'importe quoi, c'est à dire que je peux uploader des fichiers qui ne se retrouvent pas dans mon tableau d'acceptation, et en plus, j'upload sans tenir compte du poids.

    Donc en somme, j'upload sans vérification au préalable, ce qui me fait dire que le script ne tient compte QUE de la partie d'ajout de la date (ligne 53 à 62).

    Je me débrouille mieux en html qu'en PHP, mais là, j'ai essayé toutes les combinaisons qui me paraissaient faisables et logiques.

    Donc j'en appelle à vos connaissance et à votre savoir-faire.

    Un grand merci anticipé à ceux qui prennent de leur temps pour me guider, voire me remettre le script dans une syntaxe correcte.

    LES ELEMENTS :
    (1- Le html nommé "upload.html" et 2- Le script PHP nommé "ulpoad.php3)


    ***HTML ***
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Multi-upload facile avec JQUERY</title>
    <link rel="stylesheet" href="style.css" type="text/css" />
    </head>
    <body>
    <form enctype="multipart/form-data" action="upload.php3" method="post">
    Fichier : <input name="fichier" type="file">
    <input type="submit" value="Envoyer">
    </form>
    </body>
    </html>


    ***PHP***
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    <?
    // Taille maximum
    $MAX_FILE_SIZE = 100;
     
    // Dossier de destination du fichier
    $folder = "upload/";
     
    // Tableau array des différents types
    $allowed_types = array(
    "image/bmp", 
    "image/gif", 
    "image/pjpeg", 
    "image/jpeg", 
    "image/jpg", 
    "image/png", 
    "image/tiff",
    "application/postscript",
    "image/psd",
    "application/x-shockwave-flash", 
    "multipart/x-zip", 
    "application/msword", 
    "application/excel",
    "application/vnd.ms-powerpoint", 
    "application/pdf",
    "text/html", 
    "text/css",
    "audio/aiff",
    "audio/mpeg",
    "audio/wav",
    "audio/x-ms-wma",
    "video/msvideo", 
    "video/avi",
    "video/mpeg",
    "video/x-ms-wmv"
    );
     
    // Variables récupérées par méthode POST du formulaire
    $fname = $_FILES['fichier']['name'];
    $ftype = $_FILES ['fichier']['type'];
    $fsize = $_FILES ['fichier']['size'];
    $ftmp = $_FILES ['fichier']['tmp_name'];
    $extension_upload = substr( strrchr($_FILES['fichier']['name'], '.') ,1); 
     
    // Divers tests afin de savoir si :
     
    // Le format de fichier correspond à notre tableau array
    if(!in_array($ftype, $allowed_types)){$error = 1;}
     
    // La taille du fichier n'est pas dépassée
    if($fsize > $MAX_FILE_SIZE){$error = 2;}
     
    // Si le fichier existe déjà
    if (file_exists('./upload/'.$fname))
    {
    //Si le fichier existe, on rajoute dans son nom, la date et l'heure pour le différencier de la première (comme ça, on est sûr de ne pas avoir 2 images avec le même nom)
    $nom_final= preg_replace("`.$extension_upload`is",date("ldSFY-h.i.s-A").".$extension_upload",$fname);
    }
    else {
    $nom_final=$fname; //l'image n'existe pas on garde le même nom
    }
    //on déplace l'image dans le répertoire final
    move_uploaded_file($ftmp,'./upload/'.$nom_final); {$error = 0;}
     
     
    // Messages avec apostrophe
    $m1 = ' à l\'emplacement suivant : ';
    $m2 = htmlspecialchars($m1);
     
     
    // Switch servant simplement à la gestion des erreures
    switch($error){
    case'0':
    echo("<h3>Fichier correctement envoyé !</h3>");
    echo ('<br/>');
    echo ('<br/>');
    //L'image apparait après validation avec son nom, son emplacement, son type et son poids
    echo '<img src="./upload/'.$nom_final.'" border="0" />';
    echo "<br/><br/>Le nom dorigine du fichier est '" . $fname . "'.<br/>";
    echo "Le fichier a été téléchargé avec succès"  . $m2  . '/upload/'.$nom_final . "'<br/>";
    echo "Le type du fichier est '" . $ftype . "'.<br/>";
    echo "La taille du fichier est de '" . $fsize . " octets'.<br/>";
    echo '<a href="javascript:history.back();" align="center">Retour</a>';
    break;
    case'1':
    echo("Format de fichier incorrecte.");
    break;
    case'2':
    echo("Fichier trop volumineux.");
    break;
    }
    ?>


    MERCI pour toutes vos futures réponses

    Belokan

    PS : si ce n'est pas le bon endroit pour poster cette demande, merci de m'indiquer dans quelle partie du forum je dois la poster.

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Par défaut
    La réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    <?
    // Taille maximum
    $MAX_FILE_SIZE = 100;
     
    // Dossier de destination du fichier
    $folder = "upload/";
     
    // Tableau array des différents types
    $allowed_types = array(
    "image/bmp", 
    "image/gif", 
    "image/pjpeg", 
    "image/jpeg", 
    "image/jpg", 
    "image/png", 
    "image/tiff",
    "application/postscript",
    "image/psd",
    "application/x-shockwave-flash", 
    "multipart/x-zip", 
    "application/msword", 
    "application/excel",
    "application/vnd.ms-powerpoint", 
    "application/pdf",
    "text/html", 
    "text/css",
    "audio/aiff",
    "audio/mpeg",
    "audio/wav",
    "audio/x-ms-wma",
    "video/msvideo", 
    "video/avi",
    "video/mpeg",
    "video/x-ms-wmv"
    );
     
    // Variables récupérées par méthode POST du formulaire
    $fname = $_FILES['fichier']['name'];
    $ftype = $_FILES ['fichier']['type'];
    $fsize = $_FILES ['fichier']['size'];
    $ftmp = $_FILES ['fichier']['tmp_name'];
    $extension_upload = substr( strrchr($_FILES['fichier']['name'], '.') ,1); 
     
    // Divers tests afin de savoir si :
     
    // Le format de fichier correspond à notre tableau array
    if(!in_array($ftype, $allowed_types)){$error = 1;}
     
    // La taille du fichier n'est pas dépassée
    else if($fsize > $MAX_FILE_SIZE){$error = 2;}
     
     
    else
    {
          // Si le fichier existe déjà
          if (file_exists('./upload/'.$fname))
    	  {
    	  //Si le fichier existe, on rajoute dans son nom, la date et l'heure pour le différencier de la première (comme ça, on est sûr de ne pas avoir 2 images avec le même nom)
    	  $nom_final= preg_replace("`.$extension_upload`is",date("ldSFY-h.i.s-A").".$extension_upload",$fname);
    	  }
    	  else {
    	  $nom_final=$fname; //l'image n'existe pas on garde le même nom
    	  }
    	  //on déplace l'image dans le répertoire final
    	  if (move_uploaded_file($ftmp,'./upload/'.$nom_final)) {$error = 0;}
    	  else
    	  {$error = 3;}
    }
     
    // Messages avec apostrophe
    $m1 = ' à l\'emplacement suivant : ';
    $m2 = htmlspecialchars($m1);
     
     
    // Switch servant simplement à la gestion des erreures
    switch($error){
    case'0':
    echo("<h3>Fichier correctement envoyé !</h3>");
    echo ('<br/>');
    echo ('<br/>');
    //L'image apparait après validation avec son nom, son emplacement, son type et son poids
    echo '<img src="./upload/'.$nom_final.'" border="0" />';
    echo "<br/><br/>Le nom dorigine du fichier est '" . $fname . "'.<br/>";
    echo "Le fichier a été téléchargé avec succès"  . $m2  . '/upload/'.$nom_final . "'<br/>";
    echo "Le type du fichier est '" . $ftype . "'.<br/>";
    echo "La taille du fichier est de '" . $fsize . " octets'.<br/>";
    echo '<a href="javascript:history.back();" align="center">Retour</a>';
    break;
    // Les messages des erreurs
    case'1':
    echo("Format de fichier incorrecte.<br/>");
    echo '<a href="javascript:history.back();" align="center">Retour</a>';
    break;
    case'2':
    echo("Fichier trop volumineux.<br/>");
    echo '<a href="javascript:history.back();" align="center">Retour</a>';
    break;
    case'3':
    echo("Erreur lors du déplacement du fichier.<br/>");
    echo '<a href="javascript:history.back();" align="center">Retour</a>';
    break;
    }
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de syntaxe - elements['x'].value
    Par Equus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/02/2005, 11h22
  2. [Interbase] Problème de syntaxe SQL
    Par navis84 dans le forum InterBase
    Réponses: 4
    Dernier message: 22/12/2004, 17h07
  3. Problème de syntaxe
    Par Mister_FX dans le forum ASP
    Réponses: 5
    Dernier message: 30/06/2004, 10h01
  4. Problème de syntaxe ADO ...
    Par bendev dans le forum ASP
    Réponses: 2
    Dernier message: 15/04/2004, 14h38
  5. Réponses: 2
    Dernier message: 08/03/2004, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo