Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][GD] Dziwny błąd skryptu
enemyofarcha
post 26.08.2009, 01:50:13
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.06.2009

Ostrzeżenie: (0%)
-----


Witam, witam... Ponownie.. Już teoretycznie udało mi się wszystko zrobić w Panelu administracji portfolio.. Tylko mam dziwny problem.

Przy dodawaniu nowego rekordu do bazy danych wraz z uploadem obrazka, wszystko działa jak należy, lecz podczas edycji rekordu jest problem z plikiem.
Nie wysyła go i nie dodaje wpisu nazwy do bazy danych - Jak to robi przy dodawaniu nowego rekordu.

W czym może polegać problem?

skrypt dodawania:
  1. if ($_POST['dodaj']) {
  2.  
  3. $id = trim($_POST['id']);
  4. $klient = trim($_POST['klient']);
  5. $wykonano = trim($_POST['wykonano']);
  6. $web = trim($_POST['web']);
  7. $data = trim($_POST['data']);
  8. $img = ($_FILES['obrazek']['name']);
  9. uploadobrazka();
  10.  
  11. $sql = @mysql_query("INSERT INTO portfolio SET id='$id', klient='$klient', wykonano='$wykonano', web='$web', data='$data', img_tb=' $img', img_big='$img'");
  12. $dodaj = mysql_query($sql);
  13.  
  14. if ($dodaj)
  15. echo "<center>Rekord został dodany</center>";
  16. else
  17. echo "<center>Rekord został dodany</center>";
  18. }


skrypt edycji:
  1. if ($_POST['zmien']) {
  2.  
  3. $id = trim($_POST['id']);
  4. $klient = trim($_POST['klient']);
  5. $wykonano = trim($_POST['wykonano']);
  6. $web = trim($_POST['web']);
  7. $data = trim($_POST['data']);
  8. $img = ($_FILES['obrazek']['name']);
  9. uploadobrazka();
  10.  
  11. $sql = "UPDATE portfolio SET
  12. klient = '$klient',
  13. wykonano = '$wykonano',
  14. web = '$web',
  15. img_big = '$img',
  16. img_tb = '$img',
  17. data = '$data' WHERE id =".$_POST['id'];
  18.  
  19. $edycja = mysql_query($sql);
  20.  
  21.  
  22. if ($edycja)
  23. echo "<center>Naniesiono poprawki</center>";
  24. else
  25. echo "<center>Wystąpił błąd!</center>";
  26. }


Formularze są identyczne /* HTML */. (ale raczej nie ma potrzeby pokazywania ich)

Jeszcze dodam skrypt GD, żeby nie było niejasności:
  1. function uploadobrazka(){
  2.  
  3. if( is_uploaded_file( $_FILES['obrazek']['tmp_name'] ) )
  4. {
  5. $strUploadDir = '../images/portfolio/' . $_FILES['obrazek']['name'];
  6. if( move_uploaded_file( $_FILES['obrazek']['tmp_name'], $strUploadDir ) )
  7. {}else{}}
  8. $img = imagecreatefromjpeg($strUploadDir);
  9. $width = imagesx($img);
  10. $height = imagesy($img);
  11. $width_mini = 80;
  12. $height_mini = 80;
  13. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  14. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
  15. imagejpeg($img_mini, '../images/portfolio/thumb/' . basename($_FILES["obrazek"]['name']), 100);
  16. imagedestroy($img);
  17. imagedestroy($img_mini);
  18. }


Zapomniałbym o najważniejszym, przy zapisie wy-edytowanego formularza, pokazuje mi takie błędy:

  1. Warning: imagesx(): supplied argument is not a valid Image resource in E:\xampp\htdocs\archa\admin\portfolio.php on line 158
  2.  
  3. Warning: imagesy(): supplied argument is not a valid Image resource in E:\xampp\htdocs\archa\admin\portfolio.php on line 159
  4.  
  5. Warning: imagecopyresampled(): supplied argument is not a valid Image resource in E:\xampp\htdocs\archa\admin\portfolio.php on line 163
  6.  
  7. Warning: imagejpeg() [function.imagejpeg]: Unable to open '../images/portfolio/thumb/' for writing: No such file or directory in E:\xampp\htdocs\archa\admin\portfolio.php on line 164
  8.  
  9. Warning: imagedestroy(): supplied argument is not a valid Image resource in E:\xampp\htdocs\archa\admin\portfolio.php on line 165


--------------------
Fotografia
Fiona - Cały świat mojego psa
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post 26.08.2009, 11:13:36
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Logika skryptu... Jeśli ktoś uploaduje plik to jest wszystko ok... Ale co jeśli nie robi tego? smile.gif Wtedy zmienna $strUploadDir nawet nie istnieje, choć zaraz potem próbujesz jej użyć wywołując imagecreatefromjpeg($strUploadDir)i to jest ten błąd.

Sprawdzaj najpierw czy w ogóle coś w zmiennej $_FILES jest i dopiero od tego uzależniaj czy uploadobrazka() się wykona czy nie.

Zresztą inny błąd... Po co masz kolumny img_big i img_tb skoro przechowują one to samo? Jedna zbędna smile.gif

Ten post edytował thek 26.08.2009, 11:17:56


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2025 - 08:30