Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem ze sprawdzeniem pól
Forum PHP.pl > Forum > Przedszkole
shiba
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" ...
TroYan
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
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.