Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [php + mysql ] Edycja zdjęcia
pioch
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


Witam


Kolejny problem powstał przy edycji newsa......

chodzi o edycje zdjęcia, w jaki sposób rozwiązać ten problem , mianowicie


Gdy edytuje news, mam w bazie danych pole ' news_foto ' i chciałbym zrobić tak

że przy edycji newsa był pokazany aktualny obrazek, oraz mozliwość nadpisania nowym ( formularz który moge przenieś z dodawania nowego newsa)


  1. <?php
  2. // formularz dodawania foto
  3.  
  4. <input name="image_filename" type="file" id="image_filename" size="20" >
  5.  
  6.  
  7. // foto upload
  8.  
  9.  
  10. $news_foto= $_FILES['image_filename']['name'];
  11.  
  12. if( is_uploaded_file( $_FILES['image_filename']['tmp_name'] ) )
  13. {
  14. $ImageName = './grafika/news/' . $_FILES['image_filename']['name'];
  15. if( move_uploaded_file( $_FILES['image_filename']['tmp_name'], $ImageName ) ) {
  16.  
  17. list($width, $height, $type, $attr ) = getimagesize($ImageName);
  18.  
  19.  
  20. switch ( $type ) {
  21. case 1:
  22. $ext = ".gif";
  23. break;
  24. case 2:
  25. $ext = ".jpg";
  26. break;
  27. case 3:
  28. $ext = ".png";
  29. break;
  30. default;
  31.  
  32. echo "Przykro nam, ale przesłany obraz nie jest w formacie gif, jpg lub png";
  33. }
  34. ?>



i teraz przy edycji newsa , chciałbym pobrać aktualny news i mieć możliwość jego napisania...
Go to the top of the page
+Quote Post
wert1
post
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 22.03.2007
Skąd: localhost

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


  1. <textarea name="description" cols="40" rows="5"><?php echo $123; ?></textarea>

gdzie $123 to zmienna która jest zczytywana z bazy
Go to the top of the page
+Quote Post
pioch
post
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


Cytat(wert1 @ 20.04.2007, 15:20:35 ) *
  1. <textarea name="description" cols="40" rows="5"><?php echo $123; ?></textarea>

gdzie $123 to zmienna która jest zczytywana z bazy



tyle ze ja nie pytam sie o edycje tekstu , tylko ZDJĘCIA (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ! lub pozostawieniu istniejącego...
Go to the top of the page
+Quote Post
babejsza
post
Post #4





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


lol 8|

pobierasz sobie nazwę zdjęcia i je wyświetlasz. Obok dajesz input'a plikowego. Po przesłaniu formularza sprawdzasz czy przesłano jakiś plik, jeżeli nie to pozostawiasz stary, jeżeli tak to go kasujesz i nadpisujesz informację w bazie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Chyba, że znowu nie o to chodziło (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .
Go to the top of the page
+Quote Post
pioch
post
Post #5





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


Cytat(babejsza @ 20.04.2007, 15:52:34 ) *
lol 8|

pobierasz sobie nazwę zdjęcia i je wyświetlasz. Obok dajesz input'a plikowego. Po przesłaniu formularza sprawdzasz czy przesłano jakiś plik, jeżeli nie to pozostawiasz stary, jeżeli tak to go kasujesz i nadpisujesz informację w bazie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Chyba, że znowu nie o to chodziło (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .



dokładnie oto chodzi (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !

Ale nie wiem jak mam to sprawdzenie zrobić, możesz podac przykład

Wyświetlam zdjecie i dałem obok inputa i co dalej....
Go to the top of the page
+Quote Post
babejsza
post
Post #6





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


w uproszczeniu np. tak:

  1. <?php
  2. if(!empty($_FILES['input_name']['name']))
  3. {
  4.  ... //
  5. }
  6. ?>


chociaż lepiej to będzie sprawdzić na podstawie przesłanego pliku czyli:

  1. <?php
  2. if (move_uploaded_file($_FILES['input_name']['tmp_name'], $uploadfile))
  3. {
  4.  ... //
  5. }
  6. ?>


Ten post edytował babejsza 20.04.2007, 15:01:59
Go to the top of the page
+Quote Post
pioch
post
Post #7





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


Wogóle tego nie rozumie :/


narazie mam tak zrobione (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )


  1. <?php
  2. <br><img src="grafika/news_foto/$news_foto"><br><br><strong>Zmień zdjęcie : <br></strong>Przyjmowane sa pliki jpg, gif, png --> wymiary 130x90px !<br><br><input name="image_filename" type="file" id="image_filename" size="20" >";
  3. ?>


nio i wyświetla mi sie foto , co było wysłane wczesniej , no i mam inputa....


ale próbowałem zamienić istniejące zdjęcie to sie nie da.....
oraz edycja bez zmiany foto tez nie działa
Go to the top of the page
+Quote Post
babejsza
post
Post #8





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


to co Ci napisałem dopisujesz w miejscu gdzie nadpisujesz dane w bazie po przesłaniu formularza.
Go to the top of the page
+Quote Post
pioch
post
Post #9





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


czyli tutaj (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )


  1. <?php
  2. if ($wynik && $id<>"") {
  3. $wynik = mysql_query("
  4. UPDATE newsy
  5. SET tytul='$tytul', tresc_krotka='$tresc_krotka', tresc_cala='$tresc_cala', data_n='$data', autor='$autor', kategoria='$kategoria', zrodlo='$zrodlo', link_forum='$link_forum', akcept='Z', news_foto='$news_foto'
  6. WHERE id=$id
  7. ");
  8. ?>
Go to the top of the page
+Quote Post
babejsza
post
Post #10





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


Na to wygląda, ale Twoja metoda sprawdzania czy zostały przesłane jakieś dane jest delikatnie mówiąc, bardzo kulawa. Po pierwsze korzystasz z "przywileju" że masz włączone register_globals (niepoprawnie odczytujesz przesłane zmienne globalne), a poza tym nie udparniasz zapytania na jakiekolwiek ataki.

Tak czy inaczej po sprawdzeniu danych dodajesz to Co ci napisałem z odpowiednimi operacjami.
Go to the top of the page
+Quote Post
pioch
post
Post #11





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


babejsza sorki ze truje....

ale nie moge sobie z tym poradzić....


Czy mógłbys mi napisać bardziej dokładnie, bo naprawde nie rozumie....

a jest to dla mnie ważne , bo tak musiałbym w bazie danych zmieniać nazwe zdjęcia a tak była by możliwość edycji z poziomu przeglądarki....


// edit


Z napisywanie plików sobie poradziłem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ))


Ale teraz jak zrobić , by przy braku nadpisywania zdjęcia zostało aktualne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?


Prosze o pomoc , dosyć pilne

Ten post edytował pioch 20.04.2007, 16:58:55
Go to the top of the page
+Quote Post
Mary$
post
Post #12





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 19.02.2007
Skąd: 3city

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


jeżeli masz warunek, który sprawdza, czy w formularzu zdeklarowałeś jakiś plik, to wykonujesz jakieś instrukcje jeżeli jest ten plik wybrany. Jeżeli ten plik nie jest wybrany, to wtedy nic się nie powinno dziać.
Zapytanie Twoje powinno wygladać tak:
  1. <?php
  2. //poczatek zapytania
  3. $sql = "UPDATE newsy SET tytul='$tytul', tresc_krotka='$tresc_krotka', tresc_cala='$tresc_cala', data_n='$data', autor='$autor', kategoria='$kategoria', zrodlo='$zrodlo', link_forum='$link_forum', akcept='Z'";
  4.  
  5. //jeżeli nadpisuję
  6. if (move_uploaded_file($_FILES['input_name']['tmp_name'], $uploadfile))
  7. $sql .= ", news_foto='$news_foto'";
  8.  
  9. //koncze zapytanie
  10. $sql .= ' WHERE id=$id';
  11.  
  12. //wykonuje
  13. $wynik = mysql_query($sql);
  14. ?>


Ten post edytował Mary$ 20.04.2007, 17:17:16
Go to the top of the page
+Quote Post
babejsza
post
Post #13





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


Oj chopie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Tak na szybko:

  1. <?php
  2. if (isset($_POST['wyslij']) && !empty($_GET['id'])) {
  3.  
  4. $sciezka ='./jakis_tam_twoj_katalog';
  5. if (move_uploaded_file($_FILES['image_filename']['tmp_name'], $sciezka.'/nowanazwaplinku.jpg'))
  6. {
  7. $nowaNazwaPliku = ', news_foto = "nowanazwaplinku.jpg"';
  8. }
  9.  
  10. $wynik = mysql_query('
  11. UPDATE newsy SET
  12. tytul="'.$_POST['tytul'].'", 
  13. tresc_krotka="'.$_POST['tresc_krotka'].'", 
  14. tresc_cala="'.$_POST['tresc_cala'].'", 
  15. data_n="'.$_POST['data'].'",
  16. autor="'.$_POST['autor'].'", 
  17. kategoria="'.$_POST['kategoria'].'",
  18. zrodlo="'.$_POST['zrodlo'].'", 
  19. link_forum="'.$_POST['link_forum'].'", 
  20. akcept="Z"
  21. '.$nowaNazwaPliku.'
  22. WHERE id=$id
  23. ');
  24.  
  25. }
  26.  
  27.  
  28. echo '
  29. <form action="?page='.$_GET['page'].'&id='.$_GET['id'].'" method="post" enctype="multipart/form-data">
  30. ..............................................
  31. --INNE POLA FORMULARZA -----------------------
  32. .............................................
  33. <img src="grafika/news_foto/'.$news_foto.'"><br><br>
  34. <strong>Zmień zdjęcie : <br></strong>
  35. Przyjmowane sa pliki jpg, gif, png --> wymiary 130x90px !<br><br>
  36. <input name="image_filename" type="file" id="image_filename" size="20" >
  37. <input type="submit" name="wyslij" value="wyślij">
  38. </form>
  39. ';
  40.  
  41. ?>


Nie powinno być błędów, ale nie sprawdzałem.

Ten post edytował babejsza 20.04.2007, 17:19:18
Go to the top of the page
+Quote Post
pioch
post
Post #14





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


Teraz to wogóle zawriowałem , ja to zrobiłem tak , bardziej prosto (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )


  1. <?php
  2. //formularz
  3.  
  4.  
  5. <tr>
  6. <td width="216" height="7"><font class="liter1"><br><strong>Tytul :</td>
  7. <td width="601" height="7" colspan="2"><br><input type="text" name="tytul" value="$tytul" ></td>
  8. </tr>
  9.  
  10. <tr>
  11. <td width="601" height="21" colspan="2"><center><font class="liter1"><br><img src="grafika/news_foto/$news_foto"><br><br><strong>Zmień zdjęcie : <br></strong>Przyjmowane sa pliki jpg, gif, png --> wymiary 130x90px !<br><br><input name="image_filename" type="file" id="image_filename" size="20" ></center></td>
  12. </tr>
  13. <tr>
  14. <td width="216" height="7"></td>
  15. <td width="601" height="7" colspan="2"><br><br><input input type="submit" value=" Zatwierdz dane"></td>
  16. </tr>
  17. </table>
  18. </center>
  19.  
  20. </form></div>
  21. ";
  22.  
  23. }
  24. $news_foto = $_FILES['image_filename']['name'];
  25.  
  26. if( is_uploaded_file( $_FILES['image_filename']['tmp_name'] ) )
  27. {
  28. $ImageName = './grafika/news_foto/' . $_FILES['image_filename']['name'];
  29. if( move_uploaded_file( $_FILES['image_filename']['tmp_name'], $ImageName ) ) {
  30.  
  31. list($width, $height, $type, $attr ) = getimagesize($ImageName);
  32.  
  33.  
  34. switch ( $type ) {
  35. case 1:
  36. $ext = ".gif";
  37. break;
  38. case 2:
  39. $ext = ".jpg";
  40. break;
  41. case 3:
  42. $ext = ".png";
  43. break;
  44. default;
  45.  
  46. echo "Przykro nam, ale przesłany obraz nie jest w formacie gif, jpg lub png";
  47. }
  48. // AKTUALIZACJA W BAZIE
  49.  
  50. if ($wynik && $id<>"") {
  51. $wynik = mysql_query("
  52. UPDATE newsy
  53. SET tytul='$tytul', tresc_krotka='$tresc_krotka', tresc_cala='$tresc_cala', data_n='$data', autor='$autor', kategoria='$kategoria', zrodlo='$zrodlo', link_forum='$link_forum', akcept='Z', news_foto='$news_foto'
  54. WHERE id=$id
  55. ");
  56. ?>



i jak zrobić by bez edycji foto ( czyli gdy jest puste $_FILES['image_filename']['name'] , pozostawało to samo zdjęcie

prosze o pomoc
Go to the top of the page
+Quote Post
babejsza
post
Post #15





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


Stary @Mary$ i ja daliśmy Ci już właściwie gotowe rozwiązania, weź je przeanalizuj, bo nikt za Ciebie całej roboty odwalać nie będzie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Może mamy Ci jeszcze przygotować plik edycjaNewsa.php i przesłać na e-mail (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .

Ten post edytował babejsza 20.04.2007, 17:25:43
Go to the top of the page
+Quote Post
pioch
post
Post #16





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


Cytat(babejsza @ 20.04.2007, 18:25:22 ) *
Stary @Mary$ i ja daliśmy Ci już właściwie gotowe rozwiązania, weź je przeanalizuj, bo nikt za Ciebie całej roboty odwalać nie będzie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Może mamy Ci jeszcze przygotować plik edycjaNewsa.php i przesłać na e-mail (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .



Oczywiście ze nie , to wasza dobra wola ze pomagasz/cie....

Ale Ty (babejsza) napisałes mi tylko jak nadpisac plik...
Go to the top of the page
+Quote Post
skowron-line
post
Post #17





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


nadaj dla submita name

  1. <?php
  2. if(isset($_POST['submit')){
  3.  if(!empty($_FILES['image_filename']['name'])){
  4. $news_foto = $_FILES['image_filename']['name'];
  5.  
  6. if( is_uploaded_file( $_FILES['image_filename']['tmp_name'] ) )
  7. {
  8. $ImageName = './grafika/news_foto/' . $_FILES['image_filename']['name'];
  9. if( move_uploaded_file( $_FILES['image_filename']['tmp_name'], $ImageName ) ) {
  10.  
  11. list($width, $height, $type, $attr ) = getimagesize($ImageName);
  12.  
  13.  
  14. switch ( $type ) {
  15. case 1:
  16. $ext = ".gif";
  17. break;
  18. case 2:
  19. $ext = ".jpg";
  20. break;
  21. case 3:
  22. $ext = ".png";
  23. break;
  24. default;
  25.  
  26. echo "Przykro nam, ale przesłany obraz nie jest w formacie gif, jpg lub png";
  27. }
  28. // AKTUALIZACJA W BAZIE
  29.  
  30. if ($wynik && $id<>"") {
  31. $wynik = mysql_query("
  32. UPDATE newsy
  33. SET tytul='$tytul', tresc_krotka='$tresc_krotka', tresc_cala='$tresc_cala', data_n='$data', autor='$autor', kategoria='$kategoria', zrodlo='$zrodlo', link_forum='$link_forum', akcept='Z', news_foto='$news_foto'
  34. WHERE id=$id
  35. ");
  36.  
  37. }
  38. }else{
  39. echo'pole jest puste';
  40. }
  41. ?>
Go to the top of the page
+Quote Post
babejsza
post
Post #18





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


Cytat
Ale Ty (babejsza) napisałes mi tylko jak nadpisac plik...


Nie - napisałem Ci dokładnie co należy zrobić.

Czyli jeżeli upload pliku nastąpił, to tworzy zmienną z instrukcją dla zapytania, a jeżeli nie to w ogóle zapytanie nie zajmie się tym polem tabeli (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Sprawdź to co Ci napisałem.
Go to the top of the page
+Quote Post
pioch
post
Post #19





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


Wiem babejsza...

Chciałbym się nauczyć ale nie mam takiej wiedzy....


kod podany przez skowron-line wywala mi bład.... już sam nie wiem jak to zrobić.....


Moze mi ktoś powie dlaczego w tej lini

  1. <?php
  2. if(isset($_POST['submit')){
  3.  
  4.  if(!empty($_FILES['image_filename']['name'])) {
  5.  
  6. $news_foto = $_FILES['image_filename']['name'];
  7. ?>


wywala mi błąd Parse error: syntax error, unexpected ')', expecting ']' (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
skowron-line
post
Post #20





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


brakuje nawiasu
w
  1. <?php
  2. if(isset($_POST['submit']))
  3. ?>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 21:47