JJEMedlem sedan juni 2000144 inlägg Frågan#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!
<?
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."
JJEMedlem sedan juni 2000144 inlägg 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]
Ä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."