Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Fatal error: Maximum execution time of 10 seconds exceeded

Sivun loppuun

alker [16.08.2009 20:27:09]

#

Koodi on:

<?php
ob_start();

/*

    Multi upload ;)
    Käytä miten lystäät.
      15:12 24.2.2004

*/

define("UPLOAD_DIRECTORY", "upload/"); // määritellään tiedostojen uusi koti, eli minne tiedostot upitetaan
define("KUVA_KOKO", 9999999); // yksittäisen tiedoston maksimikoko
list($paate) = array_reverse(explode(".",$_FILES['kuva']['name']));
$paate = strtolower($paate);
if(!is_dir(UPLOAD_DIRECTORY)) {
    mkdir(UPLOAD_DIRECTORY, 0777); // jos hakemistoa ei ole olemassa, luodaan sellainen
}
if (isset($_FILES['kuva'])) {
if ($paate != "gif") {
die ("Valitsemasi tiedoston paate ei ollut sallittu");
}
        if($_FILES['kuva']['size'] > KUVA_KOKO) { echo "Liian iso tiedosto!<br>".MAX_SIZE." on raja"; }

    $i = 1;
    while (is_file(UPLOAD_DIRECTORY.$_FILES['kuva']['name'])) {
        $halkaistu = explode(".",$_FILES['kuva']['name']);
        $halkaistu[0] = $halkaistu[0]."_".$i;
        $tiedoston_nimi = implode(".",$halkaistu);
        $i++;
    }
        move_uploaded_file($_FILES['kuva']['tmp_name'], UPLOAD_DIRECTORY.$_FILES['kuva']['name']); // tallennetaan tiedosto serverille
}
?>
    <form action="" method="post" ENCTYPE="multipart/form-data">
<?php
?>
<input type="file" name="kuva" size="75"><br>


<input type="submit" value="upload"></form><?php
ob_end_flush();
exit;
?>

(Muokatti vinkistä.)
Virhe tuli rivil 29

trilog [16.08.2009 20:33:31]

#

Eiköhän virhe ole aika selvä, skriptisi ylittää sallitun aikarajan. Tästä voi olla apua.

Antti Laaksonen [16.08.2009 20:38:32]

#

Mitä koodin pitäisi tehdä?

Nyt koodi jumiutuu while-silmukkaan, jos lähetetty tiedosto on valmiiksi upload-hakemistossa.

alker [16.08.2009 20:45:45]

#

Sen pitaisi uploadata servulle tiedosto, mutta jos on jo olemassa saman niminen tiedosto niin muokataan nimee while silmukassa.
Trilog:kyl mie sen tiedan mutta miksi se tulee?

Antti Laaksonen [16.08.2009 21:02:28]

#

Korvaa tämä

<?php
    while (is_file(UPLOAD_DIRECTORY.$_FILES['kuva']['name'])) {
        $halkaistu = explode(".",$_FILES['kuva']['name']);
        $halkaistu[0] = $halkaistu[0]."_".$i;
        $tiedoston_nimi = implode(".",$halkaistu);
        $i++;
    }
        move_uploaded_file($_FILES['kuva']['tmp_name'], UPLOAD_DIRECTORY.$_FILES['kuva']['name']); // tallennetaan tiedosto serverille
?>

tällä

<?php
    $tiedoston_nimi = $_FILES['kuva']['name'];
    while (is_file(UPLOAD_DIRECTORY.$tiedoston_nimi)) {
        $halkaistu = explode(".",$_FILES['kuva']['name']);
        $halkaistu[0] = $halkaistu[0]."_".$i;
        $tiedoston_nimi = implode(".",$halkaistu);
        $i++;
    }
        move_uploaded_file($_FILES['kuva']['tmp_name'], UPLOAD_DIRECTORY.$tiedoston_nimi); // tallennetaan tiedosto serverille
?>

Alkuperäisen koodin ongelma on, että while-silmukassa verrataan koko ajan alkuperäistä tiedoston nimeä. Korjatussa versiossa while-silmukassa verrataan muutettua tiedoston nimeä.

trilog [16.08.2009 21:57:45]

#

alker kirjoitti:

Trilog:kyl mie sen tiedan mutta miksi se tulee?

Skriptin suorittaminen kestää PHP-tulkilla yli sallitun aikarajan (tässä 10sek). Kun aikaraja ylittyy skriptin suoritus lopetetaan pakotetusti.

alker [16.08.2009 22:17:55]

#

Ny tuli toinen ongelma.
Joku vois kertoa paljon 95kt on bitteinä ja paljon 5mt on bitteinä :)

Antti Laaksonen [16.08.2009 22:22:22]

#

1 megatavu = 1024 kilotavua
1 kilotavu = 1024 tavua
1 tavu = 8 bittiä

95 kilotavua = 97280 tavua = 778240 bittiä
5 megatavua = 5120 kilotavua = 5242880 tavua = 41943040 bittiä

Google on muuten aika näppärä näihin muunnoksiin:

http://www.google.fi/search?q=95 kilobytes in bits
http://www.google.fi/search?q=5 megabytes in bits

Jaska [16.08.2009 22:27:05]

#

alker kirjoitti:

Ny tuli toinen ongelma.
Joku vois kertoa paljon 95kt on bitteinä ja paljon 5mt on bitteinä :)

Kannattaa vielä muistaa, että mt tarkoittaa millitavua, Mt megatavua. Tarkoitin varmaan arvoja 95 kt ja 5 Mt. Huomaa myös välilyönnit.

Laitinen [16.08.2009 23:13:44]

#

Kannattaa myös muistaa, että millitavu ei ole kauhean relevantti käsite, sillä itse ainakin tykkään puuhastella vähintään kahdeksasosatavuilla. Sekoittamisen vaaraa tuskin lienee...

Grez [17.08.2009 02:34:03]

#

Jos halutaan vielä pilkkua nysvätä niin kilo, mega, giga jne. ovat SI-kertoimia, jotka on 1000 potensseja (eli 10^(3*n)) eivätkä 1024 potensseja (eli 2^(10*n)). Noille jälkimmäisille, eli binäärikertoimille on kehitetty veikeät johdannaisnimet kuten binäärikilo eli kibi, binäärimega eli mebi ja jotka lyhennetään Ki, Mi, Gi, Ti jne.

alker [17.08.2009 16:36:10]

#

Eli en jaksanu tehä uutta aihetta niin lisään tänne.
Virhe ilmoitus:"Parse error: syntax error, unexpected T_VARIABLE in"
Kieli:PHP
Koodi:

<?PHP
include("session.php");
if (!$_SESSION['tunnus']) {
header("Location:login.php");
}
else {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Lataamokeskus :.: Tiedostoja sinulle</title>

<link rel="stylesheet" href="style.css" type="text/css" />

</head>
<body>


<div id="logo">
<div class="logo">
<img src="logo.png">
</div>
</div>
<div id="wrap">


<div class="navi">
<?PHP
include("navi.php");
?>
</div>


<div id="left">
<h1>Tervetuloa!</h1>



		<P>
<?php
include("fun.php");
if (!$_SESSION['tunnus']) {
header("Location:index.php");
}
else {
yhdista();
if (!$_POST['nimi'] or !$_POST['kuvaus'] or !$_POST['linkki'] or !$_POST['kuvat']) {
echo "Jätit jonkun kohdan tyhjäksi!";
}
else {
define("UPLOAD_DIRECTORY", "upload/"); // määritellään tiedostojen uusi koti, eli minne tiedostot upitetaan
define("KUVA_KOKO", 778240); // yksittäisen tiedoston maksimikoko
define("LINKKI_KOKO", 41943040); // yksittäisen tiedoston maksimikoko
list($kuva_paate) = array_reverse(explode(".",$_FILES['kuva']['name']));
$kuva_paate = strtolower($kuva_paate);
list($linkki_paate) = array_reverse(explode(".",$_FILES['linkki']['name']));
$linkki_paate = strtolower($kuva_paate);

if(!is_dir(UPLOAD_DIRECTORY)) {
    mkdir(UPLOAD_DIRECTORY, 0777); // jos hakemistoa ei ole olemassa, luodaan sellainen
}

if ($_FILES['kuva']['name'] == "") {
die ("Et ole lisännyt kuva tiedostoa mitä uploadata");
}
if ($_FILES['linkki']['name'] == "") {
die ("Et ole lisännyt lataus tiedostoa mitä uploadata");
}
if ($kuva_paate != "gif" or $kuva_paate != "png" or $kuva_paate != "bmp" or $kuva_paate != "tif" or $kuva_paate != "tiff" or $kuva_paate != "GIF" or $kuva_paate != "PNG" $kuva_paate != "BMP" or $kuva_paate != "TIF" or $kuva_paate != "TIFF") {
die ("Valitsemasi kuva tiedoston paate ei ollut sallittu");
}
if ($linkki_paate != "rar" or $linkki_paate != "zip" or $linkki_paate != "RAR" or $linkki_paate != "ZIP") {
die ("Valitsemasi lataus tiedoston paate ei ollut sallittu");
}

        if($_FILES['kuva']['size'] > KUVA_KOKO) { die ("Liian iso kuva tiedosto!<br>95kt on raja"); }
        if($_FILES['linkki']['size'] > LINKKI_KOKO) { die ("Liian iso kuva tiedosto!<br>5mt on raja"); }
$i = 1;
$tiedoston_nimi = $_FILES['kuva']['name'];
    while (is_file(UPLOAD_DIRECTORY.$tiedoston_nimi)) {
        $halkaistu = explode(".",$_FILES['kuva']['name']);
        $halkaistu[0] = $halkaistu[0]."_".$i;
        $tiedoston_nimi = implode(".",$halkaistu);
        $i++;
    }
$i2 = 1;
$tiedoston_nimi2 = $_FILES['kuva']['name'];
    while (is_file(UPLOAD_DIRECTORY.$tiedoston_nimi2)) {
        $halkaistu = explode(".",$_FILES['kuva']['name']);
        $halkaistu[0] = $halkaistu[0]."_".$i;
        $tiedoston_nimi2 = implode(".",$halkaistu);
        $i2++;
    }
        move_uploaded_file($_FILES['kuva']['tmp_name'], UPLOAD_DIRECTORY.$tiedoston_nimi); // tallennetaan tiedosto serverille
        move_uploaded_file($_FILES['linkki']['tmp_name'], UPLOAD_DIRECTORY.$tiedoston_nimi2); // tallennetaan tiedosto serverille

$nimi = mysql_real_escape_string($_POST['nimi']);
$linkki = mysql_real_escape_string("http://fames.jouluserver.com/".UPLOAD_DIRECTORY.$tiedoston_nimi2);
$kuvaus = mysql_real_escape_string($_POST['kuvaus']);
$kuva = mysql_real_escape_string("http://fames.jouluserver.com/".UPLOAD_DIRECTORY.$tiedoston_nimi);
$koko = $_FILES['linkki'],['size'];
$tunnus = $_SESSION['tunnus'];
$kate = $_POST['kate'];
$sql = "insert into lataamo (id,tunnus,nimi,linkki,kuvaus,kuva,kate,koko) values (0,'$tunnus','$nimi','$linkki','$kuvaus','$kuva','$kate','$koko')";
$tulos = mysql_query($sql);
echo "Tiedoston lisäys onnistui!";
?>
<br>
<a href="index.php">Takaisin etusivulle</a>
<?php
}
}
?>
<br><br><br><br><br>
<P>
</p>


</div></div>

<div id="right">

<div class="box"><div class="box_padding">
<b>Mainos</b>
</div></div>

<div class="in">

		<p>
<?php include("sivu.php"); ?>
		</p>

		<p>

		</div>
		<div class="box"><div class="box_padding">
<b><?php include("linkki.php"); ?></b>
</div></div>


<div id="footer">
<div class="bottom">
<a href="index.php">Etusivu</a>&nbsp;&nbsp;
<a href="info.php">Info</a>&nbsp;&nbsp;
<a href="login.php">Kirjaudu</a>&nbsp;&nbsp;
<a href="register.php">Rekisteröidy</a>&nbsp;&nbsp;
<a href="tiedostot.php">Tiedostot</a>&nbsp;&nbsp;
<a href="etsi.php">Etsi</a>&nbsp;&nbsp;
<br />
<br /><br />
<br />
<div class="ftext">
© Joona "Tietovirus" Nevalainen & Aleksi "Alker" Tanskanen 2009<br><br>
<?php include("banner.php"); ?>
</div></div>
</div>


</body>
</html>
<?php
}
?>

Virhe rivi:72

Chiman [17.08.2009 17:12:43]

#

Puuttuu or:

or $kuva_paate != "PNG" $kuva_paate != "BMP" or

Tuon tarkistuksen voisi tehdä fiksumminkin:

$sallitut_paatteet = array("gif", "png", "bmp", "tif", "tiff");
if (!in_array(strtolower($kuva_paate), $sallitut_paatteet)) { ...

Et salli jpg-kuvia? (jpg, jpeg)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta