ugrás a tartalomhoz

PHP képfeltöltés, elérési cím eltárolása MYSQL-ben

attiss94 · 2011. Szep. 21. (Sze), 12.54
Sziasztok!
Megint hoztam egy -számomra- bonyolult kérdést. Arról van szó, hogy írtam egy scriptet, amely képet tölt fel a szerverre és egy adatbázisba elmenti a következő adatokat: kép címe, egy kis szöveg, melyet a kép alá lehet majd lekérni, és a kép elérési útja. Na ez engem kiakasztott, akármit csinálok nem szeretne működni... Ezért kérem a segítségeteket!

A FORM tartalma:

		<form action="feltoltes.php" method="post" enctype="multipart/form-data">
			<label for="file">Fajl</label>
			<input type="file" name="fajl" id="fajl" />
			<br />
			<textarea name="szoveg" cols="40" rows="6" id="szoveg"></textarea>
			<br />
			<input type="text" name="kep_cime" id="kep_cime" />
			<br />
			<input type="submit" name="submit" value="Submit" />
		</form>
A képet és az adatokat feltöltő fájl tartalma (feltoltes.php):

<?php

if ((($_FILES["fajl"]["type"] == "image/gif")
|| ($_FILES["fajl"]["type"] == "image/jpeg")
|| ($_FILES["fajl"]["type"] == "image/pjpeg"))
&& ($_FILES["fajl"]["size"] < 99999999))
  {
  if ($_FILES["fajl"]["error"] > 0)
    {
    echo "Kod: " . $_FILES["fajl"]["error"] . "<br />";
    }
  else
    {
    echo "Feltoltes: " . $_FILES["fajl"]["name"] . "<br />";
    echo "Tipus: " . $_FILES["fajl"]["type"] . "<br />";
    echo "Meret: " . ($_FILES["fajl"]["size"] / 1024) . " Kb<br />";
    echo "Temp fajl: " . $_FILES["fajl"]["tmp_name"] . "<br />";

    if (file_exists("upload/" . $_FILES["fajl"]["name"]))
      {
      echo $_FILES["fajl"]["name"] . " mar letezik. ";
      }
    else
      {
      move_uploaded_file($_FILES["fajl"]["tmp_name"],
      "upload/" . $_FILES["fajl"]["name"]);
      echo "Tarolva: " . "upload/" . $_FILES["fajl"]["name"];
      }
    }
  }
else
  {
  echo "Hibas fajl";
  }
  
$con = mysql_connect("localhost","valami","valami");
if (!$con)
  {
  die('Sikertelen csatlakozas: ' . mysql_error());
  }
mysql_select_db("valami", $con);

$sql= "INSERT INTO Kepek (Szoveg,Kep_cime,Kep_eleres)
VALUES
('$_POST[szoveg]','$_POST[kep_cime]','upload/$_FILES['fajl']['name']')";

if (!mysql_query($sql,$con))
  {
  die('Hiba: ' . mysql_error());
  }

mysql_close($con)

?>
Ilyenkor mindig ezt kapom vissza az adatbazisban:
Szoveg: valami ; Kep_cime: valami ; Kep_eleres: upload/Array[name]

Tisztában vagyok vele, hogy a feltöltő fájlban (méghozzá az INSERT részben) van a hiba, de nem tudom mit írjak oda, hogy a következő formátumban kapjam meg a fájl elérési útját: upload/fajl_neve.fajl_kiterjesztese.
A segítségeteket előre is köszönöm!
 
1

Próbáld ezt

gabesz666 · 2011. Szep. 21. (Sze), 13.45
Próbáld meg ezt:

$sql= "INSERT INTO Kepek (Szoveg,Kep_cime,Kep_eleres) VALUES ('{$_POST['szoveg']}','{$_POST['kep_cime']}', 'upload/{$_FILES['fajl']['name']}')"; 
4

Köszönöm szépen, ez működik!

attiss94 · 2011. Szep. 21. (Sze), 13.54
Köszönöm szépen, ez működik! : ))))
6

Látod, az aposztrófokkal volt

Hidvégi Gábor · 2011. Szep. 21. (Sze), 13.56
Látod, az aposztrófokkal volt probléma. Kíváncsi vagyok, hogy az eredeti sorodra volt-e php hibaüzenet, és ha nem, akkor amiatt, mert php-ban le van tiltva, vagy pedig szintaktikailag helyes (bár szemantikailag nem).
7

Nem adott hibaüzenetet, le is

attiss94 · 2011. Szep. 21. (Sze), 14.03
Nem adott hibaüzenetet, le is futtatta a sort, csak az adatbázisban nem azt láttam, amit szerettem volna, mindenkinek köszönöm a segítséget! : )
2

Gyanús, hogy az

Hidvégi Gábor · 2011. Szep. 21. (Sze), 13.47
Gyanús, hogy az aposztrófokkal van probléma.
3

Ha aposztrofálom, akkor nem

attiss94 · 2011. Szep. 21. (Sze), 13.51
Ha aposztrofálom, akkor nem futtatja le a fájlt, csak a nagy fehérség az eredmény...
5

Mit jelent az, hogy

Hidvégi Gábor · 2011. Szep. 21. (Sze), 13.54
Mit jelent az, hogy aposztrofálod? Mi az, hogy nagy fehérség? Nincs hibaüzenet?
8

Azt, hogy a böngésző szerint

attiss94 · 2011. Szep. 21. (Sze), 14.04
Azt, hogy a böngésző szerint lefutott minden folyamat, és a végeredmény egy nagy fehér oldal, hibaüzenet nélkül.