t9omek 0 Zgłoś post Napisano Wrzesień 1, 2015 (edytowany) Witam, chciałbym wrzucić na stronę formularz kontaktowy dla klientów. Wypełniam pola i klikam wyślij, wysyła mnie do "potwierdzenie.php" więc poprawnie, ale kiedy sprawdzam email niema tam żadnych wiadomości <div id="formularz"> <input name="name" placeholder="Imię i Nazwisko"> <input name="phone" type="phone" placeholder="Telefon"> <input name="email" type="email" placeholder="E-mail"> <input name="companyname" type="companyname" placeholder="Nazwa Firmy"> <label> <select> <option value="Wojewodztwo">Województwo</option> <option value="mazowieckie">mazowieckie</option> <option value="dolnoslaskie">dolnośląskie</option> <option value="kujawsko-pomorskie">kujawsko-pomorskie</option> <option value="lubelskie">lubelskie</option> <option value="lubuskie">lubuskie</option> <option value="lodzkie">łódzkie</option> <option value="malopolskie">małopolskie</option> <option value="opolskie">opolskie</option> <option value="podkarpackie">podkarpackie</option> <option value="podlaskie">podlaskie</option> <option value="pomorskie">pomorskie</option> <option value="slaskie">śląskie</option> <option value="swietokrzyskie">świętokrzyskie</option> <option value="warminsko-mazurskie">warmińsko-mazurskie</option> <option value="wielkopolskie">wielkopolskie</option> <option value="zachodniopomorskie">zachodniopomorskie</option> </select></label> <input id="submit" name="submit" type="submit" value="Wyślij"></div> <div id="cb"> <label><input type="checkbox"> Mam 18 lat i akceptuję warunki promocji.</label></br> </br> </form></div></div> <?php // Tworzymy zmienną dla imienia i nazwiska $name = $_POST['name']; // Tworzymy zmienną dla adresu email $email = $_POST['email']; $companyname = $_POST['companyname']; // Podajesz adres email z którego ma być wysłana wiadomość $odkogo = "biuro@1.pl"; // Podajesz adres email na który chcesz otrzymać wiadomość $dokogo = "tk@g.com"; // Podajesz tytuł jaki ma mieć ta wiadomość email $tytul = "Formularz kontaktowy z 3l"; // Przygotowujesz treść wiadomości $wiadomosc = ""; $wiadomosc .= "Imie i nazwisko: " . $name . "\n"; $wiadomosc .= "Email: " . $email . "\n"; $wiadomosc .= "Wiadomość: " . $message . "\n"; // Wysyłamy wiadomość $sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>"); // Przekierowywujemy na potwierdzenie if ($sukces){ print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">"; } else{ print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">"; } ?> Edytowano Wrzesień 1, 2015 przez t9omek (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Vasthi 74 Zgłoś post Napisano Wrzesień 1, 2015 mail w php dobrze skonfigurowany ? To jakiś shared czy VPS ? Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 1, 2015 testowałem na xampp, czy to może być powodem niedziałania ? Udostępnij ten post Link to postu Udostępnij na innych stronach
Vasthi 74 Zgłoś post Napisano Wrzesień 1, 2015 testowałem na xampp, czy to może być powodem niedziałania ? tak, poczytaj tutaj jak chcesz wysyłać z tego maile http://stackoverflow.com/questions/15965376/how-to-configure-xampp-to-send-mail-from-localhost Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 1, 2015 Chciałbym też aby skrypt wysyłam wiadomość na różne adresy email w zależności od wybranego województwa, wiem że powinienem użyć if else ale niewiem jak miało by to dokładne wyglądać. Podpowie ktoś coś ? Udostępnij ten post Link to postu Udostępnij na innych stronach
MicroVPS.pl 85 Zgłoś post Napisano Wrzesień 1, 2015 Chciałbym też aby skrypt wysyłam wiadomość na różne adresy email w zależności od wybranego województwa, wiem że powinienem użyć if else ale niewiem jak miało by to dokładne wyglądać. Podpowie ktoś coś ? Możesz użyć tablicy np. array('mazowieckie' => 'mazowieckie@domena.pl'); Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 1, 2015 dalej nie rozumiem czy może mi to ktoś jeszcze przetłumaczyć. Czy ma to wyglądać tak ? if array('mazowieckie' => $dokogo = 'mazowieckie@domena.pl'); if array('wielkopolskie' => $dokogo = 'wielkopolskie@domena.pl'); else echo "nie wybrano woje"; Co o tym sądzicie ? if ( SELECTED value="wielkopolskie") { $dokogo = wielkopolskie@as.pl; } else if ( SELECTED value="pomorskie" ) { $dokogo = pomorskiee@as.pl; } Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 1, 2015 Wywala błąd "Parse error: syntax error, unexpected T_STRING in /home/t9omek/domains/t9omek.gbzl.pl/public_html/kontakt.php on line 16" <?php // Tworzymy zmienną dla imienia i nazwiska $name = $_POST['name']; // Tworzymy zmienną dla adresu email $email = $_POST['email']; $companyname = $_POST['companyname']; // Podajesz adres email z którego ma być wysłana wiadomość $odkogo = "biuro@33zl.pl"; // Podajesz adres email na który chcesz otrzymać wiadomość if ( SELECTED value="mazowieckie") { $dokogo = wielkopolskie@as.pl; } else if ( SELECTED value="dolnoslaskie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="kujawsko-pomorskie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="lubelskie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="lubuskie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="lodzkie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="malopolskie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="opolskie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="podkarpackie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="podlaskie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="pomorskie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="slaskie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="swietokrzyskie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="warminsko-mazurskie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="wielkopolskie" ) { $dokogo = pomorskiee@as.pl; } else if ( SELECTED value="zachodniopomorskie" ) { $dokogo = pomorskiee@as.pl; } // Podajesz tytuł jaki ma mieć ta wiadomość email $tytul = "Formularz kontaktowy z 33zl.pl"l // Przygotowujesz treść wiadomości $wiadomosc = ""; $wiadomosc .= "Imie i nazwisko: " . $name . "\n"; $wiadomosc .= "Email: " . $email . "\n"; // Wysyłamy wiadomość $sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>"); // Przekierowywujemy na potwierdzenie if ($sukces){ print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">"; } else{ print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">"; } ?> Udostępnij ten post Link to postu Udostępnij na innych stronach
MicroVPS.pl 85 Zgłoś post Napisano Wrzesień 1, 2015 dalej nie rozumiem czy może mi to ktoś jeszcze przetłumaczyć. Czy ma to wyglądać tak ? if array('mazowieckie' => $dokogo = 'mazowieckie@domena.pl'); if array('wielkopolskie' => $dokogo = 'wielkopolskie@domena.pl'); else echo "nie wybrano woje"; Nie tak.. $adresy = array('mazowieckie' => 'mazowieckie@domena.p1', 'wielkopolskie' => 'wielkopolskie@domena.pl', 'wielkopolskie' => 'wielkopolskie@domena.pl'); if(isset($adresy($_POST['wojewodztwo']))) $dokogo = $adresy($_POST['wojewodztwo']); Uzupełnij tylko do końca tablicę według tego schematu oraz nazwij select z województwami "wojewodztwo" bądź inaczej jednak wtedy zmień powyższy kod. Udostępnij ten post Link to postu Udostępnij na innych stronach
Vasthi 74 Zgłoś post Napisano Wrzesień 1, 2015 Dużymi literami oznaczamy stałe w php, ciąg znaków bez dolara są brane jaki stałe. Zmienne oznaczamy z dolarem. To się nie wykona, w php porównanie jest == lub ===. nie wiem skąd wziąłeś selected i value if ( SELECTED value="mazowieckie") Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 1, 2015 (edytowany) nie wiem skąd wziąłeś selected i value Z jednego z poradników z internetu Nazwanie selekt wojewodztwo miało wyglądać tak ? <select name="wojewodztwo"> <option value="Wojewodztwo">Województwo</option> <option value="mazowieckie">mazowieckie</option> <option value="dolnoslaskie">dolnośląskie</option> <option value="kujawsko-pomorskie">kujawsko-pomorskie</option> <option value="lubelskie">lubelskie</option> <option value="lubuskie">lubuskie</option> <option value="lodzkie">łódzkie</option> <option value="malopolskie">małopolskie</option> <option value="opolskie">opolskie</option> <option value="podkarpackie">podkarpackie</option> <option value="podlaskie">podlaskie</option> <option value="pomorskie">pomorskie</option> <option value="slaskie">śląskie</option> <option value="swietokrzyskie">świętokrzyskie</option> <option value="warminsko-mazurskie">warmińsko-mazurskie</option> <option value="wielkopolskie">wielkopolskie</option> <option value="zachodniopomorskie">zachodniopomorskie</option> </select> bo wywala błąd " Fatal error: Can't use function return value in write context in /home/t9omek/domains/t9omek.gbzl.pl/public_html/kontakt.php on line 17" 17 linijka to: if(isset($adresy($_POST['wojewodztwo']))) <?php // Tworzymy zmienną dla imienia i nazwiska $name = $_POST['name']; // Tworzymy zmienną dla adresu email $email = $_POST['email']; $companyname = $_POST['companyname']; // Podajesz adres email z którego ma być wysłana wiadomość $odkogo = "biuro@3.pl"; // Podajesz adres email na który chcesz otrzymać wiadomość $adresy = array('mazowieckie' => 'mazowieckie@domena.p1', 'dolnoslaskie' => 'd@domena.pl', 'kujawsko-pomorskie' => 'kp@domena.pl'); if(isset($adresy($_POST['wojewodztwo']))) $dokogo = $adresy($_POST['wojewodztwo']); // Podajesz tytuł jaki ma mieć ta wiadomość email $tytul = "Formularz kontaktowy z 33.pl"l // Przygotowujesz treść wiadomości $wiadomosc = ""; $wiadomosc .= "Imie i nazwisko: " . $name . "\n"; $wiadomosc .= "Email: " . $email . "\n"; // Wysyłamy wiadomość $sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>"); // Przekierowywujemy na potwierdzenie if ($sukces){ print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">"; } else{ print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">"; } ?> Edytowano Wrzesień 1, 2015 przez t9omek (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Vasthi 74 Zgłoś post Napisano Wrzesień 1, 2015 (edytowany) HTML a PHP to jest coś innego. Nie możesz używać ot tak sobie na przemiennie. Pokaż cały ten plik kontakt.php if(isset($adresy[$_POST['wojewodztwo']])) Edytowano Wrzesień 1, 2015 przez Viperoo (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 1, 2015 to wiem to dwa równe pliki php <?php // Tworzymy zmienną dla imienia i nazwiska $name = $_POST['name']; // Tworzymy zmienną dla adresu email $email = $_POST['email']; $companyname = $_POST['companyname']; // Podajesz adres email z którego ma być wysłana wiadomość $odkogo = "biuro@wp.pl"; // Podajesz adres email na który chcesz otrzymać wiadomość $adresy = array('mazowieckie' => 't9omek@gmail.com', 'dolnoslaskie' => 't9omek@gmail.com', 'kujawsko-pomorskie' => 't9omek@gmail.com'); if(isset($adresy($_POST['wojewodztwo']))) $dokogo = $adresy($_POST['wojewodztwo']); // Podajesz tytuł jaki ma mieć ta wiadomość email $tytul = "Formularz kontaktowy z "l // Przygotowujesz treść wiadomości $wiadomosc = ""; $wiadomosc .= "Imie i nazwisko: " . $name . "\n"; $wiadomosc .= "Email: " . $email . "\n"; // Wysyłamy wiadomość $sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>"); // Przekierowywujemy na potwierdzenie if ($sukces){ print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">"; } else{ print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">"; } ?> część html odpowiedzialna za formularz <div id="formularz"> <input name="name" placeholder="Imię i Nazwisko"> <input name="phone" type="phone" placeholder="Telefon"> <input name="email" type="email" placeholder="E-mail"> <input name="companyname" type="companyname" placeholder="Nazwa Firmy"> <label> <select> <option value="Wielkosc_firmy">Wielkość Firmy</option> <option value="do_10_pracownikow">do 10 pracowników</option> <option value="od_11_do_50_pracowników">od 11 do 50 pracowników</option> <option value="od_51_do_250_pracowników">od 51 do 250 pracowników</option> </select> <select name="wojewodztwo"> <option value="Wojewodztwo">Województwo</option> <option value="mazowieckie">mazowieckie</option> <option value="dolnoslaskie">dolnośląskie</option> <option value="kujawsko-pomorskie">kujawsko-pomorskie</option> <option value="lubelskie">lubelskie</option> <option value="lubuskie">lubuskie</option> <option value="lodzkie">łódzkie</option> <option value="malopolskie">małopolskie</option> <option value="opolskie">opolskie</option> <option value="podkarpackie">podkarpackie</option> <option value="podlaskie">podlaskie</option> <option value="pomorskie">pomorskie</option> <option value="slaskie">śląskie</option> <option value="swietokrzyskie">świętokrzyskie</option> <option value="warminsko-mazurskie">warmińsko-mazurskie</option> <option value="wielkopolskie">wielkopolskie</option> <option value="zachodniopomorskie">zachodniopomorskie</option> </select></label> <input id="submit" name="submit" type="submit" value="Wyślij"></div> <div id="cb"> <label><input type="checkbox"> Mam 18 lat i akceptuję warunki promocji.</label></br> </br> </form></div></div> </div> Udostępnij ten post Link to postu Udostępnij na innych stronach
Vasthi 74 Zgłoś post Napisano Wrzesień 1, 2015 Napisałem Ci gdzie masz błąd, $adresy to jest tablica a nie nazwa funkcji. Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 1, 2015 jak to mogę naprawić ? Udostępnij ten post Link to postu Udostępnij na innych stronach
Piotr GRD 608 Zgłoś post Napisano Wrzesień 1, 2015 (edytowany) MicroVPS.pl popełnił błąd, zapewne z pośpiechu, przez nieuwagę. A Ty nie znając dobrze składni PHP go powieliłeś. Nawiasy kwadratowe, nie okrągłe. To ta różnica tablica / funkcja, o której mówi Viperoo. if(isset($adresy($_POST['wojewodztwo']))) $dokogo = $adresy($_POST['wojewodztwo']); ==> if(isset($adresy[$_POST['wojewodztwo']])) $dokogo = $adresy[$_POST['wojewodztwo']]; Dodałbym jeszcze jakiś domyślny adres na wypadek, gdyby nie istniał adres dla określonego województwa lub klient podał inną, nieprzewidzianą wartość w tym polu. if(isset($adresy[$_POST['wojewodztwo']])) $dokogo = $adresy[$_POST['wojewodztwo']]; else $dokogo = 'domyślny.adres.na.nieprzewidziane.przypadki@example.com'; Edytowano Wrzesień 1, 2015 przez Piotr GRD (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 1, 2015 nie wywala już żadnego błędu z php, ale nie wysyła email i wyświetla zawartość "error,html" Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 2, 2015 (edytowany) ok, działa. Edytowano Wrzesień 2, 2015 przez t9omek (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 2, 2015 kiedy źle wpisze adres email wyskakuje mi bardzo ładne okienko jak mógł bym dodać takie okna do innych pól "np nie zaznaczono zgody (do checkbox), lub numer powinien się składać z 9 znaków) te jest jakby automatyczne bo sam go nie dodałem Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 2, 2015 ok,już mam funkcja required Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 2, 2015 niestety nie współpracuje on z rozwijaną listą, czy da się coś zrobić aby wybranie któregoś z elementów listy było konieczne ( jeśli użytkownik nie wybierze wyskoczy pole "wybierz jakąś opcje ..." Udostępnij ten post Link to postu Udostępnij na innych stronach
MicroVPS.pl 85 Zgłoś post Napisano Wrzesień 2, 2015 Możesz to napisać w javascript bądź zrobić warunek w php. if(!isset($_POST['18lat']) OR empty($_POST['18lat'])) $error = 'Proszę zaakceptować warunek wiekowy...'; if(!isset($error)) { // dalsza część kodu, który ma się wykonywać jeśli wszystkie warunki zostaną spełnione. } Do checkboxa dodaj name="18lat" value="true" Udostępnij ten post Link to postu Udostępnij na innych stronach
Piotr GRD 608 Zgłoś post Napisano Wrzesień 2, 2015 Tak na marginesie dodałbym, że nie "javascript bądź PHP", a "javascript i PHP". Podobnie z tym atrybutem "required" w formularzu HTML, też uzupełniłbym to dodatkowo sprawdzeniem po stronie serwera w PHP: po pierwsze, nie każda przeglądarka obsługuje ten atrybut, a po drugie nigdy nie można ufać klientowi, że wyśle w formularzu to co zakładamy, że wysłać powinien. Udostępnij ten post Link to postu Udostępnij na innych stronach