Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] problem ze sprawdzeniem pól
shiba
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.04.2009

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


Witam, zapętliłem się strasznie, czy możecie mi pomóc uprościć to rozwiązanie?
  1. <?php
  2. function odbierz($pole) {
  3. $pole = trim($pole);
  4. if (get_magic_quotes_gpc()) $pole = stripslashes($pole);
  5. return htmlspecialchars($pole, ENT_QUOTES);
  6. }
  7.  
  8. $imie = odbierz($_POST['imie']);
  9. $nazwisko = odbierz($_POST['nazwisko']);
  10. $nazwa_firmy = odbierz($_POST['nazwa_firmy']);
  11. $opis = odbierz($_POST['opis']);
  12.                                                
  13. if (empty($imie)&&empty($nazwisko)&&empty($nazwa_firmy)&&empty($opis)){
  14. echo"musisz wypełnić co najmniej jedno pole ...";
  15. } else {
  16.                                
  17. include("../tabele/dane.php");
  18. $conn = mysql_connect( $mysql_host, $mysql_login, $mysql_haslo );
  19. if (!$conn) {
  20. echo 'brak połączenia z bazą danych.';
  21. }
  22. $db = mysql_select_db($mysql_baza);
  23. if (!$db) {
  24. echo 'błąd wyboru bazy danych.';
  25. }
  26.                                
  27. if (isset($_FILES['plik'])&&($imie!='')||($nazwisko!='')||($nazwa_firmy!='')||($opis!=''))
  28. {
  29. if ($_FILES['plik']['error']==UPLOAD_ERR_OK)
  30. {
  31. $nazwapliku=$_FILES['plik']['name'];      
  32. $typpliku=$_FILES['plik']['type'];      
  33. $rozmiarpliku=$_FILES['plik']['size'];      
  34. $srcplik=$_FILES['plik']['tmp_name'];  
  35.  
  36. if ($typpliku=="application/msword" || $typpliku=="application/pdf" ||
  37. $typpliku=="text/html" || $typpliku=="application/rtf" ||
  38. $typpliku=="application/vnd.oasis.opendocument" || $typpliku=="text/plain" )
  39. {
  40. $plik=fopen($srcplik,"r");
  41. $mysqlplik = addslashes(fread($plik,$rozmiarpliku));
  42. fclose($plik);    
  43. unlink($srcplik);
  44. $mysqltyppliku = addslashes($typpliku);
  45. $mysqlnazwapliku = addslashes($nazwapliku);
  46.  
  47. $zapytanie="INSERT INTO $mysql_tabela (id_dane,imie,nazwisko,nazwa_firmy,opis,plik,nazwa,typ,rozmiar)
  48. VALUES ('','$imie','$nazwisko','$nazwa_firmy','$opis','$mysqlplik','$mysqlnazwapliku','$mysqltyppliku','$rozmiarpliku')";
  49.        
  50. if($wynik=mysql_query($zapytanie,$conn))
  51. echo('dane oraz plik zostały zapisane w bazie ...');
  52. else
  53. echo('błąd wykonania zapytania 1: '. mysql_error());
  54. }
  55. else { die("twój plik nie został zapisany w bazie, bo jest innego formatu niż: pdf,doc,txt,html,rtf ..."); }
  56. }
  57. else { die("błąd podczas wysyłania pliku ..."); }
  58. }
  59. else {
  60. $zapytanie2="INSERT INTO $mysql_tabela (id_dane,imie,nazwisko,nazwa_firmy,opis,plik,nazwa,typ,rozmiar)
  61. VALUES ('','$imie','$nazwisko','$nazwa_firmy','$opis','$mysqlplik','$mysqlnazwapliku','$mysqltyppliku','$rozmiarpliku')";
  62.        
  63. if($wynik2=mysql_query($zapytanie2,$conn))
  64. echo('dane zostały zapisane w bazie ...');
  65. else
  66. echo('błąd wykonania zapytania 2: '. mysql_error());
  67. }
  68. }
  69. ?>

chodzi o to ze mozna dodac dane do bazy bez pliku ale musi byc wypelnione przynajmniej jedno pole ... teraz jak nie dodaje pliku to pokazuje mi ze "blad podczas wysylania pliku" ...
Go to the top of the page
+Quote Post
TroYan
post
Post #2





Grupa: Zarejestrowani
Postów: 56
Pomógł: 1
Dołączył: 19.04.2004
Skąd: Bytom Odrz.

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


nie jestem pewny, bo późno ale:

  1. <?
  2.  
  3. if (isset($_FILES['plik'])&&($imie!='')||($nazwisko!='')||($nazwa_firmy!='')||($opis!=''))
  4. { ... }
  5. else { die("błąd podczas wysyłania pliku ..."); }
  6.  
  7. ?>


tutaj z tego co rozumiem to wymuszasz istnienie $_FILES['plik'] i $imie lub (reszta zmiennych), bo w przeciwnym wypadku 'błąd podczas wysyłania pliku...'.

imho to czy plik został uploadowany musisz sprawdzać w osobnym if'ie

Ten post edytował TroYan 22.06.2009, 00:47:01
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.08.2025 - 22:26