Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]dodawanie obrazu
Forum PHP.pl > Forum > Przedszkole
retes
tak wygląda kod,
nie mogę załadować obrazu, wydaje mi się że bląd tkwić może w ściezce- linia 39, lub coś jestz plikiem temp, możecie pomóc?



  1. <?php
  2.  
  3.  
  4. include("config.php");
  5. include("functions.php");
  6.  
  7. $db = mysql_connect($dbhost, $dbuser, $dbpassword);
  8. mysql_select_db($dbdatabase, $db);
  9.  
  10. $validid = pf_validate_number($_GET['id'], "redirect", "index.php");
  11.  
  12. if(isset($_SESSION['USERNAME']) == FALSE) {
  13. header("Location: " . $HOST_NAME . "login.php?ref=images&id=" . $validid);
  14. }
  15.  
  16. $theitemsql = "SELECT user_id FROM items WHERE id = " . $validid . ";";
  17. $theitemresult = mysql_query($theitemsql);
  18. $theitemrow = mysql_fetch_assoc($theitemresult);
  19.  
  20. if($theitemrow['user_id'] != $_SESSION['USERID']) {
  21. header("Location: " . $config_basedir);
  22. }
  23.  
  24. if($_POST['submit']) {
  25. if($_FILES['userfile']['name'] == '') {
  26. header("Location: " . $HOST_NAME . $SCRIPT_NAME . "?error=nophoto");
  27. }
  28. elseif($_FILES['userfile']['size'] == 0) {
  29. header("Location: " . $HOST_NAME . $SCRIPT_NAME . "?error=photoprob");
  30. }
  31. elseif($_FILES['userfile']['size'] > $MAX_FILE_SIZE) {
  32. header("Location: " . $HOST_NAME . $SCRIPT_NAME . "?error=large");
  33. }
  34. elseif(!getimagesize($_FILES['userfile']['tmp_name'])) {
  35. header("Location: " . $HOST_NAME . $SCRIPT_NAME . "?error=invalid");
  36. }
  37. else {
  38. $uploaddir = "C:/xampp/htdocs/sites/auction/images/";
  39. $uploadfile = $uploaddir . $_FILES['userfile']['name'];
  40.  
  41. if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  42.  
  43. $inssql = "INSERT INTO images(item_id, name) VALUES(" . $validid . ", '" . $_FILES['userfile']['name'] . "')";
  44. mysql_query($inssql);
  45.  
  46. header("Location: " . $HOST_NAME . $SCRIPT_NAME . "?id=" . $validid);
  47. }
  48. else {
  49. echo 'There was a problem uploading your file.<br />';
  50. }
  51. }
  52. }
  53. else {
  54. require("header.php");
  55.  
  56. $imagessql = "SELECT * FROM images WHERE item_id = " . $validid . ";";
  57. $imagesresult = mysql_query($imagessql);
  58. $imagesnumrows = mysql_num_rows($imagesresult);
  59.  
  60. echo "<h1>Current images</h1>";
  61.  
  62. if($imagesnumrows == 0) {
  63. echo "No images.";
  64. }
  65. else {
  66. echo "<table>";
  67. while($imagesrow = mysql_fetch_assoc($imagesresult)) {
  68. echo "<tr>";
  69. echo "<td><img src='" . $config_basedir . "/images/" . $imagesrow['name'] . "' width='100'></td>";
  70. echo "<td>[<a href='deleteimage.php?image_id=" . $imagesrow['id'] . "&item_id=" . $validid . "'>delete</a>]</td>";
  71. echo "</tr>";
  72. }
  73. echo "</table>";
  74. }
  75. switch($_GET['error']) {
  76. case "empty":
  77. echo 'You did not select anything.';
  78. break;
  79.  
  80. case "nophoto":
  81. echo 'You did not select a photo to upload.';
  82. break;
  83.  
  84. case "photoprob":
  85. echo 'There appears to be a problem with the photo your are uploading';
  86. break;
  87.  
  88. case "large":
  89. echo 'The photo you selected is too large';
  90. break;
  91.  
  92. case "invalid":
  93. echo 'The photo you selected is not a valid image file';
  94. break;
  95. }
  96.  
  97. ?>
  98.  
  99. <form enctype="multipart/form-data" action="<?php pf_script_with_get($SCRIPT_NAME); ?>" method="POST">
  100. <input type="hidden" name="MAX_FILE_SIZE" value="3000000">
  101. <table>
  102. <tr>
  103. <td>Image to upload</td>
  104. <td><input name="userfile" type="file"></td>
  105. </tr>
  106. <tr>
  107. <td><input type="submit" name="submit" value="Upload File"></td>
  108. </tr>
  109. </table>
  110. </form>
  111.  
  112. When you have finished adding photos, go and <a href="<?php echo "itemdetails.php?id=" . $validid; ?>">see your item</a>!
  113. <?php
  114. }
  115.  
  116. require("footer.php");
  117. ?>
erix
A co jest faktycznie w tablicy $_FILES?
retes
pod linuksem ten kod dziala bezblednie, zrzuty dla sqla sa takie same jak w tym przypadku, po prostu w windowsie nie jedzie i juz, najciekawsze jest, ze w zasadzie to...kod sie wykonuje(przechodzi dalej po prostu z informacja "no photos") nawet jak wytne sciezke z lokalizacja na xamppa...

erix - w tablicy jest zwykly, nieduzy jpeg...

masakra po prostu
Pikuss
Spróbuj tak: zamień sobie $_FILES na $HTTP_POST_FILES ew. zrób gdzieś pod if($_POST['submit']) przypisanie adresu $_FILES = &$HTTP_POST_FILES; może pójdzie.
erix
Cytat
erix - w tablicy jest zwykly, nieduzy jpeg...

Ok, ale czy tam jest cokolwiek, najlepiej załącz dumpa.

~Pikuss, zastanów się czasem, co piszesz... brzydal.gif
retes
-- phpMyAdmin SQL Dump
-- version 2.9.2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Czas wygenerowania: 06 Maj 2010, 13:05
-- Wersja serwera: 5.0.66
-- Wersja PHP: 5.2.6
--
-- Baza danych: `tedbid`
--

-- --------------------------------------------------------

--
-- Struktura tabeli dla `images`
--

CREATE TABLE `images` (
`id` int(11) NOT NULL auto_increment,
`item_id` int(11) NOT NULL,
`name` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Zrzut danych tabeli `images`
--


hej erix, oczywiscie kod niczego do tabeli nie skierowal..


czy ktoś mi pomoze...pliz

czy ktos mi pomoze np wymiatajacy nospor!!!?? kurde!
nospor
Skoro zostalem wywolany do tablicy:
zamykam - w ciągu 5 minut dwa refreshe - lekka przesada. zamykam na godzine. Nastepnym razem zamkne na dzien.

edit otwieram

Proszono cię o zawartosc $_FILES. Podaj nam ją, a nie swoj slowny opis robisz.

print_r($_FILES);
retes

Hej, dziekuje ale...nie daje sobie rady. Czy print_r mam zrobic skladowa dla skryptu powyzej czy w formie nowego pliku - probuje czegos takiego, ale to chyba nie o to chodzi:

<?php
echo '<pre>';
print_r($_POST);
echo '<HR>';
print_r($_FILES);
echo '</pre><HR>';
echo '<form enctype="multipart/form-data" method="post" action="zawartosc.php"><input type="file" size="32" name="plik_upload" value=""><input type="submit" name="Wyślij"></form>';


Jestem juz prawie pewien ze problem tkwi w ini_set, skrypt przestaje sie laczyc z baza po skasowaniu tabeli images, czyli nie jest zapisywany plik uploadowany w formie temporary. Czy ktos wie jak to naprawic, mozna to ustawic z poziomu skryptu?

Dziekuje z gory za pomoc
Ociu
retes jesteś co trochę upominany przez moderatorów, Twój temat został zamknięty. Teraz ja też Cię upomnę.
Zacznij korzystać z bbCode !

Jeśli nie zaczniesz skończy się warnem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.