webForumDet fria alternativet

Session och Upload problem.

3 svar · 179 visningar · startad av JE

JEMedlem sedan juni 2000144 inlägg
#1

Försöker lägga in lite text i en session med det vill sig inte riktigt.

Får detta fel:
Warning: open(/tmp/sess_03ae8e8251d28aaff642e126a554a0f6, O_RDWR) failed: m (2) in D:\InetPub\test\upload.php on line 2

Warning: open(/tmp/sess_03ae8e8251d28aaff642e126a554a0f6, O_RDWR) failed: m (2) in Unknown on line 0

Warning: Failed to write session data. Please check that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

Koden ser ut på detta sett:

<?
session_register($test);
$test = "Hejsan!";
?>

i php.ini står det.
session.save_path = /tmp

tmp katalogen finns.

-------------------------------------

Sedan försökte jag mej på en filuppladdning. Inte heller det ville sig.

HTML kod för formuläret:

 <form enctype="multipart/form-data" action="upload2.php" method=POST name="upload">
  <input type="hidden" name="MAX_FILE_SIZE" value="1000">
  Send this file: 
  <input name="userfile" type="file">
  <input type="submit" value="Send File" name="submit">
</form>

PHP kod för att behandla uppladdningen:

<?
session_start() ;
print($test);
session_unregister("test");
print($testsession);
if (is_uploaded_file($userfile)) 
{
    copy($userfile, "D:\InetPub\upload\");
} 
else 
{
   print("NEHEPP DEN VILLE INTE!");
}
?>

Felmeddelandet jag får:
Parse error: parse error in D:\InetPub\webmail.swede.com\upload2.php on line 12

Line 12 = print("NEHEPP DEN VILLE INTE!");

Vad gör jag för fel?
Kan tilläggas att jag inte jobbat med PHP så mkt (newbie) =)
Tack på förhand!

Gislaved.netMedlem sedan juni 20001 521 inlägg
#2
<?
session_start() ;
print($test);
session_unregister("test");
print($testsession);
if (is_uploaded_file($userfile)) 
{
copy($userfile, "D:\\InetPub\\upload\\");
} else {
print("NEHEPP DEN VILLE INTE!");
}
?>

------------------
Gislaved.net
"Tänk på vad du säger så att du inte säger vad du tänker."

JEMedlem sedan juni 2000144 inlägg
#3

Bytte ut koden mot en annan då servern jag jobbar mot förmodligen inte har stöd för is_uploaded_file.

Nya kod:

function is_uploaded_file($filename) {
    if (!$tmp_file = get_cfg_var('upload_tmp_dir')) {
        $tmp_file = dirname(tempnam('', ''));
    }
    $tmp_file .= '/' . basename($filename);
    /* User might have trailing slash in php.ini... */
    return (ereg_replace('/+', '/', $tmp_file) == $filename);
}

if (is_uploaded_file($userfile)) {
    copy($userfile, "D:\\InetPub\\upload\\");
} else {
    echo "Possible file upload attack: filename '$userfile'.";
}

Nu kommer den så långt att den skriver ut...
Possible file upload attack: filename 'C:\\WINNT\\TEMP\\php13'.

Varför klarar den inte av att ladda upp filen?

[Redigerat av JE den 07 dec 2000]

Gislaved.netMedlem sedan juni 20001 521 inlägg
#4

Är du säker på att filen inte är för stor? 1000 bytes är inte mycket.

Det finns en hel del tips på http://www.php.net/manual/features.file-upload.php

------------------
Gislaved.net
"Tänk på vad du säger så att du inte säger vad du tänker."

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)