Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PHP]Automatyczne wpisy w bazie po przeladowaniu strony
chrzanu
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.07.2012

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


Witam
Posiadam taki skrypt na dodwania zdjecia na serwer i przeslanie siezki do bazy mysql oraz wyswietlanie zdjec. Jak zrobic aby po przeladowaniu strony z fomularzem do bazy nie dodawal sie pusty wpis z folderem w ktorym przechowywane sa wszystkie wyslane pliki?

  1.  
  2. <form method="post" action="paneladmina.php?ident=pic" enctype="multipart/form-data">
  3. <input type="hidden" name="MAX_FILE_SIZE" value="900000">
  4.  
  5. Wybierz plik który chcesz umieścić na serwerze:<br>
  6.  
  7. <input type="file" name="pliczek" size="40"><br>
  8. <input type="submit" value="Wgraj plik">
  9.  
  10. $plik_tmp = $_FILES['pliczek']['tmp_name'];
  11. $plik_nazwa = $_FILES['pliczek']['name'];
  12. $plik_rozmiar = $_FILES['pliczek']['size'];
  13.  
  14. $plik_nazwa = strtolower($plik_nazwa);
  15. $plik_nazwa = str_replace("ż","z",$plik_nazwa);
  16. $plik_nazwa = str_replace("?","a",$plik_nazwa);
  17. $plik_nazwa = str_replace(" ","",$plik_nazwa);
  18. $plik_nazwa = str_replace("_","",$plik_nazwa);
  19.  
  20. if(is_uploaded_file($plik_tmp)) {
  21. move_uploaded_file($plik_tmp, "upload/".$_FILES['pliczek']['name']);
  22. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  23. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer! Link do pliku: <code>http://twoja.domena.pl/upload/$plik_nazwa</code> ";
  24. }
  25.  
  26. $connection = mysql_connect("localhost","root","krasnal");
  27. $db = mysql_select_db("test", $connection);
  28. $name = 'upload/'.$_FILES['pliczek']['name'];
  29. $sql="INSERT INTO obrazki (sciezka)
  30. VALUES
  31. ('$name')";
  32.  
  33. if (!mysql_query($sql))
  34. {
  35. die('Błąd: ' . mysql_error());
  36. }
  37. echo "Plik został zapisany!<br>";
  38.  
  39. $connection = mysql_connect("localhost","root","krasnal");
  40. $db = mysql_select_db("test", $connection);
  41. $sql = mysql_query("SELECT * FROM obrazki");
  42. $i = 0;
  43. while ($row = mysql_fetch_array($sql)) { $i++;
  44.  
  45. $sciezka = $row['sciezka'];
  46.  
  47. echo '<div>';
  48. echo "$i. ";
  49. echo "<br />";
  50. echo "<a href='$sciezka'><img height='90' width='90' src='$sciezka' /></a>";
  51. echo '</div>';
  52. }
  53.  


Ten post edytował chrzanu 16.07.2012, 23:18:18
Go to the top of the page
+Quote Post
drozdii07
post
Post #2





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

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


Sprawdzaj czy został wysłany formularz. Na przykład funkcją isset();
Go to the top of the page
+Quote Post
chrzanu
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.07.2012

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


wszystko fajnie ale nie wiem jak to zrobic (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Żadne isset().. naucz się oddzielać kod prezentacji od kodu wykonywalnego. Stwórz dwa pliki np. viewForm.php i saveForm.php

- viewForm.php ma zawierać tylko formularz z action skierowanym na saveForm.php
- saveForm.php po pomyślnym dodaniu przekierowuje na viewForm (za pomocą header('Location:'))

w ten sposób unikniesz problemów z if(isset($_POST)) na pół pliku
Go to the top of the page
+Quote Post
drozdii07
post
Post #5





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

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


  1. if(isset($_POST['submit'])){
  2. // wykonaj kod
  3. }


Edit:
Albo tak jak opisał to CuteOne (IMG:style_emoticons/default/wink.gif)

Ten post edytował drozdii07 17.07.2012, 00:53:44
Go to the top of the page
+Quote Post
GoOx
post
Post #6





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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


Tak tylko żeby zabezpieczyć sie przed natrętami w tym drugim pliku i tak musi być isset() by sprawdzało czy przycisk został naciśniety, bo jeśli wejdzie taki typowy natręt na stronę i pozna dostęp do pliku save_forum do przykładowo bazy i tak się dostaną jakieś dane po wczytaniu strony.

Ten post edytował GoOx 17.07.2012, 11:54:03
Go to the top of the page
+Quote Post

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: 23.12.2025 - 18:05