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 :

Formulaire et switch


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Formulaire et switch
    Salut tout le monde,
    Voila j'ai certainement du faire une erreur dans mon code je ne vois pas où, Je voudrais que en fonction de ce que je choisi dans ma liste déroulante. Le fichier à uploader soit envoyé dans un dossier different le souci. C'est que ici il ne prend en compte que le default.. Merci d'avance voici le formulaire suivi du code php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    		<select name="choice" >
    		<option value="Alcohol">Alcohol</option>
    		<option value="Others">Others</option>
    		</select>
    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
     
    	<?
    	$choice = isset($_POST['choice']) ? $_POST['choice'] : '';
     	switch($choice) {
     
    	case 'Alcohol':
    	$content_dir='./upload/Alcoholdocs/.';
    	break;
     
    	case 'Others':
    	$content_dir='./upload/Buyllingdocs/.';
    	break;
     
    	default:
    	$content_dir='./upload/defaultdocsfile/.';
     
    }
     
     
    	if( isset($_POST['upload']) ){
     
        $tmp_file = $_FILES['fichier']['tmp_name'];
     
        if( !is_uploaded_file($tmp_file) )
        {
            exit("can't find the file<br><a href='cookie.php' class='type1'>go back to the upload page</a></font>");
        }
     
     
     
        $name_file = $_FILES['fichier']['name'];
     
        if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
        {
     
            exit("Can't copy the file in $content_dir");
     
        }
     
        echo "File uploaded</font><br>";
       echo "<a href='cookie.php' class='type1'>go back to the uploading page</a>";
     
     
    }?>

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut


    Tu devrais un var_dump de $choice juste avant le switch car je doute qu'il contienne ce que tu souhaites.

    PS :
    - Evite les short tags ( <? )
    - Evite la syntaxe alternative du if else, préfère le simple et largement plus lisible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $choice ='';
    if (isset($_POST['choice']) $choice = $_POST['choice'];

  3. #3
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    effectivement il me renvoi string(0)
    donc l'erreur survient avant.
    En fait je penses savoir d'où elle vient:
    En fait le formulaire et le code php ne sont pas dans la même page.
    Donc il faut que je rajoute action="upload.php" upload.php étant la page dans laquelle est mon code php. Mais bon en faisant ca, ca ne marche toujours pas.

  4. #4
    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
    Montre nous le code de la page qui contient le formulaire pour voir!

  5. #5
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Attends je crois qu'il y a un truc que tu ne comprends pas en fait. Tu dois avoir un truc de ce style : formulaire.html
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form method="post" action="upload.php">
      <select name="choice" >
        <option value="Alcohol">Alcohol</option>
        <option value="Others">Others</option>
      </select>
    </form>
    upload.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
    <?php
    	$choice ='';
    if (isset($_POST['choice']) $choice = $_POST['choice'];
     	switch($choice) {
     
    	case 'Alcohol':
    	$content_dir='./upload/Alcoholdocs/.';
    	break;
     
    	case 'Others':
    	$content_dir='./upload/Buyllingdocs/.';
    	break;
     
    	default:
    	$content_dir='./upload/defaultdocsfile/.';
     
    }
     
     
    	if( isset($_POST['upload']) ){
     
        $tmp_file = $_FILES['fichier']['tmp_name'];
     
        if( !is_uploaded_file($tmp_file) )
        {
            exit("can't find the file<br><a href='cookie.php' class='type1'>go back to the upload page</a></font>");
        }
     
     
     
        $name_file = $_FILES['fichier']['name'];
     
        if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
        {
     
            exit("Can't copy the file in $content_dir");
     
        }
     
        echo "File uploaded</font><br>";
       echo "<a href='cookie.php' class='type1'>go back to the uploading page</a>";
     
    }?>
    et tes 2 fichiers formulaire.html et upload.php doivent se situer dans le même dossier, sinon il y aura un problème avec le code ci-dessus.

  6. #6
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Non Non, Ils sont bien dans le même dossier.

  7. #7
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    En ayant la configuration que je t'ai marqué ci-dessus tu n'as rien dans $_POST['choice'] lorsque tu sélectionnes une valeur dans ta liste déroulante du formulaire.html ???

  8. #8
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Non, le var_dump affiche toujours string(0)
    Et le fichier est toujours uploadé dans le dossier par default.
    Je vois pas du tout où est l'erreur. :/
    Merci de ton coup de main en tout cas.

    Voici la page contenant le 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
    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
    105
    106
    107
    <?
     
    if(@$_POST["pass"]=="katescakes") {
     
       setcookie("passe2","ok");
       Header("Location: ".$_SERVER["PHP_SELF"]);
     
     
    } elseif(@$_GET["pass"]=="no") {
       setcookie("passe2");
       Header("Location: ".$_SERVER["PHP_SELF"]);
    }
    $isOK = (@$_COOKIE["passe2"]!="");
     
    if($isOK) { ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
        <head>
            <title>add document</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		 <link href="format.css" rel="stylesheet" type="text/css" />
        </head>
    <body>
    		<div id="header2">
    		</div>
    		<ul id="menu">
    			<li ><a  href="home.html" type=>Home</a></li>
    			<li style="font-size:0.9em"><a href="Head-Resources.html">Human Resources</a></li>
    			<li><a href="index1.html"> Health & Safety </a></li>
    			<li><a href="index1.html">Technical QA</a></li>
    			<li><a href="index1.html">KPIS</a></li>
    			<li><a href="index1.html">News</a></li>
    			<li><a href="Contacts.php">Contacts</a></li>
    		</ul>
    		<div id="background">
    		<br />
     
            <h2 style="margin:20px ;font-weight:high; font-size:1em">Add a new document on the Intranet</h2>
    		<div>
    		</select>
           </div>
    		<p style="margin:20px; font-size:0.7em" >select a page</p>
    		<form method="post" action="upload.php">
    		<select name="choice" >
    		<option value="Alcohol">Alcohol</option>
    		<option value="Others">Others</option>
    		</select>
    		</form>
    	    <p style="margin:20px; font-size:0.7em">
    		<form method="post" enctype="multipart/form-data" action="upload.php" style="margin:20px">
    		<input type="file" name="fichier" size="30">
    		<input type="submit" name="upload" value="Upload">
    		</form>	
    		<p style= "margin:20px; font-size:0.8em">
    		<a href="filemanager.php" class="type1">Go to the File Manager </a>
            <hr />  
    		<p style= "margin:20px; font-size:0.7em">
    			Allowed people Only !!
            </p>
    		   <center>
       <A href="?pass=no" class="type1">Déconnecter</A> -
       </center><hr>
    		</div>
    		</div>
    		<div id="cake">
    		</div>
        </body>
    </html>
     
     
    <? 
    } else { ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
        <head>
            <title>add document</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		 <link href="format.css" rel="stylesheet" type="text/css" />
        </head>
    <body>
    		<div id="header2">
    		</div>
    		<ul id="menu">
    			<li ><a  href="home.html" type=>Home</a></li>
    			<li style="font-size:0.9em"><a href="Head-Resources.html">Human Resources</a></li>
    			<li><a href="index1.html"> Health & Safety </a></li>
    			<li><a href="index1.html">Technical</a></li>
    			<li><a href="index1.html">KPIs</a></li>
    			<li><a href="index1.html">Company News</a></li>
    			<li><a href="Contacts.php">Contacts</a></li>
    		</ul>
    		<div id="background">
    		<br />
       <form method="post">
          <table><tr>
            <td><input style="margin:10px" type="password" name="pass"></td>
            <td><input style="margin:10px" type="Submit" value="Entrer"></td>
          </tr></table>
       </form>
       		</div>
    		</div>
    		<div id="cake">
    		</div>
        </body>
    </html>
    <? } ?>

  9. #9
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    ah ok.
    Je crois que tu devrais reprendre tes cours sur les formulaires
    Lorsque tu crées un form avec une liste déroulante, il faut bien que tu soummettes ce formulaire en cliquant sur un bouton "Envoyer".
    Toi, tu crées plusieurs formulaires pointant sur le même fichier upload.php dont seul le dernier à un bouton de soummission d'où ton souci.
    Essaie ceci:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form method="post" action="upload.php">
      <select name="choice" >
        <option value="Alcohol">Alcohol</option>
        <option value="Others">Others</option>    
        <input type="file" name="fichier" size="30">
        <input type="submit" name="upload" value="Upload">
      </select>
    </form>
    Maintenant tu devrais aovir une valeur dans $choice.

  10. #10
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Effectivement >.< I need SOMMEIL.
    Une bonne chose de réglée. Merci. Une autre erreur apparait:

    Notice: Undefined index: fichier in c:\program files\easyphp1-8\www\test\upload.php on line 42
    can't find the file

    Mais ca devrait aller. Je te tiens au jus si je galere

    Merci beaucoup.

  11. #11
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Ok c'est c'est RESOLU.
    Il manquait le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enctype="multipart/form-data"
    Dans le formulaire.
    Tu devrais revoir tes cours sur les formulaires
    En tout cas merci beaucoup à toi.
    à plus tard !!

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 01/06/2012, 10h32
  2. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 15h52
  3. []Problème avec les formulaires Outlook
    Par davidinfo dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59
  4. [VB6][Formulaire]Appliquer un Scrollbar a une Form
    Par Boil dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/11/2002, 03h51
  5. [CR] Tranfert de formulaire a travers une page HTMl
    Par LIEU dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 12/09/2002, 08h37

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