Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: TOTALNIE UTKNĄŁEM!
Forum PHP.pl > Forum > PHP
Booyaches
Witam ! Niniejszy skrypt ma zazadanie... 1. odebrac dane z formularza z poprzedniej strony łącznie z plikiem jpg, ktory user moze sobie uploadowac 2. sprawdzic poprawnosc danych 3. jezeli wszystko sie zgadza to ma utworzyc z pliku miniature i wrzucic ja do folderu "thumbnails" 4. wrzucic wszystkie dane do bazy danych. Generalnie to problemow spodziewalbym sie wszedzie a pojawily sie w pkt. 4. Skryp nie umieszcza danych w bazie i nie wywala tez zadnego bledu. Spedzilem juz 2 dni na szukaniu bledu... sprawdzalem m. in. zgodnosc nazwy tabel, sprawdzalem czy wszystkie dane so porawnie przekazywane z formularza, szukalem wszelkich mozliwych literowek. Robilem juz wiele rzeczy zwiazanych z bazami danych wiec zupelnie nie spodziewalem sie takiego problemu. Chcialem tez dodac ,ze mam tez inne skrypty ,ktore wspolpracuja z ta sama baza danych wiec tam wszystko powinno byc w porzadku. Jestem studentem... to jest moja praca projektowa i mam nie lada problem. Jakie moga byc tego powody questionmark.gif Prosze o pomoc exclamation.gif

Wrzucam pelny kod:
  1. <?php
  2. /*READ COOKIE*/
  3. $user = $HTTP_COOKIE_VARS["user"];
  4.  
  5. /* GET FORM DATA */
  6. $pictitle = $_POST['title'];
  7. $picdescription = $_POST['description'];
  8. $piccategory = $_POST['category'];
  9. $filename = $_FILES['picture']['name'];
  10. $filesize = $_FILES['picture']['size'];
  11. $filetype = $_FILES['picture']['type'];
  12.  
  13. /* OTHER VARIABLES */
  14. $error = "";
  15. $positive = "";
  16. $thumbnailx = 150;
  17. $thumbnaily = 113;
  18. $thumbname = "mini".$filename."";
  19. $thumburl = "thumbnails/".$thumbname."";
  20.  
  21. /* DB QUARIES */
  22. include ("inc/sqlConnect.php");
  23.  
  24. $query1 = "SELECT artist_id FROM artist WHERE artist_email = '$user'";
  25. $result1 = mysql_query($query1);
  26. $data = mysql_fetch_assoc($result1);
  27. $userid = "".$data['artist_id']."";
  28.  
  29. $query = "INSERT INTO pictures (picure_id, picture_filename, picture_thumbname, picture_categoryid, picture_artistid, picture_title, picture_decription, picture_uploadtime)
  30.    VALUES ('','$filename', '$thumbname', '$piccategory', '$userid', '$pictitle', '$picdescription', now())";
  31.    
  32. /* DATA VALIDIATION */
  33.  
  34.  
  35. if ($pictitle == "") {
  36.  
  37. $error = "Enter the title please !<br/><a href='java script:java script:history.go(-1)'>Back</a>";
  38.  
  39. } elseif ($_FILES['picture']['type']!= "image/pjpeg") {
  40.  
  41. $error = "Your file has to be saved as JPG file !<br/><a href='java script:java script:history.go(-1)'>Back</a>";
  42.  
  43. } elseif (file_exists("pictures/".$_FILES['picture']['name'])) {
  44.  
  45. $error = "This file already exists in our database<br/><a href='java script:java script:history.go(-1)'>Back</a>";
  46.  
  47. } else {
  48.  
  49. move_uploaded_file ($_FILES['picture']['tmp_name'], "pictures/".$_FILES['picture']['name']);
  50. list($imgwidth, $imgheight) = getimagesize("pictures/".$_FILES['picture']['name']);
  51.    
  52. if ($imgwidth > 800 || $imgheight >600) {
  53.  
  54.  $error = "Your picture shouldn`t be bigger than 800x600 px !<br/><a href='java script:java script:history.go(-1)'>Back</a>";
  55.    unlink("pictures/".$_FILES['picture']['name']);
  56.  
  57. } else {
  58.  
  59.  resizePicture("pictures/".$filename."", $thumbnailx, $thumbnaily, $thumburl);
  60.  $result = mysql_query($query, $dblink);
  61.  $positive = "Your picture has been succesfully uploaded";
  62.  
  63. };
  64. };
  65.  
  66. /* CREATE THUMBNAIL -FUNCTION */
  67.  
  68. function resizePicture($picture, $expwidth, $expheight, $thumbpath) {
  69.    list($width, $height) = getimagesize($picture);
  70.    $xscale=$width/$expwidth;
  71.       $yscale=$height/$expheight;
  72.    
  73.  if ($yscale>$xscale){
  74.        $new_width = round($width * (1/$yscale));
  75.        $new_height = round($height * (1/$yscale));
  76.    } else {
  77.        $new_width = round($width * (1/$xscale));
  78.        $new_height = round($height * (1/$xscale));
  79.    }
  80.  
  81.  $new_picture = imagecreatetruecolor($new_width, $new_height);
  82.    $temporary_picture = imagecreatefromjpeg ($picture);
  83.    imagecopyresampled($new_picture, $temporary_picture, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  84. imagejpeg($new_picture, "".$thumbpath."");
  85.  
  86. };
  87.  
  88. ?>
  89. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  90. <head>
  91. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  92. <title>Untitled Document</title>
  93. </head>
  94. <body>
  95. <?
  96. echo $error;
  97. echo $positive;
  98.  
  99. ?>
  100. </body>
  101. </html>
Apocalyptiq
Hm, jakoś nie mogę w tym kodzie znaleźć połączenia z bazą, chyba dlatego sie nic do niej nie zapisuje smile.gif
Masz tylko jakąś zmienną $dblink przy wykonywaniu dodania rekordu do bazy, ale tego $dblink w kodzie wcześniej coś nie mogę znaleźć.
Booyaches
Nie nie na linii 19 jest include ("inc/sqlConnect.php"); w tym pliku jest wszystko czego trzeba i uzywam tego pliku we wszystkich poedstronach do laczenia sie z baza. Zreszta gdymym nie mial polaczenia to pewnie wywalal by blad. :-(
megawebmaster
A gdzie masz wykonanie zapytania INSERT zawartego w linii 24? Po tym $query nie widzę wywołania mysql_query winksmiley.jpg
Apocalyptiq
Cytat(megawebmaster @ 21.04.2009, 17:40:10 ) *
A gdzie masz wykonanie zapytania INSERT zawartego w linii 24? Po tym $query nie widzę wywołania mysql_query winksmiley.jpg


Linia 61
Booyaches
Ciekawa sprawa ogółem.. Jeżeli zrobie np

  1. <?php
  2. if ($result) {
  3.   echo "Dziala";
  4. };
  5. ?>


To result ma wartosc false i echo sie nie wyswietla...

Moze powinienem zaczac od zastanawiania sie "W jakich przypadkach dane nie sa wysylane do bazy i skrypt nie zwraca bledu ?"
Apocalyptiq
Odpal:
  1. <?php
  2. var_dump($result);
  3. ?>
Booyaches
var_dump zwraca NULL questionmark.gif Co to oznacza ?



Nie przepraszam.. var_dump zwraca bool(false)
sciana.gif
Apocalyptiq
a daj echo $query1, tego pierwszego, być może któraś z danych tam zmiennych powoduje ten błąd.
A tak pozatym, poczytaj o SQL Injection, bo to zapytanie aż sie o to prosi smile.gif Do pracy z bazą danych polecam PDO.
megawebmaster
Jak coś to echo $query; smile.gif No tak, nie zauważyłem tego wykonania. A teraz powiedz - czy skrypt pokazuje $positive, czyli ten tekst "Your picture has been succesfully uploaded" w przeglądarce?
Booyaches
$query1 zwraca

SELECT artist_id FROM artist WHERE artist_email = wiktor@awotex.pl i to dziala poprawnia bo jak dam echo $userid to wyswietla mi poprawne id usera.

$query zwraca

Kod
INSERT INTO pictures (picure_id, picture_filename, picture_thumbname, picture_categoryid, picture_artistid, picture_title, picture_decription, picture_uploadtime) VALUES ('','avatar copy.jpg', 'miniavatar copy.jpg', '1', '51', 'SDsadasd', 'Describe your picture...', now())


i to tez wydaje sie byc poprawne.
Cytat
A teraz powiedz - czy skrypt pokazuje $positive, czyli ten tekst "Your picture has been succesfully uploaded" w przeglądarce?


Tak wyswietla sie pod warunkiem ,ze wszystkie warunki zostana spelnione. Uploadowane obrazy tez pojawiaja sie na serwerze i miniatury rowniez.

Cytat
A tak pozatym, poczytaj o SQL Injection, bo to zapytanie aż sie o to prosi smile.gif Do pracy z bazą danych polecam PDO.


Zaraz zabieram sie do czytania... guitar.gif

Ale numer... nie wiedzialem o SQL injection blinksmiley.gif (newbie) Widze ,ze czeka mnie wiecej pracy... dry.gif
megawebmaster
Skorzystanie z PDO akurat nie przysporzy Ci dużo pracy, bo zmienisz tylko wywołania zapytań na prepare, bindValue i execute. W sumie PDO chyba nawet przyspiesza współpracę z bazą danych.
http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO - bardzo dobrze wytłumaczone działanie i korzystanie z PDO winksmiley.jpg

EDIT: Próbowałeś wpisać tego otrzymanego INSERTa do phpMyAdmina na przykład?
erix
Cytat
Jestem studentem... to jest moja praca projektowa i mam nie lada problem.

Student i ma problem z ułożeniem tytułu wątku? Poza tym, nie odrabiamy prac domowych/zaliczeniowych. Zamykam. Obiekcje -> PW.
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.