Fájl-feltöltésnél a fájl-rendszer összehasonlítása változóval
Sziasztok!
A problémám a következő:
Egy html-űrlapon keresztüli állományfeltöltés közben szeretném elvégezni a file_exist ellenőrzést.
Így képzelem az egészet:
=========================
<HTML>
<HEAD>
<TITLE>Állomány feltöltése</TITLE>
</HEAD>
<BODY>
<h1>A feltöltés eredménye:</h1><br><hr><br>
========================================================
<?php
$upload_dir = "/var/www/apache2-default/upload/docs";
if (file_exists($upload_dir.$all_tomb[name])) {
echo "Ilyen néven már valaki töltött fel állományt!";
} else {
========================================================
$konyvtar = "/var/www/apache2-default/upload/docs";
foreach($_FILES as $allomanynev => $all_tomb) {
print "név: ".$all_tomb['name']."<br>\n";
print "típus: ".$all_tomb['type']."<br>\n";
print "méret: ".$all_tomb['size']." bájt<br>\n";
if (is_uploaded_file($all_tomb['tmp_name'])) {
move_uploaded_file($all_tomb['tmp_name'],"$konyvtar/$all_tomb[name]") or die ("Nem sikerült az áthelyezés!");
print "<h1>A feltöltés sikeres volt!</h1>";
}
}
//Valami dátumbélyeg-szerű izé kókányolása:
$datum = date("Y.m.d.");
//Hasonló időbélyeg-tészta:
$ido = date("G:i:s");
//Összeköttetés kiépítése:
$ossz = mysql_connect("localhost", "robi", "mullins");
//Adatbázis választása:
mysql_select_db("web", $ossz);
//SQL utasítás létrehozása:
$sql = "INSERT INTO docs values ('', '$datum', '$ido', '$all_tomb[name]', '<a href=upload/docs/$all_tomb[name]>Letöltés</a>')";
//Végrehajtjuk az utasítást:
if (mysql_query($sql, $ossz)) {
echo "A feltöltésed $all_tomb[name] néven bekerült az adatbázisba!";
} else {
echo "Valami el lett baxva!";
}
}
?>
</BODY>
</HTML>
A bekeretezett résznél "fáj", nevezetesen, mindig kiugrik a szkriptből...ez nem a helyes eljárás?
látjárok esetleg hogy mit rontottam el?
■ A problémám a következő:
Egy html-űrlapon keresztüli állományfeltöltés közben szeretném elvégezni a file_exist ellenőrzést.
Így képzelem az egészet:
=========================
<HTML>
<HEAD>
<TITLE>Állomány feltöltése</TITLE>
</HEAD>
<BODY>
<h1>A feltöltés eredménye:</h1><br><hr><br>
========================================================
<?php
$upload_dir = "/var/www/apache2-default/upload/docs";
if (file_exists($upload_dir.$all_tomb[name])) {
echo "Ilyen néven már valaki töltött fel állományt!";
} else {
========================================================
$konyvtar = "/var/www/apache2-default/upload/docs";
foreach($_FILES as $allomanynev => $all_tomb) {
print "név: ".$all_tomb['name']."<br>\n";
print "típus: ".$all_tomb['type']."<br>\n";
print "méret: ".$all_tomb['size']." bájt<br>\n";
if (is_uploaded_file($all_tomb['tmp_name'])) {
move_uploaded_file($all_tomb['tmp_name'],"$konyvtar/$all_tomb[name]") or die ("Nem sikerült az áthelyezés!");
print "<h1>A feltöltés sikeres volt!</h1>";
}
}
//Valami dátumbélyeg-szerű izé kókányolása:
$datum = date("Y.m.d.");
//Hasonló időbélyeg-tészta:
$ido = date("G:i:s");
//Összeköttetés kiépítése:
$ossz = mysql_connect("localhost", "robi", "mullins");
//Adatbázis választása:
mysql_select_db("web", $ossz);
//SQL utasítás létrehozása:
$sql = "INSERT INTO docs values ('', '$datum', '$ido', '$all_tomb[name]', '<a href=upload/docs/$all_tomb[name]>Letöltés</a>')";
//Végrehajtjuk az utasítást:
if (mysql_query($sql, $ossz)) {
echo "A feltöltésed $all_tomb[name] néven bekerült az adatbázisba!";
} else {
echo "Valami el lett baxva!";
}
}
?>
</BODY>
</HTML>
A bekeretezett résznél "fáj", nevezetesen, mindig kiugrik a szkriptből...ez nem a helyes eljárás?
látjárok esetleg hogy mit rontottam el?
Nem,
Egyébként meg szerintem, egy kicsit jobban járj utána a dolgoknak, mert nem lehetetlen, hogy ebben a scriptben 1-2 biztonsági hiba leledzik. Próbáld meg kitakarítani és csak a lényeges kódrészeket megtartani, háha úgy rájösz egy pár hibára.
Ne csigázz :)
Ha tudod hol a hiba kérlek közöld.
sorrend
Ezenkívül az alábbiak:
$upload_dir.$all_tomb[name]
értéke kb ilyesmi lesz:
"/var/www/apache2-default/upload/docsfeltoltendo_fajlom.xxx"
Nekem az $upload_dir és a $all_tomb[name] közé hiányzik egy "/".
Lehet, hogy van még több sastojás is benne, nem bogarásztam végig.
öröm ész bódottág! :)
A sorrend volt a probléma!
Köszike!