Piotr Rezler

Piotr Rezler Art, DTP,
Interactive

Temat: PHP Mail form - pilna prośba o pomoc

Witam,

Mam problem z formularzem, który musi być gotowy na dzisiaj. Byłbym wdzięczny za pomoc. Kwestia następująca - nie działa ;)

A oto kod:

<?php
if (empty($_POST['submit'])) {
echo "
<div style=\"width:400px; background-color:#000000; border-color:#FFCC00; border-style:solid; border-width:thin; text-align:right; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\">
<form action=\"zgloszenie.php\" method=\"post\">

<div style=\"background-color:#000000; width:300px; border-style:none; text-align:right; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\"><br />
imię: <input type=\"text\" name=\"f1\" style=\"border-color:#ff9900\"><br />
nazwisko: <input type=\"text\" name=\"f2\" style=\"border-color:#ff9900\"><br />
kierowca: <input type=\"text\" name=\"f3\" style=\"border-color:#ff9900\"><br />
pilot: <input type=\"text\" name=\"f4\" style=\"border-color:#ff9900\"><br />
liczba osób towarzyszących: <input type=\"text\" name=\"f5\" lenght=\"3\" style=\"width:20px; border-color:#ff9900\"><br />
</div>
<div style=\"background-color:#000000; border-style:none; text-align:center; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\">
Wybrany samochód:<br />
Toyota Land Cruiser <input type=\"radio\" name=\"f6\" value=\"land_cruiser\">   <input type=\"radio\" name=\"f6\" value=\"hilux\">Toyota Hilux<br />
<input type=\"reset\"><input type=\"submit\" value=\"Wyślij\">
</div>
<br />
</form>
</div>";
}

elseif (!empty($_POST['f1']) && !empty($_POST['f2']) && !empty($_POST['f3']) && !empty($_POST['f4']) && !empty($_POST['f5']) && !empty($_POST['f6'])) {
$count=fopen('counter.txt','r');
$digit=fread($count,10);
if ($digit = "50")
{
echo "<div style=\"width:300px; background-color:#000000; border-color:#FFCC00; border-style:solid; border-width:thin; text-align:center; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\"><br />Została osiągnięta dopuszczalna ilość zgłoszeń. Przepraszamy.<br /></div>";
fclose($count);
}
else
$counter=fopen('counter.txt','w');
$new_digit= $digit + "1";
fwrite($counter,$new_digit);
fclose($counter);
$message = "Imie:\n$_POST[f1]\nNazwisko: $_POST[f2]\nkierowca: $_POST[f3]\npilot: $_POST[f4]\nosoby tow.: $_POST[f5]\nsamochod: $_POST[f6]";
$header = "From: Formularz www";
@mail("desmuldes4x4@gmail.com","Zgloszenie ze strony WWW","$message","$header")
or die('Nie udało się wysłać wiadomości!');
echo "<div style=\"width:300px; background-color:#000000; border-color:#FFCC00; border-style:solid; border-width:thin; text-align:center; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\"><br />Zgłoszenie zostało wysłane poprawnie!<br /></div>";
}
else echo "<span style=\"text-align:center; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\">Wypełnij wszystkie pola formularza!</span><br /><br />
<div style=\"width:400px; background-color:#000000; border-color:#FFCC00; border-style:solid; border-width:thin; text-align:right; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\">
<form action=\"zgloszenie.php\" method=\"post\">

<div style=\"background-color:#000000; width:300px; border-style:none; text-align:right; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\"><br />
imię: <input type=\"text\" name=\"f1\" style=\"border-color:#ff9900\"><br />
nazwisko: <input type=\"text\" name=\"f2\" style=\"border-color:#ff9900\"><br />
kierowca: <input type=\"text\" name=\"f3\" style=\"border-color:#ff9900\"><br />
pilot: <input type=\"text\" name=\"f4\" style=\"border-color:#ff9900\"><br />
liczba osób towarzyszących: <input type=\"text\" name=\"f5\" lenght=\"3\" style=\"width:20px; border-color:#ff9900\"><br />
</div>
<div style=\"background-color:#000000; border-style:none; text-align:center; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\">
Wybrany samochód:<br />
Toyota Land Cruiser <input type=\"radio\" name=\"f6\" value=\"land_cruiser\">   <input type=\"radio\" name=\"f6\" value=\"hilux\">Toyota Hilux<br />
<input type=\"reset\"><input type=\"submit\" value=\"Wyślij\">
</div>
<br />
</form>
</div>";

?>

Jakby ktoś był w stanie wykryć błąd, byłby niezmiernie wdzięczny. Tak to bywa, kiedy ktoś się podejmie czegoś, na czym się jednak "nie do końca" zna.

Z góry dzięki wielkie i pozdrawiam,
Piotr.

konto usunięte

Temat: PHP Mail form - pilna prośba o pomoc

Może skorzystaj z jakiegoś generatora?

konto usunięte

Temat: PHP Mail form - pilna prośba o pomoc

rzuciło mi się w oczy:
if (empty($_POST['submit']))

nie masz takiego pola na formularzu, daj niżej tak:
<input type=\"submit\" value=\"Wyślij\" name=\"submit\">


tak w ogóle stwierdzenie "nie działa" mało mówi.. ;)

Temat: PHP Mail form - pilna prośba o pomoc

http://www.ibdhost.com/contact/

konto usunięte

Temat: PHP Mail form - pilna prośba o pomoc

<input type=\"submit\" value=\"Wyślij\">
Powinieneś mieć name='submit' jeszcze - bo sprawdzasz taką zmienną przychodzącą z POST'a:
<input type=\"submit\" name=\"submit\" value=\"Wyślij\">
if ($digit = "50")
A tutaj powinien być operator porównania '==', nie przyrównania :)
czyli: if($digit == "50")

Odpaliłem, działa :)

Plik counter.txt stwórz jeszcze i daj mu prawa do pisania po nim.

Temat: PHP Mail form - pilna prośba o pomoc

1. ustaw pliki na ścieżkę absolutną:
dirname(__FILE__).'/nazwapliku.php';

2. dodaj pole nadawcy

3. Pola z POST odczytuj jako (int)$POST['f1']

4. Dodaj uszy ['f1'] zamiast [f1]

5. Klamruj zmienne w tekście
$tekst = "tekst{$POST['f1']} innytext";

6. Pobieraj ip żeby potem wiedzieć którego spammera blokować
6a) Dodaj CAPTCHA

7. Wyciągnij style do zewnętrznego pliku CSS

i będzie prawie elegancko :)

konto usunięte

Temat: PHP Mail form - pilna prośba o pomoc

Łukasz Rylik:
1. ustaw pliki na ścieżkę absolutną:
dirname(__FILE__).'/nazwapliku.php';

2. dodaj pole nadawcy

3. Pola z POST odczytuj jako (int)$POST['f1']

4. Dodaj uszy ['f1'] zamiast [f1]

5. Klamruj zmienne w tekście
$tekst = "tekst{$POST['f1']} innytext";

6. Pobieraj ip żeby potem wiedzieć którego spammera blokować
6a) Dodaj CAPTCHA

7. Wyciągnij style do zewnętrznego pliku CSS

i będzie prawie elegancko :)

Szaleństwo ;)

Temat: PHP Mail form - pilna prośba o pomoc

Nie-e :)

Wywalenie walidacji i wysyłki do osobnego pliku + obsługa smtp to będzie poprawnie.

Szaleństwo to będzie ajaxowe sprawdzanie dostępności samochodu :P

konto usunięte

Temat: PHP Mail form - pilna prośba o pomoc

Łukasz Rylik:
Nie-e :)

Wywalenie walidacji i wysyłki do osobnego pliku + obsługa smtp to będzie poprawnie.

Szaleństwo to będzie ajaxowe sprawdzanie dostępności samochodu :P

No będzie.. bez obsługi SMTP się obejdzie, tak też jest poprawnie, jeśli tylko sendmail jest skonfigurowany i hula bez problemu.

Co do reszty, to nie ma co robić kombajnu z prostego formularza. Potrzebna jest igła - nie snopowiązałka :)

konto usunięte

Temat: PHP Mail form - pilna prośba o pomoc

Łukasz Rylik:
5. Klamruj zmienne w tekście
$tekst = "tekst{$POST['f1']} innytext";

A w jakim celu służy klamrowanie?
Piotr Rezler

Piotr Rezler Art, DTP,
Interactive

Temat: PHP Mail form - pilna prośba o pomoc

Dzięki wam wszystkim za pomoc... Niestety skrypt dalej nie działa. Po "wysłaniu" (wciśnięciu submit) ani nie wysyła, ani nie wyrzuca komunikatu o wysłaniu (pojawia się świeży pusty formularz).
Michał Stachura

Michał Stachura Dedykowane serwisy i
strony www -
http://santri.eu

Temat: PHP Mail form - pilna prośba o pomoc

Zamień:
@mail("desmuldes4x4@gmail.com","Zgloszenie ze strony WWW","$message","$header")

na:
mail("desmuldes4x4@gmail.com","Zgloszenie ze strony WWW","$message","$header")

Może chociaż jakiś błąd pokaże.
Daj tez print_r($_POST); może jakiejś zmiennej brakuje bo od tego uzależniasz zapis i wysyłkę.

Odpalasz to lokalnie czy na jakimś serwerze?

konto usunięte

Temat: PHP Mail form - pilna prośba o pomoc

Sprobuj tak


<?php

if (empty($_POST['submit'])) {
echo "
<div style=\"width:400px; background-color:#000000; border-color:#FFCC00; border-style:solid; border-width:thin; text-align:right; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\">
<form action=\"zgloszenie.php\" method=\"post\">
<div style=\"background-color:#000000; width:300px; border-style:none; text-align:right; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\"><br />
imie: <input type=\"text\" name=\"f1\" style=\"border-color:#ff9900\"><br />
nazwisko: <input type=\"text\" name=\"f2\" style=\"border-color:#ff9900\"><br />
kierowca: <input type=\"text\" name=\"f3\" style=\"border-color:#ff9900\"><br />
pilot: <input type=\"text\" name=\"f4\" style=\"border-color:#ff9900\"><br />
liczba osób towarzyszacych: <input type=\"text\" name=\"f5\" lenght=\"3\" style=\"width:20px; border-color:#ff9900\"><br />
</div>
<div style=\"background-color:#000000; border-style:none; text-align:center; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\">
Wybrany samochód:<br />
Toyota Land Cruiser <input type=\"radio\" name=\"f6\" value=\"land_cruiser\"> <input type=\"radio\" name=\"f6\" value=\"hilux\">Toyota Hilux<br />
<input type=\"reset\"><input type=\"submit\" value=\"Wyslij\" name=\"submit\">
</div>
<br />
</form>
</div>";
}

elseif (!empty($_POST['f1']) && !empty($_POST['f2']) && !empty($_POST['f3']) && !empty($_POST['f4']) && $_POST['f5'] != '' && !empty($_POST['f6'])) {
if(file_exists('counter.txt')) {
$count=fopen('counter.txt','r');
$digit=fread($count,10);
fclose($count);
}
else $digit = 0;
if ($digit == "50")
{
echo "<div style=\"width:300px; background-color:#000000; border-color:#FFCC00; border-style:solid; border-width:thin; text-align:center; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\"><br />Zostala osiagnieta dopuszczalna ilosc zgloszen. Przepraszamy.<br /></div>";
fclose($count);
}
else {
$counter=fopen('counter.txt','w+');
$new_digit= $digit + 1;
fwrite($counter,$new_digit);
fclose($counter);
$message = "Imie:\n$_POST[f1]\nNazwisko: $_POST[f2]\nkierowca: $_POST[f3]\npilot: $_POST[f4]\nosoby tow.: $_POST[f5]\nsamochod: $_POST[f6]";
$header = "From: Formularz www";
mail("desmuldes4x4@gmail.com","Zgloszenie ze strony WWW","$message","$header")
or die('Nie udalo sie wyslac wiadomosci!');
echo "<div style=\"width:300px; background-color:#000000; border-color:#FFCC00; border-style:solid; border-width:thin; text-align:center; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\"><br />Zgloszenie zostalo wyslane poprawnie!<br /></div>";
}
}else echo "<span style=\"text-align:center; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\">Wypelnij wszystkie pola formularza!</span><br /><br />
<div style=\"width:400px; background-color:#000000; border-color:#FFCC00; border-style:solid; border-width:thin; text-align:right; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\">
<form action=\"zgloszenie.php\" method=\"post\">
<div style=\"background-color:#000000; width:300px; border-style:none; text-align:right; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\"><br />
imie: <input type=\"text\" name=\"f1\" style=\"border-color:#ff9900\"><br />
nazwisko: <input type=\"text\" name=\"f2\" style=\"border-color:#ff9900\"><br />
kierowca: <input type=\"text\" name=\"f3\" style=\"border-color:#ff9900\"><br />
pilot: <input type=\"text\" name=\"f4\" style=\"border-color:#ff9900\"><br />
liczba osób towarzyszacych: <input type=\"text\" name=\"f5\" lenght=\"3\" style=\"width:20px; border-color:#ff9900\"><br />
</div>
<div style=\"background-color:#000000; border-style:none; text-align:center; font-family:Verdana, Tahoma; font-size:12px; color:#EEEEEE;\">
Wybrany samochód:<br />
Toyota Land Cruiser <input type=\"radio\" name=\"f6\" value=\"land_cruiser\"> <input type=\"radio\" name=\"f6\" value=\"hilux\">Toyota Hilux<br />
<input type=\"reset\"><input type=\"submit\" value=\"Wyslij\" name=\"submit\">
</div>
<br />
</form>
</div>";

?>
Paweł Pysznik edytował(a) ten post dnia 15.09.09 o godzinie 15:32



Wyślij zaproszenie do