Apache/2.2.11 (Ubuntu)
PHP Version 5.2.6-3ubuntu4.5
Mam u siebie taki prywatny hosting zdjec.
formularz wyglada tak:
Kod: Zaznacz cały
echo("<form enctype=\"multipart/form-data\" action=\"index.php?id=upload\" method=\"POST\">
<script type=\"text/javascript\">
function nowagal(thisForm){\nif(thisForm.gdzie.value==0){
thisForm.nalbum.disabled=false;\n
thisForm.has.disabled=false;\n
}
else{\n
thisForm.nalbum.disabled=true;
thisForm.has.disabled=true;
}\n}
function passwd(thisForm){
if(thisForm.has.checked==true){
thisForm.haslo.disabled=false;
}
else{
thisForm.haslo.disabled=true;
}\n}
</script>
<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".(9*1024*1024)."\" />
<select onchange=\"nowagal(this.form)\" name=\"gdzie\"><option value=\"0\">Nowy album</option>");
$q="SELECT name FROM galleries;";
$res=mysql_query($q);
for($i=0;$i<mysql_num_rows($res);$i+=1){
$row=mysql_fetch_assoc($res);
echo("<option value=\"".($i+1)."\">".$row['name']."</option>");
}
echo("</select>
nazwa: <input type=\"text\" name=\"nalbum\" value=\"\">
zabezpiecz hasłem?<input type=\"checkbox\" name=\"has\" onchange=\"passwd(this.form)\">
wpisz hasło: <input type=\"password\" name=\"haslo\" disabled=\"disabled\">
");
for($j=1;$j<=10;$j+=1){
echo($j."<input name=\"plik".$j."\" type=\"file\" />
");
}
echo("<input type=\"submit\" name=\"submit\" value=\"Zapisz\" />
</form>");
A tutaj fragment kodu wykonywany po wyslaniu formularza:
Kod: Zaznacz cały
if(isset($_POST['submit'])){
if($_POST['gdzie']==0){
if(isset($_POST['nalbum'])) $nnam=$_POST['nalbum'];
else $nnam="gal-".date("Y-m-d-H-i-s");
if(isset($_POST['has'])) $q="INSERT INTO galleries SET name=\"".$nnam."\", created=\"".date("Y-m-d")."\", modified=\"".date("Y-m-d")."\", public=0, login=\"".$_COOKIE['zal']."\", nop=0, hash=\"".md5($_POST['haslo'])."\";";
else $q="INSERT INTO galleries SET name=\"".$nnam."\", created=\"".date("Y-m-d")."\", modified=\"".date("Y-m-d")."\", public=1, login=\"".$_COOKIE['zal']."\", nop=0, hash=\"null\";";
//echo("<p>".$q."</p>");
mysql_query($q);
mkdir($nnam);
system("chmod 777 ".$nnam);
$gal=$nnam;
}
else{
$q="SELECT name FROM galleries;";
$res=mysql_query($q);
for($i=0;$i<mysql_num_rows($res);$i+=1){
$row=mysql_fetch_assoc($res);
if(($i+1)==$_POST['gdzie']) $gal=$row['name'];
}
}
$dodanych=0;
for($j=1;$j<=10;$j+=1){
if(is_uploaded_file($_FILES['plik'.$j]['tmp_name'])){
if($_FILES['plik'.$j]['size']<=$_POST['MAX_FILE_SIZE']){
move_uploaded_file($_FILES['plik'.$j]['tmp_name'], $gal."/".$_FILES['plik'.$j]['name']);
$dodanych++;
echo("Plik: <strong>".$_FILES['plik'.$j]['name']."</strong> został dodany do galerii ".$gal."
");
}
else{
echo("Plik: <strong>".$_FILES['plik'.$j]['name']."</strong> jest zbyt duży! Jego rozmiar przekracza ".($_POST['MAX_FILE_SIZE']/1024/1024)." MB
");
}
}
}
$q="SELECT nop FROM galleries WHERE name=\"".$gal."\";";
$res=mysql_query($q);
$row=mysql_fetch_assoc($res);
$zip = new ZipArchive;
$zip_plik=$gal."/gal_".$gal."_".date("Y-m-d").".zip";
if ($zip->open($zip_plik, ZIPARCHIVE::CREATE) !==TRUE) {
echo("nie mogę zrobić pliku archiwum ".$zip_plik.".");
}
$folder=opendir($gal);
while (false !== ($file = readdir($folder))) if(preg_match('#^.*\.(jpg|gif|png)#i',$file)){
$zip->addFile($gal."/".$file);
}
$zip->close();
closedir($folder);
$q="UPDATE galleries SET nop=".($row['nop']+$dodanych).", zip=\"".$zip_plik."\" WHERE name=\"".$gal."\";";
mysql_query($q);
echo("link do galerii:
<h2><a href=\"http://81.15.212.181/zdj/index.php?id=show&gal=".$gal."\">http://81.15.212.181/zdj/index.php?id=show&gal=".$gal."</a></h2>");
}
Jezeli wykorzystam wszystkie 10 pol (albo 9) to po kliknieciu na "Zapisz" wymazuja sie wszystkie dane z formularza i nie jest wykonywany ten drugi fragment kodu.
Zanim napisalem na forum probowalem to rozwiazac tak:
Kod: Zaznacz cały
ini_set('upload_max_filesize','64M');
ini_set('post_max_size','64M');
nawet sprobowalem
Kod: Zaznacz cały
ini_set('memory_limit', '64M');
Co moze byc przyczyna ?