HTML formi:
<?php include("session.php"); if (!$_SESSION['tunnus'] ) { header("Location:login.php"); } else { include("fun.php"); yhdista(); $sql = "select id,nimi from kate"; $tulos = mysql_query($sql); ?> <html> <head> <title>Fin Web Design</title> <link rel="stylesheet" type="text/css" href="tyyli.css"> </head> <body> <div id="sivu"> <div id="logo"><br><img src="logo.png"></div> <div id="navi"> <?php include("navi.php"); ?> </div> <br> <div id="sisalto"> Kuvan maksimi koko on 95kt.<br> Lataustiedoston maksimi koko on 5mt. <form method="POST" action="upload2.php"> Kirjoita sivupohjan nimi:<br> <input type="text" name="nimi"><br> Kirjoita kuvaus sivupohjalle:<br> <input type="text" name="kuvaus"><br> <input type="hidden" name="upload" value="<?php print time(); ?>"> <?php include("upload.php"); ?> Valitse kategoria sivupohjalle:<br> <select name="kate"> <?php while ($rivi = mysql_fetch_assoc($tulos)) { echo "<option value=\""; echo $rivi['id']; echo "\" >"; echo $rivi['nimi'];"</option>"; } ?> </select><br> <input type="submit" value="Lisää sivupohja"> </form> </div> </div> <div id="copy"><br> © Fin Web Design </div> </body> </html> <?php } ?>
Käsittely:
<?php include("session.php"); if (!$_SESSION['tunnus']) { header("Location:login.php"); } $_SESSION['kate'] = $_POST['kate']; $_SESSION['nimi'] = $_POST['nimi']; $_SESSION['kuvaus'] = $_POST['kuvaus']; $conf['filetypes'] = array("bmp","jpg","jpeg","png","swf","svg","txt","gif"); $conf['linkki_filetypes'] = array("rar","zip","RAR","zip"); $conf['kuva_filesize'] = 1024; // Max. tiedoston koko Kt. Eli 1024 = 1MB, 2048 = 2MB. $conf['linkki_filesize'] = 5120; // Max. tiedoston koko Kt. Eli 1024 = 1MB, 2048 = 2MB. $conf['kansio'] = "upload/"; // Kansio minne kaikki laitetaan. $conf['fix_pahat_kirjaimet'] = true; // Muuttaa ääkköset aakkosiksi, poistaa ()[] jne. $conf['polku'] = ""; // Laitetaan alkuun joku osoite. Älä muuta jos et tiedä mitä olet tekemässä $conf['banned_ips'] = array("123.123.123.123","123.123.123.123"); // IP:t, jotka eivät voi lisätä tiedostoja. $conf['imagecheck'] = true; // Tarkistaa onko kyseessä oikeasti kuva, jos tiedostopääte on GIF, JPG, PNG, SWF, SWC, PSD, TIFF, BMP, IFF, JP2, JPX, JB2, JPC, XBM tai WBMP. $conf['nayta_tiedostot'] = true; // Näyttää listauksen upatuista tiedostoista $conf['session'] = "upload"; // SESSION:in nimi. Ei tarvitse muuttaa, jos et tajua sitä. $conf['charset'] = "ISO-8859-15"; // Merkistö. Yleensä ISO-8859-15 // Itse scripta. Älä koske enää ;) session_start(); // Merkistö header('Content-type: text/html; charset='.$conf['charset']); // Tarvittavat functiot function humanread($bytes) { $pp = array("B","KB","MB","GB","TB"); $menossa = 0; while ($bytes >= 1024) { $menossa++; $bytes = $bytes / 1024; } return round($bytes,2).$pp[$menossa]; } function msgdie($msg,$error=false) { print('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset='.$conf['charset'].'"> <LINK rel="stylesheet" type="text/css" href="'.$_SERVER['PHP_SELF'].'?css"> <title>File Upload - Ilmoitus</title> <style type="text/css"> </style> </head> <body> <center>'); if ($error == true) print '<div id="fileupload_error"><h1>Virhe</h1>'; else print '<div class="fileupload"><h1 id="ilo">Ilmoitus</h1>'; print (' '.$msg.' </div> </center> </body> </html>'); exit(); } // Jos uppaus? if (is_numeric($_POST['upload'])) { // Aikatarkistukset if (strlen($_POST['upload']) > (strlen(time()) * 100)) msgdie("Jotain ihmeellistä on tapahtunut...",true); if ($_POST['upload'] > time()) msgdie("Olet etuajassa.",true); if ($_SESSION[$conf['session']] == $_POST['upload']) msgdie("Olet nähtävästi yrittänyt painaa Refresh nappulaa. Paina mielummin <a href='".$_SERVER['PHP_SELF']."'>tästä</a>.",true); // Tiedostolle tarkistukset if ($_FILES['kuva']['size'] > ($conf['kuva_filesize'] * 1024)) die("Kuva tiedosto on liian suuri. Se voi olla vain 95kt"); if ($_FILES['linkki']['size'] > ($conf['linkki_filesize'] * 1024)) die("Lataus tiedosto on liian suuri. Se voi olla vain 5Mt"); if ($_FILES['linkki']['size'] == 0) msgdie("Et lähettänyt lataus tiedostoa",true); if ($_FILES['kuva']['size'] == 0) msgdie("Et lähettänyt kuva tiedostoa",true); // Tiedostonpääte list($kuva_paate) = array_reverse(explode(".",$_FILES['kuva']['name'])); $kuva_paate = strtolower($kuva_paate); if ($kuva_paate == "") msgdie("Kuva tiedostolla ei ollut päätettä!",true); $sallitaanko = false; foreach ($conf['filetypes'] as $sallittu) { if ($kuva_paate == strtolower($sallittu)) $sallitaanko = true; } list($linkki_paate) = array_reverse(explode(".",$_FILES['linkki']['name'])); $linkki_paate = strtolower($linkki_paate); if ($linkki_paate == "") msgdie("Lataus tiedostolla ei ollut päätettä!",true); $sallitaanko = false; foreach ($conf['linkki_filetypes'] as $sallittu) { if ($linkki_paate == strtolower($sallittu)) $sallitaanko = true; } if ($sallitaanko == false) msgdie("Jonkun Tiedoston pääte ei ole sallittu!",true); } // Nyt on siirron aika $kuva_nimi_orginal = basename($_FILES['kuva']['name']); $linkki_nimi_orginal = basename($_FILES['linkki']['name']); // ÄÄKKÖSKORJAUS if ($conf['fix_pahat_kirjaimet'] == true) { $kuva_nimi_orginal = str_replace(array("ä","ö","å","Ä","Ö","Å"," "),array("a","o","a","A","O","A","_"),$kuva_nimi_orginal); $kuva_nimi_orginal = preg_replace("[^a-zA-Z0-9]","",$kuva_nimi_orginal); } if ($conf['fix_pahat_kirjaimet'] == true) { $linkki_nimi_orginal = str_replace(array("ä","ö","å","Ä","Ö","Å"," "),array("a","o","a","A","O","A","_"),$linkki_nimi_orginal); $linkki_nimi_orginal = preg_replace("[^a-zA-Z0-9]","",$linkki_nimi_orginal); } // Harvinaista - mutta mahdollista if ($linkki_nimi_orginal == "") { $linkki_nimi_orginal = base64_encode(basename($_FILES['kuva']['name'])); } if ($kuva_nimi_orginal == "") { $kuva_nimi_orginal = base64_encode(basename($_FILES['kuva']['name'])); } $linkki_nimi = $linkki_nimi_orginal; $kuva_nimi = $kuva_nimi_orginal; $i = 1; while (is_file($conf['kansio'].$linkki_nimi)) { // Tiedosto on jo olemassa, eli keksitään uusi nimi $halkaistu = explode(".",$linkki_nimi_orginal); $halkaistu[0] = $halkaistu[0]."_".$i; $linkki_nimi = implode(".",$halkaistu); $i++; } $i = 1; while (is_file($conf['kansio'].$kuva_nimi)) { // Tiedosto on jo olemassa, eli keksitään uusi nimi $halkaistu = explode(".",$kuva_nimi_orginal); $halkaistu[0] = $halkaistu[0]."_".$i; $kuva_nimi = implode(".",$halkaistu); $i++; } if (@move_uploaded_file($_FILES['kuva']['tmp_name'], $conf['kansio'].$kuva_nimi)) { $polku = $conf['polku'].$conf['kansio'].$kuva_nimi; if ($conf['polku'] != "") $polku = $conf['polku'].$kuva_nimi; $_SESSION['kuva'] = "http://fames.jouluserver.com/upload/".$kuva_nimi; } else { msgdie("Tiedoston siirto ei onnistunut. Tämä johtuu mm. seuraavista syistä:<br>* Tällä scriptillä ei ole oikeuksia upload kansioon.<br><br>Palaa <a href='".$_SERVER['PHP_SELF']."'>tästä</a> takaisin.",true); } if (@move_uploaded_file($_FILES['linkki']['tmp_name'], $conf['kansio'].$linkki_nimi)) { $polku = $conf['polku'].$conf['kansio'].$linkki_nimi; if ($conf['polku'] != "") $polku = $conf['polku'].$linkki_nimi; $_SESSION['linkki'] = "http://fames.jouluserver.com/upload/".$linkki_nimi; } else { msgdie("Tiedoston siirto ei onnistunut. Tämä johtuu mm. seuraavista syistä:<br>* Tällä scriptillä ei ole oikeuksia upload kansioon.<br><br>Palaa <a href='".$_SERVER['PHP_SELF']."'>tästä</a> takaisin.",true); } header("Location:lisaa2.php"); ?>
Ja html formin file kohdat:
Anna kuvatiedosto:<br> <input type="file" name="kuva" id="kuva"><br> Anna lataustiedosto:<br> <input type="file" name="linkki" id="linkki"><br>
Eli virheenä tulee:
Virhe
Et lähettänyt lataus tiedostoa
formista puuttuu enkoodaustyyppi. Eli lisäät form tagiin
enctype="multipart/form-data"
Aihe on jo aika vanha, joten et voi enää vastata siihen.