Problem z wysyłaniem danych z formularza


(timeo) #1

Wysyłam dane z formularza, ale podczas wysyłania nie pokazuje mi się żadny komunikat, że zostało coś wysłane. Szukałem już wszystkiego i nie wiem jak z tym zadziałać. Poniżej przedstawiam kod strony tzw send.php

<?php


								 if (!$nimie || !$nemail)


 {

	print "Nie zostały wypełnione wszystkie pola";


 }

// odbieramy dane z formularza

$nimie = $_POST['nimie'];

$nulica = $_POST['nulica'];

$nkod = $_POST['nkod'];

$nmiasto = $_POST['nmiasto'];

$nkraj = $_POST['nkraj'];

$ntel = $_POST['ntel'];

$nemail = $_POST['nemail'];

$ndata = $_POST['ndata'];

$oimie = $_POST['oimie'];

$oulica = $_POST['oulica'];

$okod = $_POST['okod'];

$omiasto = $_POST['omiasto'];

$okraj = $_POST['okraj'];

$otel = $_POST['ntel'];

$oemail = $_POST['oemail'];

$fimie = $_POST['fimie'];

$fulica = $_POST['fulica'];

$fkod = $_POST['fkod'];

$fmiasto = $_POST['fmiasto'];

$fnip = $_POST['fnip'];




if($nimie and $nulica and $nkod and $nmiasto and $nkraj and $ntel and $nemail and $ndata and $oimie and $oulica and $okod and $omiasto and $okraj and $otel and $oemail and $fimie and $fulica and $fkod and $fmiasto and $fnip) {


    // łączymy się z bazą danych

    $connection = @mysql_connect('localhost', 'root', '')

    or die('Brak połączenia z serwerem MySQL');

    $db = @mysql_select_db('zamowienie', $connection)

    or die('Nie mogę połączyć się z bazą danych');


    // dodajemy rekord do bazy

    $ins = @mysql_query("INSERT INTO zam SET id='', nimie = '$nimie', nulica = '$nulica', nkod = '$nkod', nmiasto = '$nmiasto', nkraj = '$nkraj', ntel = '$ntel', nemail = '$nemail', ndata = '$ndata', oimie = '$oimie', oulica = '$oulica', okod = '$okod', omiasto = '$omiasto', okraj = '$okraj', otel = '$ntel', oemail = '$oemail', fimie = '$fimie', fulica = '$fulica', fkod = '$fkod', fmiasto = '$fmiasto', fnip = '$fnip', ");



// ID dodanego rekordu    

$id = mysql_insert_id();


if($ins) echo "Twoje zamówienie zostało zapisane pod numerem ".$id." 
 Dziękujemy za skorzystanie z naszych usług.";

else echo "Nastąpił nieoczekiwany błąd. Skontaktuj się z administracją za pomocą formularza."; 


    mysql_close($connection);

}


?>

Dodam jeszcze, że po wysłaniu formularza z pliku nr 1 do pliku nr 2, gdzie jest wykonywanie całej akcji na monitorze nic mi się nie pokazuje, a do bazy nic nie jest do pisane. Gdzie robię błąd? Jakiegoś znaku mi brakuje? Czy może jakaś inna pomyłka?


(wojsmol) #2

Witam

Podaj jeszcze kod formularza.

Pozdrawiam


(kostek135) #3

Hmm masz włączoną obsługę błędów bo na bank tu masz błąd

$ins = @mysql_query("INSERT INTO zam SET id='', nimie = '$nimie',

W ten sposób dodajesz puste ID, a zapewne w polu masz ustawione auto increment, po prostu pomiń ten element.http://www.w3schools.com/sql/sql_insert.asp poza tym proponuje zapoznać się ze składnią… EDIT poza tym całość zawiera jeszcze błędy logiczne ogólnie jakaś rzeź… np sprawdzasz warunki które nie stanowią dopełnienia zbiorów logicznych, a co za tym idzie można podjąć akcje, których ten formularz nie przewidzi najzupełniej. Przykładowo

if (!$nimie || !$nemail)

{

   print "Nie zostały wypełnione wszystkie pola";

}

if($nimie and $nulica and $nkod and $nmiasto and $nkraj and $ntel and $nemail and $ndata and $oimie and $oulica and $okod and $omiasto and $okraj and $otel and $oemail and $fimie and $fulica and $fkod and $fmiasto and $fnip) {

Poniższe nigdy nie będzie spełnione ($nimie przypisana jest po jej wystąpieniu), to znaczy dopóki nie będzie zmiennych globalnych, ale wtedy bez sensu jest przypisywanie…

if (!$nimie || !$nemail)

{

   print "Nie zostały wypełnione wszystkie pola";

}

// odbieramy dane z formularza

$nimie = $_POST['nimie'];

(Monczkin) #4

timeo , nazwij proszę temat konkretnie, bez zbędnych problemów w nazwie. Inaczej wyciągnę konsekwencje. Przeczytaj proszę ten temat viewtopic.php?f=16&t=394978