Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP][APACHE] Błąd z form action
Forum PHP.pl > Forum > Przedszkole
n3xt
Witam wszystkich! Mam dość dziwny problem, stworzyłem formularz HTML, który odwołuje się do pliku add.php (ten ma tylko zapisać dane z formularza do bazy danych) i problem jest w tym, że naciskając przycisk "Wyślij" (submit) zamiast wywołać ten skrypt chce pobrać plik add.php. I tu fragment kodu:

  1. <form method="post" action="add.php">
  2.  
  3. <table border=0 align="center" cellpadding="10" cellspacing="0" width="950" bgcolor="fbd6a0">
  4. <tr >
  5. <td><a>Nazwa firmy:</a></td>
  6. <td><input type="text" name="NAZ" size="20"></td>
  7. <td colspan="2"><a>Adres zameldowania / siedziby firmy:</a></td>
  8. <td></td>
  9. <tr>
  10. <td><a>NIP:</a></td>
  11. <td><input type="test" name="NIP" size="10"></td>
  12. <td><a>Kod pocztowy:*</a></td>
  13. <td><input type="text" name="KOD" size="6"></td>
  14. </tr>
  15. <tr>
  16. <td><a>Regon:</a></td>
  17. <td><input type="text" name="REG" size="10"></td>
  18. <td><a>Miejscowość:*</a></td>
  19. <td><input type="text" name="MIE" size="20"></td>
  20. </tr>
  21. <tr>
  22. <td><a>Płeć:*</a></td>
  23. <td><input type="radio" name="SEX" value="1">Kobieta<input type="radio" name="SEX" value="2">Mężczyzna</td>
  24. <td><a>Ulica:*</a></td>
  25. <td><input type="text" name="ULI" size="20"></td>
  26. </tr>
  27. <tr>
  28. <td><a>Imię:*</a></td>
  29. <td><input type="text" name="IMIE" size="20"></td>
  30. <td colspan="2"><a>Adres korespondencyjny:</a></td>
  31. <td></td>
  32. </tr>
  33. <tr>
  34. <td><a>Nazwisko:*</a></td>
  35. <td><input type="text" name="NAZW" size="20"></td>
  36. <td><a>Kod pocztowy</a></td>
  37. <td><input type="text" name="KOD2" size="6"></td>
  38. </tr>
  39. <tr>
  40. <td><a>PESEL:*</a></td>
  41. <td><input type="text" name="PES" size="20"><img src="img/q.gif" width="5%" height="5%" title="Wprowadż 11 cyfr"></td>
  42. <td><a>Miejscowość</a></td>
  43. <td><input type="text" name="MIE2" size="20"></td>
  44. </tr>
  45. <tr>
  46. <td><a>Dokument tożsamości:*</a></td>
  47. <td><select name="DOK"><option value = "DOW">Dowód osobisty<option value="PAS">Paszport</select><input type="text" name="SER" size="10"></td>
  48. <td><a>Ulica</a></td>
  49. <td><input type="text" name="ULI2" size="20"></td>
  50. </tr>
  51. <tr>
  52. <td><a>Telefon</a></td>
  53. <td><input type="text" name="TEL" size="10"></td>
  54. <td><a>Adres e-mail</a></td>
  55. <td><input type="text" name="MAIL" size="20"></td>
  56. </tr>
  57. <tr>
  58. <td><a>* Pole wymagane</a></td>
  59. </tr>
  60. <tr align="center">
  61. <td colspan="4"><input type="reset" name="reset" value="Wyczyść"><input type="submit" name="OK" value="Wyślij"></td>
  62. </tr>
  63. </form>


a dostaję to:



powiedzcie co jest źle?
nospor
Zainstalowales w ogole php serwer np apache?
n3xt
Tak i jak widać na załączonym obraku jestem z tymi plikami na localhost/form/
nospor
Ale na zalaczonym obrazku nie widac czy zainstalowales PHP.... staraj czytac całe pytanie a nie tylko kawalek...
n3xt
Faktycznie nie przeczytałem całości i dobrze mnie naprowadziłeś. Nie miałem doinstalowanego jakiegoś patch'a do php5 (nawet nie pokazywał błędu) i restart apache2 i już dalej idzie. Dzięki

To jak już tak dobrze idzie, to może następny krok i ten wspomniany skrypt add.php:

  1. <?php
  2. $NAZ = $_POST['NAZ'];
  3. $NIP = $_POST['NIP'];
  4. $REG = $_POST['REG'];
  5. $SEX = $_POST['SEX'];
  6. $IMIE = $_POST['IMIE'];
  7. $NAZW = $_POST['NAZW'];
  8. $PES = $_POST['PES'];
  9. $DOK = $_POST['DOK'];
  10. $SER = $_POST['SER'];
  11. $KOD = $_POST['KOD'];
  12. $MIE = $_POST['MIE'];
  13. $ULI = $_POST['ULI'];
  14. $TEL = $_POST['TEL'];
  15. $KOD2 = $_POST['KOD2'];
  16. $MIE2 = $_POST['MIE2'];
  17. $ULI2 = $_POST['ULI2'];
  18. $NIP = $_POST['NIP'];
  19. $MAIL = $_POST['MAIL'];
  20.  
  21.  
  22.  
  23.  
  24. if($IMIE and $NAZW and $PES) {
  25. $connection = @mysql_connect('localhost', 'root', '******')
  26. or die("Brak połączenia z serwerem MySQL");
  27. $db = @mysql_select_db('klienci', $connection)
  28. or die("nie mogę połączyć się z bazą danych");
  29. $ins = @mysql_query("INSERT INTO klienci SET Id=NULL, Umowa='$UMO', Firma='$NAZ', Nip='$NIP', Regon='$REG', Plec='$SEX', Imie='$IMIE', Nazwisko='$NAZW', Pesel='$PES', Dokument='$DOK', Seria='$SER', Kodpocz='$KOD', Miasto='$MIE', Ulica='$ULI', Kodpocz2='$KOD2', Miasto2='$MIE2', Ulica2='$ULI2', Telefon='$TEL', Email='$MAIL'");
  30. if($ins) echo "Rekord został dodany poprawnie";
  31. else echo "Błąd nie udało się dodać nowego rekordu";
  32. mysql_close($connection);
  33. }
  34. ?>


Nie mam żadnego komunikatu, czy się udało czy nie.
nospor
Bo ci pewnie nie wszedl w ogole w ten warunek
if($IMIE and $NAZW and $PES) {
a to w nim dopiero cokolwiek wyswietlasz... logiczne, no nie?
n3xt
Tylko, że te dane są uzupełnione, więc warunek powinien być spełniony
nospor
Zamiast "powinien" poprostu sprawdz... sprawdz przed IFem czy dane na pewno są wypelnione. To naprawde nie boli
n3xt
Sprawdziłem warunek na 100% spełniony.
nospor
Pokaz kod jak to sprawdziles, bo jakos ci nie wierze. Bez urazy smile.gif
n3xt
dodałem samo sprawdzenie czy pola nie są puste:

  1. if ($IMIE and $NAZW and $PES) echo "dane ok";
  2. else echo "brak wymaganych wszystkich danych";


i tak jak powinno być przy uzupełnionych wskazanych polach mam komunikat "dane ok", a jak coś wykasuje "brak wyamganych..."
nospor
Wlacz wyswietlanie wszystkich bledow. Tu masz napisane jak:
Temat: Jak poprawnie zada pytanie
bo mam nieodparte wrazenie ze nie zainstalowales mysql
n3xt
Pudło!


nospor
facepalmxd.gif

Zacznij prosze wkoncu robic o co prosze. WłACZ TO WYSWIETLANIE BLEDOW. Podalem ci linka jak...
Ja nie mowilem o mysql surowym, tylko o module mysql dla php. Nawet jak masz, to WLACZ TO WYSWIETLANIE BLEDOW
n3xt
I taki mam wynik:

"Fatal error: Call to undefined function mysql_connect() in /var/www/form/add.php on line 31 "

  1. <?php
  2.  
  3. ini_set('display_errors','1');
  4.  
  5. $NAZ = $_POST['NAZ'];
  6. $NIP = $_POST['NIP'];
  7. $REG = $_POST['REG'];
  8. $SEX = $_POST['SEX'];
  9. $IMIE = $_POST['IMIE'];
  10. $NAZW = $_POST['NAZW'];
  11. $PES = $_POST['PES'];
  12. $DOK = $_POST['DOK'];
  13. $SER = $_POST['SER'];
  14. $KOD = $_POST['KOD'];
  15. $MIE = $_POST['MIE'];
  16. $ULI = $_POST['ULI'];
  17. $TEL = $_POST['TEL'];
  18. $KOD2 = $_POST['KOD2'];
  19. $MIE2 = $_POST['MIE2'];
  20. $ULI2 = $_POST['ULI2'];
  21. $NIP = $_POST['NIP'];
  22. $MAIL = $_POST['MAIL'];
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29. if($IMIE and $NAZW and $PES) {
  30. $connection = mysql_connect('localhost', 'root', '***********')
  31. or die('Brak połączenia z serwerem MySQL');
  32. $db = mysql_select_db('klienci', $connection)
  33. or die('nie mogę połączyć się z bazą danych');
  34. $ins = mysql_query("INSERT INTO umowy SET Id=NULL, Umowa='$UMO', Firma='$NAZ', Nip='$NIP', Regon='$REG', Plec='$SEX', Imie='$IMIE', Nazwisko='$NAZW', Pesel='$PES', Dokument='$DOK', Seria='$SER', Kodpocz='$KOD', Miasto='$MIE', Ulica='$ULI', Kodpocz2='$KOD2', Miasto2='$MIE2', Ulica2='$ULI2', Telefon='$TEL', Email='$MAIL'");
  35. if($ins) echo "Rekord został dodany poprawnie";
  36. else echo "Błąd nie udało się dodać nowego rekordu";
  37. mysql_close($connection);
  38. }
  39. ?>


nospor
No widzisz... a jednak strzeliłem dokładnie w sam srodek dziesiatki... Ale nie, mistrzunio musial najpierw do mnie z pudlem wyleciec zamiast zrobic to o co prosilem.... Przyszedles na forum po pomoc czy po szukanie bledow w odpowiedziach osob, chcacych ci pomoc?

Jak widac, nie masz zainstalowanego mysql w php. Tak wiec do dziela.
n3xt
przeprasza, nie chciałem urazić, tylko jestem trochę rozdrażniony i tak dołączyłem do forum w celu pozyskania pomocy od innych doświadczonych ludzi. Natomiast jeśli chodzi o modul php do mysql'a to mam i nadal nie wiem dlaczego ten błąd odwołuje się do tej linii kodu gdzie jest połączenie z bazą.
nospor
Zobacz co ci zwraca phpinfo() - ono prawdę ci powie. To po pierwsze.

A po drugie: olej funkcje z rodziny mysql_. One są już przestarzale i w kazdej chwili mogą wyleciec z php. Zainteresuje się lepiej PDO.
n3xt
Podpowiedz mi czego mam tam szukać, bo na publikację go tutaj jest zbyt długie. Na co mam szczególnie zwrócić uwagę?

nospor
na MYSQL
Jak nie znajdziesz, znaczy ze nie ma smile.gif

Ale jak pisalem. Olej mysql_. Zainteresuj sie PDO. Skoro zaczynasz dopiero zabawe z php, to zacznij ją jak nalezy.

edit: zas co do modułu php5-mysql. To oprocz jego zainstalowania, masz tez go odchaczyc w php.ini. Bez tego on się nie zaladuje
http://php.net/manual/en/mysql.installation.php
przejrzyj tez komenatarze. Tam masz to opisane
trueblue
Sprawdź czy unixowy użytkownik PHP ma dostęp do MySQL.
n3xt
Działa i zapisuje do dane do bazy danych a błąd wynikał z tego, że po wszystkich poprawkach nie zrestartowałem poprostu ponownie usług.
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.