Witam.
Mam formularz wysyłany za pomocą skryptu.php na mejla. Wszystko działało ok.
W ostatnich tygodniach coraz częściej zamiast wypełnionego formularza przychodzi formularz całkowicie pusty tj. wszystkie pola są puste a wiem od ludzi wysyłających formularz, że został wypełniony. Są tam checkobx-y i input-y.
Żeby móc wysłać formularz trzeba wypełnić wymagane pola (required) więc teoretycznie bez tego nie powinien zostać wysłany a dochodzi.
Na 8 wypełnionych prawidłowo przychodzą 2 całkiem puste.
Gdzie może leżeć tego przyczyna?
Pozdrawiam
Wszystkie przychodza puste zawsze ?
Problem dotyczy około 15-20% formularzy, które docierają do mnie na mejla. Przychodzą z pustymi polami jakby ktoś nic nie wypełnił a wysłał. Nie chodzi o to, że przychodzi pusty mejl bez niczego tylko dochodzi niewypełniony formularz typu:
Imię:
Nazwisko:
Adres:
a te poprawne są z wypełnionymi danymi adresowymi.
Nie wiem czy to możliwe, że wpisane dane giną gdzieś po drodze... Reszta formularzy dochodzi jak należy: wybrane checkbox-y zaznaczone a wymagane pola do wypełnienia (required) wypełnione prawidłowo.
Sprawdź z jakich przeglądarek są wysyłane te puste emaile.
Ale sądzę że powinieneś zweryfikować skrypt wysyłania emaila aby wykonywał się gdy formularz zawiera treści.
Pusty formularz mimo że go oskryptujesz, nadal można wysłać.
Zasadnicze pytanie - kiedy robisz walidację wprowadzonych danych? W JavaScripcie czy w PHP?
Nie mam walidacji pól Sorki, mogłem o tym wspomnieć... Jestem świadom tego, że można w te pola walnąć spacjami i wysłać: przyjdzie pusty formularz. Nawet przypuszczałem, że ktoś sobie robi żarty. Ale dziś po raz pierwszy zdałem sobie sprawę, że to nie jaja. Formularz został wypełniony, wysłany, dotarł ale niewypełniony. Nie mam kontaktu z osobą od której przyszedł ani z innymi nadawcami tych "pustych formularzy". Nie jestem w stanie sprawdzić z jakiej przeglądarki przychodzą formularze. Próbuję to wyjaśnić z Waszą pomocą.
Czy to wg. Waszej wiedzy jest teoretycznie możliwe, że problemem może być konkretna przeglądarka, wysyłanie z mobila itp. sprawy?
Wysyłam z firefoxa, opery, chrome'a: wszystko dochodzi.
Nie sądzę by to była wina przeglądarki jakkolwiek. Tylko i wyłącznie walidacja po stronie PHP - dopiero jak ją wdrożysz to możesz mieć pewność, że zrobiłeś wszystko by formularza działał poprawnie i dopiero w tedy, gdy nadal będą dochodziły puste wiadomości, zastanawiać się co jest nie tak.
Będzie off top ale czy pomoże ktoś z modyfikacją skryptu? Mam rozumieć, że grzebać muszę tylko w pliku skryptu czy w pliku html też coś trzeba pozmieniać? Nie chcę szaleć, chciałbym aby sprawdzało poprawność wypełnienia tylko dwóch pól: imię i kod. Jak to zadziała to będę wiedział, że formularz przychodzi pusty z innego powodu i nie jest nim "spacjowanie" pól dla żartu.
W html mam pola input:
name="imię"
name="kod"
Mój skrypt.php wygląda tak:
<?php
$do = 'mojmejl@pocztaxxxxxxx.pl';
$imię = $_POST['imię'];
$ulica = $_POST['ulica'];
$kod = $_POST['kod'];
$miejscowosc = $_POST['miejscowosc'];
$telefon = $_POST['telefon'];
$k01 = $_POST['01'];
$k02 = $_POST['02'];
$k03 = $_POST['03'];
$k04 = $_POST['04'];
$k05 = $_POST['05'];
$tresc .= "Imię:".$imię."\n\n";
$tresc .= "Ulica: ".$ulica."\n\n";
$tresc .= "Kod: ".$kod."\n\n";
$tresc .= "Miejscowość: ".$miejscowosc."\n\n";
$tresc .= "Telefon: ".$telefon."\n\n";
$tresc .= "biały: ".$k01."\n\n";
$tresc .= "czarny: ".$k02."\n\n";
$tresc .= "niebieski: ".$k03."\n\n";
$tresc .= "zielony: ".$k04."\n\n";
$tresc .= "czerwony: ".$k05."\n\n";
@mail($do, 'ankieta', $tresc, "MIME-Version: 1.0\r\n"."Content-type: text/plain; charset=ISO-8859-2\r\n"."From: $mail\r\n");
header('Location: http://www.mojastrona.pl/dziekuję.html'%3b%29;
echo $tresc;
?>
http://forum.php.pl/index.php?showtopic=117334 coś znalazłem ale nie mam pojęcia gdzie to powklejać i czy to w ogóle jest poprawne. Chodzi tylko o imię i kod i aby sprawdzało czy zamiast imienia i kodu ktoś nie klepnął kilka razy spacji:
function poprawneImie($imię)
{
if (!preg_match('/^[a-z]$/', $imię))
{
return false; //zwraca "false" jeśli imię jest błędne
}
return true; //zwraca "true" jeśli imię jest poprawne
}
function poprawnyKod($kod)
{
if (!preg_match('/^[0-9]{2}+-[0-9]{3}$/', $kod))
{
return false;
}
return true;
}
//czy puste:
if(empty($_POST['imię']))
{
echo "Wypełnij pole imię";
}
if(empty($_POST['kod']))
{
echo "Wypełnij pole kod";
}
if(!poprawneImie($_POST['imię']))
{
echo "Błędne imię";
}
if(!poprawnyKod($_POST['kod']))
{
echo "Błędny kod";
}
Z góry dzięki.
Mozesz sprawdzac kazde pole warunkami poprzez:
if( ($zmienna1 =! "") || ($zmienna2 =! "") || ($zmienna3 =! "") ) { }
<?php if(!http://www.php.net/isset($_POST['submit'])) { http://www.php.net/echo "<form action " . $_SERVER['SCRIPT_NAME'] . " method=post>"; http://www.php.net/echo "<input type=\"text\" name=\"pole1\"><br>"; http://www.php.net/echo "<input type=\"text\" name=\"pole2\"><br>"; http://www.php.net/echo "<input type=\"text\" name=\"pole3\"><br>"; http://www.php.net/echo "<input type=\"text\" name=\"pole4\"><br>"; http://www.php.net/echo "<input type=\"submit\" name=\"submit\" value=\"dalej\"><br>"; } else { http://www.php.net/unset($submit); $myPostArgs = filter_input_array(INPUT_POST); foreach($myPostArgs as $key => $value) { if(http://www.php.net/trim($value) == "") { http://www.php.net/exit('wypelnij wszystkie pola'); } } } ?>
<?php if(!http://www.php.net/isset($_POST['submit'])) { http://www.php.net/echo "<form action " . $_SERVER['SCRIPT_NAME'] . " method=post>"; http://www.php.net/echo "<input type=\"text\" name=\"login\"><br>"; http://www.php.net/echo "<input type=\"text\" name=\"haslo\"><br>"; http://www.php.net/echo "<input type=\"text\" name=\"plec\"><br>"; http://www.php.net/echo "<input type=\"text\" name=\"wiek\"><br>"; http://www.php.net/echo "<input type=\"submit\" name=\"submit\" value=\"dalej\"><br>"; http://www.php.net/exit; } $ArrInfo = http://www.php.net/array('login' => 'Wypelnij pole login', 'haslo' => 'Wypelnij pole haslo', 'plec' => 'Wypelnij pole plec', 'wiek' => 'Wypelnij pole wiek' ); http://www.php.net/unset($submit); $myPostArgs = filter_input_array(INPUT_POST); $return = http://www.php.net/array(); foreach($myPostArgs as $key => $value) { if(http://www.php.net/trim($value) == "") { $return[] = $ArrInfo[$key]; $match = true; } } if(http://www.php.net/isset($match)) { http://www.php.net/print 'Znaleziono błędy: <br>'; for($i=0; $i<count($return); $i++) { http://www.php.net/print ($return[$i] . '<br>'); } http://www.php.net/exit; } http://www.php.net/print 'Tutaj reszta kodu jak pola zostaly wypelnione'; ?>
<?php if(!http://www.php.net/isset($_POST['submit'])) { http://www.php.net/exit('wystąpił błąd'); } $ArrInfo = http://www.php.net/array('login' => 'Wypelnij pole: login', 'haslo' => 'Wypelnij pole: haslo', 'plec' => 'Wypelnij pole: plec', 'wiek' => 'Wypelnij pole: wiek' ); http://www.php.net/unset($submit); $myPostArgs = filter_input_array(INPUT_POST); $return = http://www.php.net/array(); foreach($myPostArgs as $key => $value) { if(http://www.php.net/trim($value) == "") { $return = $ArrInfo[$key]; $match = true; } } if(http://www.php.net/isset($match)) { http://www.php.net/print 'Znaleziono błędy: <br>'; for($i=0; $i<count($return); $i++) { http://www.php.net/print ($return[$i] . '<br>'); } http://www.php.net/exit; } http://www.php.net/print 'Tutaj reszta kodu jak pola zostaly wypelnione'; ?>
if(!http://www.php.net/isset($_POST['submit']))
Dzięki za propozycję. Ta cała walidacja trochę mnie przerasta i wolałem dotąd jej nie tykać skoro wsio działało (i w sumie działa dalej) jak należy. Ale jak trzeba... A czy to co zaproponowałeś Dublinka zabezpieczy przed wysłaniem formularza z polami "wypełnionymi" spacjami lub innymi głupotami? Stąd zainteresowałem się tymi wzorcami wyrażeń regularnych. Nie chcę się porywać z motyką na słońce, krok po kroku.
Na początek chciałem aby przy próbie wysłania za cholerę nie przepuściło formularza pustego. No to mam required przy inputach. Ale dooopa bo można pola wyspacjować i formularz pójdzie i tu przydałoby się zastosować jakieś wyrażenie regularne, choćby tylko przy kodzie pocztowym typu: pattern="^[0-9]{2}-[0-9]{3}$" https://itporady.pl/html-css/jak-sprawdzic-poprawnosc-kodu-pocztowego/.
Mam nadzieję, że tylko to wystarczy aby nie dało się wysłać formularza z wpisanymi głupotami. Przy imionach, nazwiskach, miejscowościach jest tyle opcji, że głowa mała - nie chcę atakować wypełniającego formularz dziesiątkami alertów. Dlatego wystarczyłoby samo zabezpieczenie na kod. To nie ma być jakiś kosmos z zabezpieczeniami tylko próba dowiedzenia się z czego wynika poruszony na początku wątku problem.
$submit = @$_POST['submit']; if(!http://www.php.net/isset($submit))
if(!http://www.php.net/isset($_POST['submit']))
$submit = @$_POST['submit']; if(!http://www.php.net/isset($submit))
Dajcie spokój. Po cholerę te przepychanki i dogryzanie sobie? Szkoda nerwów na głupoty.
Mały update. Coś się ruszyło bo wpisałem w pliku html to: pattern="^[0-9]{2}-[0-9]{3}$" i mam teraz:
<input required="" name="kod" pattern="^[0-9]{2}-[0-9]{3}$"
Przy wypełnianiu nie pozwala przejść dalej ani wysłać formularza
@maniana juz ci pisalem ze takie zabepzieczenia sa o kant 4 liter. Kazdy moze je ominac. Zabezpieczenie masz miec przedewszystkim po stronie php
@dublinka akurat te parametry nie sa obslugiwane przez js wiec wylaczenie JS nie wplynie na ich zachowanie. Nie mniej jednak jak juz mowilem mozna je bez problemu ominac/usunac. Mozna tez wyslac formularz bez przegladarki
To co masz czyli:
$do = 'mojmejl@pocztaxxxxxxx.pl'; $imię = $_POST['imię']; $ulica = $_POST['ulica']; $kod = $_POST['kod']; $miejscowosc = $_POST['miejscowosc']; $telefon = $_POST['telefon']; $k01 = $_POST['01']; $k02 = $_POST['02']; $k03 = $_POST['03']; $k04 = $_POST['04']; $k05 = $_POST['05']; $tresc .= "Imię:".$imię."\n\n"; $tresc .= "Ulica: ".$ulica."\n\n"; $tresc .= "Kod: ".$kod."\n\n"; $tresc .= "Miejscowość: ".$miejscowosc."\n\n"; $tresc .= "Telefon: ".$telefon."\n\n"; $tresc .= "biały: ".$k01."\n\n"; $tresc .= "czarny: ".$k02."\n\n"; $tresc .= "niebieski: ".$k03."\n\n"; $tresc .= "zielony: ".$k04."\n\n"; $tresc .= "czerwony: ".$k05."\n\n"; @http://www.php.net/mail($do, 'ankieta', $tresc, "MIME-Version: 1.0\r\n"."Content-type: text/plain; charset=ISO-8859-2\r\n"."From: $mail\r\n"); http://www.php.net/header('Location: [url="http://www.mojastrona.pl/dziekuję.html'%3b%29;"]http://www.mojastrona.pl/dziekuję.html');[/url] http://www.php.net/echo $tresc;
if(!http://www.php.net/isset($_POST['submit'])) { http://www.php.net/exit('wystąpił błąd'); } $ArrInfo = http://www.php.net/array('login' => 'Wypelnij pole: login', 'haslo' => 'Wypelnij pole: haslo', 'plec' => 'Wypelnij pole: plec', 'wiek' => 'Wypelnij pole: wiek' ); http://www.php.net/unset($submit); $myPostArgs = filter_input_array(INPUT_POST); $return = http://www.php.net/array(); foreach($myPostArgs as $ParamsKey => $ParamsValue) { if(http://www.php.net/trim($ParamsValue) == "") { $return[] = $ArrInfo[$ParamsKey]; $match = true; } } if(http://www.php.net/isset($match)) { http://www.php.net/print 'Znaleziono błędy: <br>'; for($i=0; $i<count($return); $i++) { http://www.php.net/print ($return[$i] . '<br>'); } http://www.php.net/exit; } // teraz tu co Ty masz tylko pamietaj ze musisz pododawac do tablicy wartosci jakie masz czyli nazwa pola z formularza i wartosc jaka sie wyswietli jesli błąd. Rowniez nazwij swoj input name=submit
$ArrInfo = http://www.php.net/array('login' => 'Wypelnij pole: login', 'haslo' => 'Wypelnij pole: haslo', 'plec' => 'Wypelnij pole: plec', 'wiek' => 'Wypelnij pole: wiek' );
O Jezusiczku... racja, przecinek
A i jeszcze muszę zmienić w html przy każdym inpucie ("Rowniez nazwij swoj input name=submit") to:
Czyli z:
<small>imię
</small></td>
<td style="vertical-align: top;"><input
required="" name="imie"
na taką wersję:
<small>imię
</small></td>
<td style="vertical-align: top;"><input
required="" name=submit "imie"
Czy tak? Zaraz to odpalę.
<input type="submit" name="submit" value="dalej">
Odnośnie buttona WYŚLIJ to mam w htmlu coś takiego:
<button name="wysylam"><b>WYSLIJ</b>
</button> </div>
Jak to pozmieniać?
<input type="submit" name="submit" value="dalej">
<button type="submit" name="submit" value="byleco">Dalej</button>
Działa piknie! Trzeba było z pracy w końcu wyjść W domu naniosłem poprawki, kilka wrzutów na ftp-a, poprawek i w końcu śmiga. Dzięki jeszcze raz za pomoc.
Trochę chamska ta strona z komunikatami o niewypełnionych polach co się pokazuje po kliku w submit-a. Cała biała jak śmierć i tylko:
Znaleziono błędy:
Wypełnij pole: imię
Wypełnij pole: miejscowość
No ale ważne, że działa.
Aha, zapomniałem: niby działa ale nadal można walnąć w pola głupoty typu: ... .. lub . . "Spacjowanie" faktycznie wyrugowane.
No ale przynajmniej będę wiedzieć, że TAJEMNICZE COŚ nie czyści mi wypełnionych pól po drodze bo coś w tych polach musi przyjść.
W kodzie pocztowym zostawiłem: pattern="^[0-9]{2}-[0-9]{3}$" to tam bzdety nie przejdą, przynajmniej tak mi się wydaje.
if(http://www.php.net/isset($match)) { http://www.php.net/print "<body style=\"background-color: lightblue\"><div style=\"background-color: darkblue; color:white; padding: 10px\">"; http://www.php.net/print 'Znaleziono błędy: <br>'; for($i=0; $i<count($returnNames); $i++) { http://www.php.net/print ("<b>" . $returnNames[$i] . '</b><br>'); } http://www.php.net/print "<a style=\"color: gold\" href=java script:history.go(-1)>Wstecz</a></div></body>"; // forum dzieli string javascript na dwa czlony. Polacz to w jedno http://www.php.net/exit; }
$email = "jakis_email@costam..pl"; // bledny adres z dwoma kropkami if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { http://www.php.net/exit('Błędny adres email'); } http://www.php.net/print 'dalsza czesc strony do ew. filtrowania'; // tua jdajesz kod ktory ma sie dalej wykonywac
A jest jakiś sposób na umieszczenie na tej "stronie z błędami w formularzu" jakiegoś linku/buttona typu Powróć lub Popraw. Tak sobie testuję i nawet backspace nie wraca w operze i chrome. Tylko klik w < w menu przeglądarki działa. Pewnie znowu od cholery zabawy o ile to w ogóle możliwe. Ale wolę zapytać.
<?php $co = "login---"; if(http://www.php.net/preg_match('/[^0-9a-z]/i',$co)) { http://www.php.net/exit('Wystepuja nieprawidlowe znaki'); } http://www.php.net/print 'Dalsza czesc strony jesli ok'; ?>
<?php $co = "logi99._-"; if(!http://www.php.net/preg_match("/^[a-z0-9_.]{6,15}$/", $co)) { http://www.php.net/exit('Wystepuja nieprawidlowe znaki. Minimalna liczba znakow to 6 a max to 15'); } http://www.php.net/print 'Dalsza czesc strony jesli ok'; ?>
Dzięki. Wezmę się za to ale nie dziś.
Wracając do "przycisku/odnośnika WSTECZ (w moim przypadku to będzie odnośnik POPRAW POLA) na stronie z błędami zrobiłem na szybko wg. Twoich rad. Dodałem:
print "<a style=\"color: green\" href=java script:history.go(-1)><mark>POPRAW POLA</mark></a></div></body>";
na końcu. Jest ok poza tym, że po kliku w ten link wywala błąd:
Not Found
The requested URL /ankieta/java was not found on this server.
www.mojastronaxxxxxxxx.pl
Robi się off top ale chyba nie ma co tworzyć nowego wątku. Co z ta javą na moim serwerze?
Ty chyba nie czytasz tego co sie pisze.
Dalem komentarz do tego linku. Skrypt forum dzieli wyraz javascript na dwa. Wez to polacz w jeden i bedzie git.
Dlaczego wynikiem jest tylko 'java' ? Ano dlatego ze jesli sie nie obejmie apostrofami url (w tym przypadku tag 'a') a występuje w ciagu spacja wtedy bedzie odczytany pierwszy ciąg przed spacją. Ale to juz tak gwoli scislosci. Akurat to nie ma znaczenia w tym przykladzie. Skrypt forum dzieli niektore wyrazy poprostu. Trzeba je polączyc.
<?php $co = "login---"; if(http://www.php.net/preg_match('/[^0-9a-z]/i',$co)) { http://www.php.net/exit('Wystepuja nieprawidlowe znaki'); } http://www.php.net/print 'Dalsza czesc strony jesli ok'; ?>
<?php $co = "logi99._-"; if(!http://www.php.net/preg_match("/^[a-z0-9_.]{6,15}$/", $co)) { http://www.php.net/exit('Wystepuja nieprawidlowe znaki. Minimalna liczba znakow to 6 a max to 15'); } http://www.php.net/print 'Dalsza czesc strony jesli ok'; ?>
Pokaz aktualny kod.
Byloby rowniez BARDZO milo jakbys raczyl uzywac BBCODE dla wstawianego kodu
<?php if(!http://www.php.net/isset($_POST['submit'])) { http://www.php.net/exit('wystąpił błąd'); } $ArrInfo = http://www.php.net/array('imie' => 'Wypełnij pole: imię', 'ulica' => 'Wypełnij pole: ulica', 'kod' => 'Wypełnij pole: kod', 'miejscowosc' => 'Wypełnij pole: miejscowość', ); http://www.php.net/unset($submit); $myPostArgs = filter_input_array(INPUT_POST); $returnNames = http://www.php.net/array(); foreach($myPostArgs as $ParamsKey => $ParamsValue) { if(http://www.php.net/trim($ParamsValue) == "") { $return[] = $ArrInfo[$ParamsKey]; $match = true; } } if(http://www.php.net/isset($match)) { http://www.php.net/print 'Znaleziono błędy: <br>'; for($i=0; $i<count($return); $i++) { http://www.php.net/print ($return[$i] . '<br>'); } http://www.php.net/print "<a style=\"color: green\" href=java script:history.go(-1)><mark>POPRAW</mark></a></div></body>"; http://www.php.net/exit; } $do = 'mojmejl@pocztaxxx.pl'; $imie = $_POST['imie']; $ulica = $_POST['ulica']; $kod = $_POST['kod']; $miejscowosc = $_POST['miejscowosc']; $telefon = $_POST['telefon']; $k01 = $_POST['k01']; $k02 = $_POST['k02']; $k03 = $_POST['k03']; $k04 = $_POST['k04']; $k05 = $_POST['k05']; $tresc .= "Imię:".$imie."\n\n"; $tresc .= "Ulica: ".$ulica."\n\n"; $tresc .= "Kod: ".$kod."\n\n"; $tresc .= "Miejscowość: ".$miejscowosc."\n\n"; $tresc .= "Telefon: ".$telefon."\n\n"; $tresc .= "biały: ".$k01."\n\n"; $tresc .= "czarny: ".$k02."\n\n"; $tresc .= "niebieski: ".$k03."\n\n"; $tresc .= "zielony: ".$k04."\n\n"; $tresc .= "czerwony: ".$k05."\n\n"; @http://www.php.net/mail($do, 'ankieta', $tresc, "MIME-Version: 1.0\r\n"."Content-type: text/plain; charset=ISO-8859-2\r\n"."From: $mail\r\n"); http://www.php.net/header('Location: [url="http://mojastronawww/Dziekuję.html'%3b%29;"]http://mojastronawww/Dziekuję.html');[/url] http://www.php.net/echo $tresc; ?>
1) w kodzie nadal masz telefon w tablicy wiec nie oczekuje ze zniknie
2) Twoj kod
foreach($myPostArgs as $ParamsKey => $ParamsValue) { if(http://www.php.net/trim($ParamsValue) == "") { $return[] = $ArrInfo[$ParamsKey]; $match = true; } }
foreach($myPostArgs as $ParamsKey => $ParamsValue) { if(http://www.php.net/isset($ArrInfo[$ParamsKey]) && http://www.php.net/trim($ParamsValue) == "") { $return[] = $ArrInfo[$ParamsKey]; $match = true; } }
Zapomniałem usunąć telefon, sorki. Jasne, że go tam teraz nie ma w kodzie skryptu.
Zaraz pozmieniam to co podałeś.
Kurka wodna! Działa. Dzięki!
Co do estetyki kodu pliku php to wiem, jest jaki jest... Ale nie wnikam póki działa bo zaraz coś się wykrzaczy i będzie płacz...
To teraz nie pozostaje mi nic tylko podziękować wszystkim i zobaczymy czy w przyszłości przyjdą na skrzynkę jeszcze jakieś niewypełnione formularze. Oby nie!
Tak, zostaje kwestia filtrowania pól, o której kilka wpisów tu jest ale to nie jest teraz najpilniejsza sprawa. Wiesz co było priorytetem a filtrowanie inputów wyszło przy okazji. To delikatna sprawa: tyle wyjątków i różnych kombinacji przy każdym polu, nie wspominając, że ludzie często walą w form-ie wszystko jak leci z małej litery (co dla mnie nie jest żadnym problemem). Niech mają luz. Jak 1 na 100 będzie chciał wpisać bzdety nie widzę problemu - niech sobie ulży, jego sprawa.
$co = "logini77"; if(!http://www.php.net/preg_match('/^[a-z0-9]+$/', $co)) { http://www.php.net/print 'blad'; } else { http://www.php.net/print 'ok'; }
Dodam, że złapałem kontakt z gościem, który jakiś czas temu na 100% poprawnie wypełnił i wysłał formularz a ten przyszedł niewypełniony: pozaznaczał chexboxy a trochę ich było (nie sugerujcie się kodami php, które podaję z kilkoma kolorami do wyboru bo to jest na użytek testów) wpisał swoje namiary i wysłał. Zgadza się dzień i godzina. Napisał, że u niego nie było żadnych problemów. Wysłał i był pewien, że wsio poszło ok. Komp stacjonarny, windows, przeglądarki nie podał choć pytałem, mniejsza z tym. Moja poczta jest na interii.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)