Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/08/2007, 13h29   #1
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 1
Points : 1
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 :
1
2
3
4
5
 
		<select name="choice" >
		<option value="Alcohol">Alcohol</option>
		<option value="Others">Others</option>
		</select>
Code :
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>";
 
 
}?>
saraz1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 14h10   #2
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605


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 :
1
2
$choice ='';
if (isset($_POST['choice']) $choice = $_POST['choice'];
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 15h16   #3
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 1
Points : 1
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.
saraz1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 15h18   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Montre nous le code de la page qui contient le formulaire pour voir!
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 15h21   #5
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
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 :
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 :
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.
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 15h24   #6
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 1
Points : 1
Non Non, Ils sont bien dans le même dossier.
saraz1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 15h38   #7
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
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 ???
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 15h47   #8
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 1
Points : 1
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 :
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>
<? } ?>
saraz1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 16h04   #9
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
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 :
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.
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 16h20   #10
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 1
Points : 1
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.
saraz1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 16h24   #11
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 1
Points : 1
Ok c'est c'est RESOLU.
Il manquait le
Code :
enctype="multipart/form-data"
Dans le formulaire.
Tu devrais revoir tes cours sur les formulaires
En tout cas merci beaucoup à toi.
à plus tard !!
saraz1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h08.


 
 
 
 
Partenaires

Hébergement Web