Avatar billede Slettet bruger
01. juli 2003 - 13:21 Der er 52 kommentarer og
2 løsninger

Ingen variabler overføres ved enctype=multipart/form-data

På min nye server overføres ingen formular variabler ved denne type formularer:

<form action=uploadbanner.php enctype="multipart/form-data" method=post>

Jeg har prøvet alt ($feltnavn, $_REQUEST["feltnavn"], $_POST["feltnavn"])
Avatar billede avminarm Juniormester
01. juli 2003 - 13:34 #1
<form enctype="multipart/form-data" action="uploadbanner.php" method="post">

du mgl nogle "" - ved ikke om det er det?
Avatar billede Slettet bruger
01. juli 2003 - 13:44 #2
Nej, det er ikke det.
Avatar billede avminarm Juniormester
01. juli 2003 - 13:50 #3
så vis lige lidt mere kode
Avatar billede Slettet bruger
01. juli 2003 - 14:03 #4
<form enctype="multipart/form-data" action="uploadbanner.php" method="post">
<input type="hidden" name="test" value="value">
</form>

uploadbanner.php:

<?
print "$test";
?>

Output = ingenting
Avatar billede ahv Nybegynder
01. juli 2003 - 14:16 #5
<?
echo $_POST'test'];
?>

?
Avatar billede Slettet bruger
01. juli 2003 - 14:19 #6
Stadig intet output...
Avatar billede ahv Nybegynder
01. juli 2003 - 14:20 #7
Prøv f.eks ->

<form action="test.php" method="post" enctype="multipart/form-data">
<b>Navn:</b><input type="text" name="navn"><br>
<input type="submit" value="send">
</form>

<?
echo $_POST'name'];
?>

vil den det?
Avatar billede ahv Nybegynder
01. juli 2003 - 14:21 #8
<?
echo $_POST['name'];
?>
Avatar billede avminarm Juniormester
01. juli 2003 - 14:21 #9
skal det ikke bare være tekst??
<form enctype="text" action="uploadbanner.php" method="post">
Avatar billede ahv Nybegynder
01. juli 2003 - 14:22 #10
Har lige testet, den vil ikke med mit forslag, den vil først hvis du har et file felt på.
Avatar billede ahv Nybegynder
01. juli 2003 - 14:23 #11
Næh, nu hvor jeg tester ordenligt så virker ->

<form action="test.php" method="post" enctype="multipart/form-data">
Navn:<input type="text" name="navn"><br>
<input type="submit" value="send">
</form>

<?
echo $_POST['navn'];
?>

Fint
Avatar billede ahv Nybegynder
01. juli 2003 - 14:23 #12
Dette virker også fint ->

<form action="test.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="navn" value="navn"><br>
<input type="submit" value="send">
</form>

<?
echo $_POST['navn'];
?>
Avatar billede ahv Nybegynder
01. juli 2003 - 14:24 #13
:o)
Avatar billede Slettet bruger
01. juli 2003 - 14:24 #14
Jeg tester også i en formular som har <input type=file> men der kommer stadig ingen variabler. Selv det velkendte phpBB script (www.phpbb.com) har samme fejl, når man vil uploade billeder, så det er ikke bare i min formular den er gal...
Avatar billede ahv Nybegynder
01. juli 2003 - 14:25 #15
netomia -> Kan du ikke prøve at lægge min fil op og kalde den test.php også lægge et link så vi kan se det?
Avatar billede tipsen Nybegynder
01. juli 2003 - 14:26 #16
Der mangler vel sådan set også submit-knap(per) ?
Avatar billede Slettet bruger
01. juli 2003 - 14:27 #17
Grunden er at på din tidligere server var register_globals sat til on.
Men som standart sættes den til off, da det jo er lidt svækkende på sikkerheden. Du kan jo vælge at sætte den til on, så kan du som du plejer skrive variablen direkte ud via $navn

men vil da råde dig til at kode med den som off. Så virker dit kode ligegyldig serveren.
Avatar billede tipsen Nybegynder
01. juli 2003 - 14:27 #18
...skal vist bare refreshe inden jeg poster...
Avatar billede ahv Nybegynder
01. juli 2003 - 14:28 #19
cypermann -> burde hans eget forslag -> 14:03:06 så ikke virke?
Avatar billede ahv Nybegynder
01. juli 2003 - 14:29 #20
Aaah, prøv med ->

<form action="test.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="navn" value="navn"><br>
<input type="submit" value="send">
</form>

<?
echo $HTTP_POST_VARS['navn'];
?>
Avatar billede Slettet bruger
01. juli 2003 - 14:29 #21
register_globals er on, og ja, så burde $_POST'test'] jo netop stadig virke.
Avatar billede ahv Nybegynder
01. juli 2003 - 14:30 #22
Nej når de er on skal du bruge ->

<form action="test.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="navn" value="navn"><br>
<input type="submit" value="send">
</form>

<?
echo $navn;
?>
Avatar billede ahv Nybegynder
01. juli 2003 - 14:31 #23
netomia -> Du har vel lagt mærke til de rer en fejl i den var jeg postede som du der postede igen? $_POST'test'] -> $_POST['test']
Avatar billede Slettet bruger
01. juli 2003 - 14:31 #24
Nu har jeg uploaded følgende:


<form action="test.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="navn" value="navn"><br>
<input type="submit" value="send">
</form>

<?
echo "Output: ".$_POST['navn'];
?>


til: http://www.worldbe.com/test.php
Avatar billede ahv Nybegynder
01. juli 2003 - 14:33 #25
Prøv med ->

<form action="test.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="navn" value="navn"><br>
<input type="submit" value="send">
</form>

<?
echo "Output: ".$navn;
?>

eller ->

<form action="test.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="navn" value="navn"><br>
<input type="submit" value="send">
</form>

<?
echo "Output: ".$HTTP_POST_VARS['navn'];
?>
Avatar billede Slettet bruger
01. juli 2003 - 14:41 #26
Avatar billede tipsen Nybegynder
01. juli 2003 - 14:42 #27
Prøv med:

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<input type="hidden" name="navn" value="testnavn"><br>
<input type="text" name="almfelt" value="default værdi"><br>
<input type="submit" value="send">
</form>

<?
if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
  echo '$GLOBALS: ' . print_r($GLOBALS) . '<br><br>';
  echo '$_POST: ' . print_r($_POST) . '<br><br>';
  echo '$_GET: ' . print_r($_GET) . '<br><br>';
  echo '$_REQUEST: ' . print_r($_REQUEST) . '<br><br>';
  echo '$HTTP_POST_VARS: ' . print_r($HTTP_POST_VARS) . '<br><br>';
  echo '$HTTP_GET_VARS: ' . print_r($HTTP_GET_VARS) . '<br><br>';
}
?>
Avatar billede tipsen Nybegynder
01. juli 2003 - 14:42 #28
Altså ovennævnte indhold i én og samme fil!!
Avatar billede tipsen Nybegynder
01. juli 2003 - 15:05 #29
Hvad var resultatet?
Avatar billede Slettet bruger
01. juli 2003 - 15:06 #30
tipsen, dit eksempel virker fint (http://www.worldbe.com/test.php) men hvis jeg tilføjer enctype til <form> så bliver der stadig ikke overført variabler: http://www.worldbe.com/test.php
Avatar billede tipsen Nybegynder
01. juli 2003 - 15:11 #31
Jeg synes ikke umiddelbart det er logisk, hvis det link du giver skulle være mit eksempel ovenfor - er det copy/pastet eller har du ændret noget?
Avatar billede ahv Nybegynder
01. juli 2003 - 15:13 #32
netomia -> Kan du ikke prøve at smække en fil op med indhold ->
<?php
echo phpinfo();
?>
Avatar billede Slettet bruger
01. juli 2003 - 15:13 #33
Ja, det er copy/paste. Link 2 skulle dog være: http://www.worldbe.com/test2.php
Avatar billede tipsen Nybegynder
01. juli 2003 - 15:18 #34
netomia: Har du ændret rækkefølgen i udskrivningen eller tilføjet flere ting - der kommer mere end jeg forventer og det kommer i en forkert rækkefølge!
Avatar billede Slettet bruger
01. juli 2003 - 15:20 #35
Avatar billede Slettet bruger
01. juli 2003 - 15:21 #36
tipsen, det er ren c/p. Vil du have FTP login? :)
Avatar billede ahv Nybegynder
01. juli 2003 - 15:21 #37
Register_globals er jo on, den burde fange den her ->

<form action="test.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="navn" value="navn"><br>
<input type="submit" value="send">
</form>

<?
echo $navn;
?>
Avatar billede tipsen Nybegynder
01. juli 2003 - 15:23 #38
enctype="multipart/form-data" er beregnet til at sende filer - dvs. sålænge dette ikke er tilfældet bør du holde dig til application/x-www-form-urlencoded som er default når der ikke angives en enctype!

Se: http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4
Avatar billede tipsen Nybegynder
01. juli 2003 - 15:24 #39
Desuden kan http://www.w3.org/TR/html4/interact/forms.html#h-17.13.2 varmt anbefales da mange tit fejler mht. denne forståelse af formularer.
Avatar billede tipsen Nybegynder
01. juli 2003 - 15:27 #40
netomia: Det som undrer mig er at det første der udskrives med echo er '$GLOBALS: ' - men det er ikke det første som optræder på siden!! (altså udover formularen selvfølgelig!) Du har ikke i din opsætning byttet rundt på betydningen af " og ' -vel?
Avatar billede ahv Nybegynder
01. juli 2003 - 15:29 #41
Her er registerer globals også sat til on ->
http://ban.dk/ahv/test.php

Fungere fint med ->
<form action="test.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="navn" value="navn"><br>
<input type="submit" value="send">
</form>

<?
echo $navn;
?>
Avatar billede tipsen Nybegynder
01. juli 2003 - 15:38 #42
html-standarden dikterer ikke hvordan browseren skal opføre sig med enctype="multipart/form-data", såfremt der ikke medsendes filer (så vidt jeg kan læse) - derfor kan udfaldet meget vel afhænge af hvilken browser man tester med!
Avatar billede ahv Nybegynder
01. juli 2003 - 15:40 #43
Virker fint her med ->
IE 6.0
NS 7.0
Mozilla 1.4
Avatar billede Slettet bruger
01. juli 2003 - 15:41 #44
Det er ikke pga. scriptet eller browseren men webserveren... vil jeg da gætte på. Selvom jeg har nøjagtig samme opsætning på mine andre servere, og da virker test.php
Avatar billede ahv Nybegynder
01. juli 2003 - 15:41 #45
Ja skulle lgie til at nævne at det må være noget med serveren, som du jo ikke kan gøre noget ved hvis det ikke er din.
Avatar billede Slettet bruger
01. juli 2003 - 15:43 #46
Det er min server - jeg har root.
Avatar billede ahv Nybegynder
01. juli 2003 - 15:45 #47
Har du prøvet at sætte registrer_globals til off? Hvilket også anbefales kraftigt.
Avatar billede tipsen Nybegynder
01. juli 2003 - 15:50 #48
Jeg forstår ikke det er så vigtigt for dig at benytte enctype="multipart/form-data" når det nu er beregnet til filer og du ikke sender filer?
Avatar billede Slettet bruger
01. juli 2003 - 15:52 #49
Jo, jeg skal netop bruge det til at uploade filer med...
Avatar billede tipsen Nybegynder
01. juli 2003 - 15:54 #50
Tror jeg har fundet problemet, som er en bug i php: http://bugs.php.net/bug.php?id=22807
Avatar billede tipsen Nybegynder
01. juli 2003 - 16:00 #51
Hvis du altså havde haft den version af php....

Der er tilsyneladende en del bugs, når den encoding type anvendes - vil foreslå dig at opdatere din php-server til noget nyere!

http://bugs.php.net/search.php?search_for=multipart&boolean=0&limit=10&order_by=&direction=ASC&cmd=display&status=All&bug_type=Any&php_os=&phpver=&assign=&author_email=&bug_age=0
Avatar billede Slettet bruger
01. juli 2003 - 16:09 #52
Jeg fandt følgende i php.ini:

file_uploads = Off

hvilket skulle være On. Tak for jeres tid dog!
Avatar billede tipsen Nybegynder
01. juli 2003 - 16:13 #53
lol - det er dog mærkeligt, at den ikke kan overføre variable på den måde - men det er så åbenbart enctype som php reagerer på for at afgøre om der bliver uploadet filer.
Avatar billede tipsen Nybegynder
01. juli 2003 - 16:13 #54
Mit forslag med at opdatere din php holder stadig da der er virkelig mange fejlrettelser i forhold til v. 4.1.2 som du kører med!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester