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

Langage PHP Discussion :

[Upload] Tester des variables vides


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 8
    Points
    8
    Par défaut [Upload] Tester des variables vides
    Bonjour à tous,

    J'aimerais une petite aide pour tester des variables :

    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
    <?
    
    $name_file = $_FILES['monfichier']['name']; 
    $source=$_FILES['monfichier']['tmp_name'];
    
    move_uploaded_file($source, "./".$name_file); 
    
    $extension=get_extension($name_file);
    
    $type="text/plain";
    if($type=="doc")
    {
       $type="text/vnd.ms-word";
    }
    else if($type=="xls")
    {
       $type="text/vnd.ms-excel";
    }
    
    $type2="image/png";
    
    if($extension=="gif")
    {
       $type2="image/gif";
    }
    else if($extension=="bmp")
    {
       $type2="image/bmp";
    }
    
    function get_extension($filename)
    {
       $parts = explode('.',$filename);
       $last = count($parts) - 1;
       $ext = $parts[$last];
       return $ext;
    }
    // vérification des champs
    if (empty($_POST['from']))
    $message .= "Votre email<br/>";
    if (empty($_POST['monfichier']))
    $message .= "Votre Curriculum Vitae au format .doc<br/>";
    
    //----------------------------------
    // Construction de l'entête
    //----------------------------------
    
    $boundary = "-----=".md5(uniqid(rand()));
    $header = "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
    $header .= "\r\n";
    
    $msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";
    
    $msg .= "--$boundary\r\n";
    
    $msg .= 'Content-Type: $type; charset=UTF-8';
    $msg .= "Content-Transfer-Encoding:8bit\r\n";
    
    if($name_file!="")
    {
    $file = $name_file;
    $fp = fopen($file, "rb");  
    $attachment = fread($fp, filesize($file));
    fclose($fp);
    
    $attachment = chunk_split(base64_encode($attachment));
    
    $msg .= "--$boundary\r\n";
    $msg .= "Content-Type: $type2; name=\"$file\"\r\n";
    $msg .= "Content-Transfer-Encoding: base64\r\n";
    $msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
    $msg .= "\r\n";
    $msg .= $attachment . "\r\n";
    $msg .= "\r\n\r\n";
    $msg .= "--$boundary--\r\n";
    }
    
    $destinataire = "monmail@test.com";
    $expediteur   = $_POST['from'];
    $reponse      = $expediteur;
    echo "Merci votre CV a bien été envoyé<br />";
    echo "Vous recevrez une réponse dans quelques jours";
    
    mail($destinataire,'CV provenant du site Internet', $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
    
    if($name_file!="")
    {
    unlink($name_file);
    }
    print("<br>\n");
    print("<br><A href=http://www.monsite.fr/ target=\"principal\"><font size=2>Retour sur le site</font></A>");
    ?>
    Deja le code en gras est il bon ?

    Ensuite je voudrais renvoyer une erreur si un des 2 champs ou les 2 ne sont pas remplis.

    Merci de votre aide.

  2. #2
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    Bonjour

    Citation Envoyé par pjipe
    Ensuite je voudrais renvoyer une erreur si un des 2 champs ou les 2 ne sont pas remplis.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(!isset($_POST['monPremierChamp']) && !isset($_POST['monSecondChamp'])){
        echo "remplir champs !!";
    }else{
      $maVar = $_POST['monPremierChamp'];
       ......
    }
    & pour le code en gras je ne peux rien te dire... sauf que pour $message l'as tu déclaré ?
    & $_POST['form'] ça vient d'où ?

    lien pratique :http://www.deformedweb.co.uk/php_variable_tests.php

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Ok merci akara de ton aide et je met tout ca ou dans mon code :

    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
    <?
     
    $name_file = $_FILES['monfichier']['name']; 
    $source=$_FILES['monfichier']['tmp_name'];
     
    move_uploaded_file($source, "./".$name_file); 
     
    $extension=get_extension($name_file);
     
    $type="text/plain";
    if($type=="doc")
    {
       $type="text/vnd.ms-word";
    }
    else if($type=="xls")
    {
       $type="text/vnd.ms-excel";
    }
     
    $type2="image/png";
     
    if($extension=="gif")
    {
       $type2="image/gif";
    }
    else if($extension=="bmp")
    {
       $type2="image/bmp";
    }
     
    function get_extension($filename)
    {
       $parts = explode('.',$filename);
       $last = count($parts) - 1;
       $ext = $parts[$last];
       return $ext;
    }
     
    //----------------------------------
    // Construction de l'entête
    //----------------------------------
     
    $boundary = "-----=".md5(uniqid(rand()));
    $header = "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
    $header .= "\r\n";
     
    $msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";
     
    $msg .= "--$boundary\r\n";
     
    $msg .= 'Content-Type: $type; charset=UTF-8';
    $msg .= "Content-Transfer-Encoding:8bit\r\n";
     
    if($name_file!="")
    {
    $file = $name_file;
    $fp = fopen($file, "rb");  
    $attachment = fread($fp, filesize($file));
    fclose($fp);
     
    $attachment = chunk_split(base64_encode($attachment));
     
    $msg .= "--$boundary\r\n";
    $msg .= "Content-Type: $type2; name=\"$file\"\r\n";
    $msg .= "Content-Transfer-Encoding: base64\r\n";
    $msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
    $msg .= "\r\n";
    $msg .= $attachment . "\r\n";
    $msg .= "\r\n\r\n";
    $msg .= "--$boundary--\r\n";
    }
     
    $destinataire = "monmail@test.fr";
    $expediteur   = $_POST['from'];
    $reponse      = $expediteur;
    echo "Merci votre CV a bien été envoyé<br />";
    echo "Vous recevrez une réponse dans quelques jours";
     
    if(!isset($_POST['from']) && !isset($_POST['monfichier'])){
        echo "remplir champs !!";
    }else{
      $maVar = $_POST['from'];
      $maVar = $_POST['monfichier'];
    } 
    mail($destinataire,'CV provenant du site Internet', $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
     
    if($name_file!="")
    {
    unlink($name_file);
    }
    print("<br>\n");
    print("<br><A href=http://www.monsite.fr target=\"principal\"><font size=2>Retour sur le site</font></A>");
    ?>
    Je sais pas si c'est cohérent.

    Merci.

  4. #4
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    tu ne peux pas faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $maVar = $_POST['from'];
    $maVar = $_POST['monfichier'];
    ici tu affecte d'abord le from ensuite tu le change par monfichier, donc tu perds $_POST['from'];
    il faut que tu fasse la distinction des 2 variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $maVar_from = $_POST['from'];
    $maVar_fichier = $_POST['monfichier'];
    mais d'ou sort $_POST['from'] ? et qu'est ce que c'est ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    a ouais ok en fait je pensais avoir adapté ton code au mien car $_POST['from']; correspond à mon premier champs et l'autre c'est le deuxième.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Je sais pas trop ou insérer le bout de code pour afficher une erreur lorsque un des 2 champs ou les 2 ne sont pas remplis ou saisis :

    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
    <?
     
    $name_file = $_FILES['monfichier']['name']; 
    $source=$_FILES['monfichier']['tmp_name'];
     
    move_uploaded_file($source, "./".$name_file); 
     
    $extension=get_extension($name_file);
     
    $type="text/plain";
    if($type=="doc")
    {
       $type="text/vnd.ms-word";
    }
    else if($type=="xls")
    {
       $type="text/vnd.ms-excel";
    }
     
    $type2="image/png";
     
    if($extension=="gif")
    {
       $type2="image/gif";
    }
    else if($extension=="bmp")
    {
       $type2="image/bmp";
    }
     
    function get_extension($filename)
    {
       $parts = explode('.',$filename);
       $last = count($parts) - 1;
       $ext = $parts[$last];
       return $ext;
    }
     
    //----------------------------------
    // Construction de l'entête
    //----------------------------------
     
    $boundary = "-----=".md5(uniqid(rand()));
    $header = "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
    $header .= "\r\n";
     
    $msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";
     
    $msg .= "--$boundary\r\n";
     
    $msg .= 'Content-Type: $type; charset=UTF-8';
    $msg .= "Content-Transfer-Encoding:8bit\r\n";
     
    if($name_file!="")
    {
    $file = $name_file;
    $fp = fopen($file, "rb");  
    $attachment = fread($fp, filesize($file));
    fclose($fp);
     
    $attachment = chunk_split(base64_encode($attachment));
     
    $msg .= "--$boundary\r\n";
    $msg .= "Content-Type: $type2; name=\"$file\"\r\n";
    $msg .= "Content-Transfer-Encoding: base64\r\n";
    $msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
    $msg .= "\r\n";
    $msg .= $attachment . "\r\n";
    $msg .= "\r\n\r\n";
    $msg .= "--$boundary--\r\n";
    }
     
    $destinataire = "monmail@test.fr";
    $expediteur   = $_POST['from'];
    $reponse      = $expediteur;
    echo "Merci votre CV a bien été envoyé<br />";
    echo "Vous recevrez une réponse dans quelques jours";
     
    if(!isset($_POST['from']) && !isset($_POST['monfichier'])){
        echo "remplir champs !!";
    }else{
    	$maVar_from = $_POST['from'];
    	$maVar_fichier = $_POST['monfichier'];
    } 
    mail($destinataire,'CV provenant du site Internet', $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
     
    if($name_file!="")
    {
    unlink($name_file);
    }
    print("<br>\n");
    print("<br><A href=http://www.monsite.fr target=\"principal\"><font size=2>Retour sur le site</font></A>");
    ?>
    Merci de m'aider, au moins me dire exactement ou insérer le code pour renvoyer l'erreur des champ(s) non rempli(s).

  7. #7
    Membre averti Avatar de nicocsgamer
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 321
    Points : 342
    Points
    342
    Par défaut
    Tu fais un if où tu vérifie la valeur de tes champs. Si ils sont corectes tu affiche le résultat sinon tu affiche l'erreur.

    Pour vérifier la valeur, tu fais un isset() pour vérifier que ta variable existe, ensuite tu compare ta valeur à "" ou 0 suivant ton besoin. Tu peux également vérifier que ta valeur est bien une chaine de caractère ou un nombre toujours suivant ton besoin.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Oui en gros c'est ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(!isset($_POST['from']) && !isset($_POST['monfichier'])){
        echo "remplir champs";
    }else{
    	$destinataire = "monmail@test.fr";
    	$expediteur   = $_POST['from'];
    	$reponse      = $expediteur;
    echo "Merci votre CV a bien été envoyé<br />";
    echo "Vous recevrez une réponse dans quelques jours";
     
    mail($destinataire,'CV provenant du site Internet', $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
    }
    Mais ça ne marche pas pour le test des champs, car le code complet je l'ai juste adapter pour que ça fonctionne, je débute en php donc j'ai un peu de mal :p

  9. #9
    Membre averti Avatar de nicocsgamer
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 321
    Points : 342
    Points
    342
    Par défaut
    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
     
    if(!isset($_POST['from']) && !isset($_POST['monfichier'])){
        echo "remplir champs";
    }else{
    if($_POST['from'] != "" && $_POST['monfichier'] != "") {
        $destinataire = "monmail@test.fr";
        $expediteur   = $_POST['from'];
        $reponse      = $expediteur;
    echo "Merci votre CV a bien été envoyé<br />";
    echo "Vous recevrez une réponse dans quelques jours";
     
    mail($destinataire,'CV provenant du site Internet', $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
    else {
      echo "mauvaises valeurs";
    }
    }

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Merci de ton aide nicocsgamer mais il y a une petite erreur Parse error: syntax error, unexpected T_ELSE in /home.10.7/chemin_complet/mail.php on line 90

    La ligne 90 correspond à la ligne en gras, pourtant ca à l'air correct :

    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
    if(!isset($_POST['from']) && !isset($_POST['monfichier'])){
        echo "remplir champs";
    }
    else{
    if($_POST['from'] != "" && $_POST['monfichier'] != "") {
        $destinataire = "monmail@test.fr";
        $expediteur   = $_POST['from'];
        $reponse      = $expediteur;
    echo "Merci votre CV a bien été envoyé<br />";
    echo "Vous recevrez une réponse dans quelques jours";
     
    mail($destinataire,'CV provenant du site Internet', $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
    else {
      echo "mauvaises valeurs";
    }
    }

  11. #11
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    il manque l'accolade fermant le if, avant le else.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    En effet merci, j'ai plus d'erreur seul problème, si je remplis le formulaire correctement, ca m'affiche la même erreur que si je remplis rien.

    Petit probleme

    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
    if(!isset($_POST['from']) && !isset($_POST['monfichier'])){
        echo "remplir champs";
    }
    else{
    if($_POST['from'] != "" && $_POST['monfichier'] != "") {
        $destinataire = "monmail@test.fr";
        $expediteur   = $_POST['from'];
        $reponse      = $expediteur;
    echo "Merci votre CV a bien été envoyé<br />";
    echo "Vous recevrez une réponse dans quelques jours";
     
    mail($destinataire,'CV provenant du site Internet', $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
    }
    else {
      echo "Merci de remplir tous les champs";
    }
    }

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Comme vous l'avez correctement utilisé en début de votre source, un fichier uploadé (ici monfichier) ne transite pas par la variable superglobale $_POST mais $_FILES. Vous devez donc adapter vos tests en conséquence.

    Par ailleurs, il serait préférable de ne pas faire d'affectation directe (peu importe la méthode, que ce soit $_GET, $_FILES ou autres) avant de l'avoir testé (fonction isset). Je pense à ces lignes de code dans votre premier message par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $name_file = $_FILES['monfichier']['name']; 
    $source=$_FILES['monfichier']['tmp_name'];

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Ok merci julp, j'avais pas trop fait attention, en effet le fichier upload est adapté à la méthode $_FILES et l'autre $_POST

    Merci ca marche nickel

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Je reviens vers vous car je me suis aperçu que si je ne mettez rien dans le champs du fichier envoyé en fichier joint, ca envoyé quand même le mail.

    EN revanche si je saisis que le champs fichier joint, m'affiche bien l'erreur.

    Si quelqu'un peut m'aider. Je rappele mon dernier bout de code qui teste les variables :

    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
    if(!isset($_POST['from']) && !isset($_FILES['monfichier'])){
        echo "remplir champs";
    }
    else{
    if($_POST['from'] != "" && $_FILES['monfichier'] != "" && $_POST['choix'] != "") {
        $destinataire = "monmail@test.fr";
        $expediteur   = $_POST['from'];
        $reponse      = $expediteur;
    echo "Merci votre CV a bien été envoyé<br />";
    echo "Vous recevrez une réponse dans quelques jours";
     
    mail($destinataire, "CV: $choix", $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
    }
    else {
      echo "Merci de remplir tous les champs";
    }
    }
     
    if($name_file!="")
    {
    }
    Je crois qu'on peut pas tester à la fois des $_POST et $_FILES mais je suis loin d'être expert en php malheureusement.

    Merci.

  16. #16
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!isset($_POST['from']) && !isset($_FILES['monfichier'])){
    Un ou logique serait certainement plus adéquat ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES['monfichier'] != ""
    Conceptuellement, $_FILES['monfichier'] est un tableau. Testez plutôt l'un de ses champs ($_FILES['nomfichier']['error'] != UPLOAD_ERR_OK par exemple).

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Ok j'ai essayé ca :

    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
    if($_POST['from'] != "" or $_FILES['monfichier'] != ""){
        echo "remplir champs";
    }
    else{
    if($_POST['from'] != "" && $_FILES['monfichier'] != "" && $_POST['choix'] != "") {
        $destinataire = "monmail@test.fr";
        $expediteur   = $_POST['from'];
        $reponse      = $expediteur;
    echo "Merci votre CV a bien été envoyé<br />";
    echo "Vous recevrez une réponse dans quelques jours";
     
    mail($destinataire, "CV: $choix", $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
    }
    else {
      echo "Merci de remplir tous les champs";
    }
    }
     
    if($name_file!="")
    {
    }
    Mais maintenant si je saisis tout j'ai quand même l'erreur.

    J'ai aussi essayé ca : $_FILES['nomfichier']['error'] != UPLOAD_ERR_OK mais ca m'afficher une erreur de syntaxe.

    Je suis un peu bloqué du coup maintenant :/

    Merci.

  18. #18
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par pjipe
    Mais maintenant si je saisis tout j'ai quand même l'erreur.
    Vous avez modifié la condition initiale (isset a disparu de la circulation). Et laquelle s'affiche ?

    Citation Envoyé par pjipe
    J'ai aussi essayé ca : $_FILES['nomfichier']['error'] != UPLOAD_ERR_OK mais ca m'afficher une erreur de syntaxe.
    Laquelle [d'erreur] ? Et dans quel contexte ? Quelle est votre version (précise) de PHP également ?

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Bin oui j'ai fais par rapport à ce que tu m'avais mis comme aide, je connais tres peu le php, donc j'apprend un peu comme ca.

    Apparement fallais compléter ou modifier mais n'ayant pas beaucoup de base, c'est pas facile.

    Si tu peux me dire ce qu'il faut modifier ca sera plus rapide peut être si tu le sais bien sur

    Merci.

  20. #20
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Ok c'est bon j'ai reussi, j'ai tester comme ca dans ma premiere condition :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if(empty($from) OR empty($monfichier) OR empty($choix)){
        echo "remplir champs";
    }
    else{
    if($_POST['from'] != "" && $_FILES['monfichier'] != "" && $_POST['choix'] != "") {
        $destinataire = "monmail@test.fr";
        $expediteur   = $_POST['from'];
        $reponse      = $expediteur;
    echo "Merci votre CV a bien été envoyé<br />";
    echo "Vous recevrez une réponse dans quelques jours";
     
    mail($destinataire, "CV: $choix", $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
    }
    Merci de votre aide Sujet résolu

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/03/2013, 11h22
  2. Tester si valeur variable vide
    Par xeron33 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 27/02/2013, 19h39
  3. Réponses: 9
    Dernier message: 27/04/2011, 17h19
  4. [variables] Tester des valeures à 1 ou 2
    Par elitemedia dans le forum Langage
    Réponses: 5
    Dernier message: 04/12/2006, 21h03
  5. Faire une boucle avec des variables vides ?
    Par byloute dans le forum Linux
    Réponses: 5
    Dernier message: 23/02/2006, 10h33

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