Autor Zpráva
majkl
Profil *
Dobrý den!
Vyvořil jsem script, ale bohužel nefunguje jak má. Ptal jsem se již na jiném webu, ale dočkal jsem se odpovědi, ať trochu přemýšlím. Tak doufám, že tady se dočkám pomoci. :-) Script má uploadovat fotky na server a poté uložit nějaká data do db, ale vždy mi zahlásí, že přenesený soubor nelze zkopírovat, což znamená, že mám chybu někde kolem move_uploaded_file. Fotek má být vždy víc proto se ve spodní části generuje počet inputů na fotky. Díky za rady.
p.s. chmod mám ve složce fotky nastaven na 777.
<?php
mysql_connect("***", "***", "***");
mysql_select_db("***");
$uzivatel = $_SESSION["username"];
$prikaz = "select sw from profily where username = '$uzivatel'";
$uziva = mysql_query($prikaz);
$uziv = mysql_result($uziva,0);
if ($odfot)
{
if ($uziv == "f" OR $uziv == "w")
{


$m = "1";
while ($m <= $pocet)
{

$sql = "select id from fotky where id=(select max(id) from fotky)";
$newid = mysql_query($sql);
$novid = mysql_result($newid, 0);
$noveid = $novid+1;
if (isset($_FILES['pic']['name'][$m]))
{
echo "Ahoi";
}
$nazev = $noveid."".$_FILES['pic']['name'][$m];
$nazev_souboru = $pic[$m];
$cil = "../fotky/".$noveid.".jpg";
$nazev = $noveid.".jpg";
$sql = "insert into fotky values('$noveid', '$akce', '$nazev')";
mysql_query($sql);

echo "VVV:".$_FILES['pic']['name'][$m];
echo "GGG:".$_FILES['pic']['tmp_name'][$m];
echo "MMM:".$_FILES['pic'][$m];
echo "CCC:".$f;
move_uploaded_file($nazev_souboru, $cil)
or die ("Pøenesený soubor nelze zkopírovat");
$m = $m+1;
echo "OK.";
}

}
else
die("Nemáte oprávnìní prohlížet tuto stránku.");
}


?>

<form enctype="multipart/form-data" action="afotek.php" method="POST">
<p>

<?php
if ($pocetfot)
{
$v = "1";
while ($v <= $pocfot)
{
echo "<input type='file' name='pic[".$v."]' style='width: 500px;'/><br>";
$v = $v+1;
}
echo "<input type='hidden' name='pocet' value='".$v."'>";
}
?>
<?php
$dot = "select * from akce order by id DESC";
$vyp = mysql_query($dot);
while ($ccc = mysql_fetch_array($vyp))
{
echo "<input type='radio' name='akce' value='".$ccc["id"]."'>".$ccc["akce"]."<br>";
}
?>
<input type="submit" name='odfot' value="Odeslat fotky">
</p>
</form>
Matty
Profil
majkl
Nějak se mi nelíbí toto: $nazev_souboru = $pic[$m];. Nikde nedeklaruješ proměnnou $pic, tudíž předpokládáš, že se pošle z formuláře. To by bylo ovšem funkční je při zapnutých register_globals. Zkus nahradit $pic[$m] za .$_FILES['pic']['tmp_name'][$m].
majkl
Profil *
Matty
Díky za radu, ale bohužel to nepomohlo... btw: Zapomněl jsem napsat, že isset($_FILES...) vrací false, což asi určitě neni dobře. Otázkou je proč, když ty fotky normálně odešlu přes ten formulář.
Alphard
Profil
$nazev_souboru = $pic[$m];
move_uploaded_file($nazev_souboru, $cil)
ale to už psal Matty
echo "<input type='file' name='pic[".$v."]' style='width: 500px;'/><br>";
je to celé zbytečně komplikované, proč toto nenecháte bez hodnoty a nezpracujete elegantně třeba pomocí foreach

než začnu vypisovat věci, které se mi nelíbí, nedával jste sem na diskusi již jednou stejný (nebo skoro stejný) kód? minimálně některé části tohoto jsem tady už viděl... ať se neopakuji

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: