Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzenie kodu, znalezienie bledu, formularz php
filar1994
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.01.2012

Ostrzeżenie: (0%)
-----


Siemano
Problem jest z formularzem - nie wysyla e-maila i wyskakuje 'fail' . Do sprawdzenia na www.gmakademia.yoyo.pl/kontakt.php i o poprawe aby wysylal wszystkie informacje w e-mailu.


Formularz.php
Kod
<form action="#strona#" method="post" id="formularz">

<div>
<label>Imię : <span class="red">*</span></label>
<input type="text" id="imie" name="imie" value="#imie#" />
</div>
<div>
<label>Nazwisko: <span class="red">*</span></label>
<input type="text" id="nazwisko" name="nazwisko" value="#nazwisko#" />
</div>
<div>
<label>Adres e-mail: <span class="red">*</span></label>
<input type="text" id="mail" name="mail" value="#mail#" />
</div>
<div>
<label>Telefon: <span class="red">*</span></label>
<input type="text" id="telefon" name="telefon" value="#telefon#" />
</div>
<div>
<label>Firma: <span class="red">*</span></label>
<input type="text" id="firma" name="firma" value="#firma#" />
</div>
<div>
<label>Adres: <span class="red">*</span></label>
<input type="text" id="adres" name="adres" value="#adres#" />
</div>
<div>
<label>Miasto: <span class="red">*</span></label>
<input type="text" id="miasto" name="miasto" value="#miasto#" />
</div>
<div>
<label>Województwo/Region: <span class="red">*</span></label>
<select name="Wojewodztwo/region" size="1" value="#region#">
<option value="Biała Podlaska">Biala Podlaska
<option value="Bialystok">Bialystok
<option value="Bielsko-Biała">Bielsko-Biała
<option value="Bydgoszcz">Bydgoszcz
<option value="Chełm">Chełm
<option value="Ciechanów">Ciechanów
<option value="Częstochowa">Częstochowa
<option value="Elbląg">Elbląg
<option value="Gdańsk">Gdańsk
<option value="Gorzów">Gorzów
<option value="Jelenia Góra">Jelenia Góra
<option value="Kalisz">Kalisz
<option value="Katowice">Katowice
<option value="Kielce">Kielce
<option value="Konin">Konin
<option value="Koszalin">Koszalin
<option value="Kraków">Kraków
<option value="Krosno">Krosno
<option value="Legnica">Legnica
<option value="Leszno">Leszno
<option value="Łódź">Łódź
<option value="Łomża">Łomża
<option value="Lublin">Lublin
<option value="Nowy Sącz">Nowy Sącz
<option value="Olsztyn">Olsztyn
<option value="Opole">Opole
<option value="Ostrołęka">Ostrołęka
<option value="Piła">Piła
<option value="Piotrków">Piotrków
<option value="Płock">Płock
<option value="Poznań">Poznań
<option value="Przemyśl">Przemyśl
<option value="Radom">Radom
<option value="Rzeszów">Rzeszów
<option value="Siedlce">Siedlce
<option value="Sieradz">Sieradz
<option value="Skierniewice">Skierniewice
<option value="Słups">Słupsk
<option value="Suwałki">Suwałki
<option value="Szczecin">Szczecin
<option value="Tarnobrzeg">Tarnobrzeg
<option value="Tarnów">Tarnów
<option value="Toruń">Toruń
<option value="Wałbrzych">Wałbrzych
<option value="Warszawa">Warszawa
<option value="Włocławek">Włocławek
<option value="Wrocław">Wrocław
<option value="Zamość">Zamość
<option value="Zielona Góra">Zielona Góra
</select>


</select>
</div>
<div>
<span class="red">*</span> - oznacza pola wymagane.
</div>
<div>
<input type="submit" value="Wyślij" />
</div>

</form>

mail.php
Kod
<?php

include ('formularz/ustawienia.php');

ob_start();
        include('formularz/formularz.php');
        $formularz = ob_get_contents();
ob_end_clean();


function wyswietl_forme($komunikat='') {
global $formularz;

$do_zmiany = array(
'#komunikat#',
'#strona#',
'#imie#',
'#nazwisko#',
'#mail#',
'#telefon#',
'#firma#',
'#adres#',
'#miasto#',
'#region#'
);
$zmien_na = array(
$komunikat,
$_SERVER['REQUEST_URI'],
$_POST['imie'],
$_POST['nazwisko'],
$_POST['mail'],
$_POST['telefon'],
$_POST['firma'],
$_POST['adres'],
$_POST['miasto'],
$_POST['region']
);

$formularz = str_replace ( $do_zmiany, $zmien_na, $formularz);

return $formularz;
}


function waliduj() {
global $komunikat;
global $valid;

if( $valid['imie'] > 0 ) {
if(strlen($_POST['imie']) < $valid['imie'] ){
$walidacja['imie'] = $komunikat['imie'];
}
}

if( $valid['nazwisko'] > 0 ) {
if(strlen($_POST['nazwisko']) < $valid['nazwisko'] ){
$walidacja['nazwisko'] = $komunikat['nazwisko'];
}
}

if( $valid['mail'] == 0 ) {
if(!filter_var($_POST['mail'],FILTER_VALIDATE_EMAIL)) {
$walidacja['mail'] =  $komunikat['mail'];
}
}

if( $valid['telefon'] > 0 ) {
if(strlen($_POST['telefon']) < $valid['telefon'] ){
$walidacja['telefon'] = $komunikat['telefon'];
}
}

if( $valid['firma'] > 0 ) {
if(strlen($_POST['firma']) < $valid['firma'] ){
$walidacja['firma'] = $komunikat['firma'];
}
}

if( $valid['adres'] > 0 ) {
if(strlen($_POST['adres']) < $valid['adres'] ){
$walidacja['adres'] = $komunikat['adres'];
}
}

if( $valid['miasto'] > 0 ) {
if(strlen($_POST['miasto']) < $valid['miasto'] ){
$walidacja['miasto'] = $komunikat['miasto'];
}
}

if(empty($walidacja)) {
return 'true';
}else{
return $walidacja;
}

}

// Działanie
if (($_SERVER['REQUEST_METHOD'] == 'POST')) {// wejście postem
$walidacja = waliduj();

if ($walidacja == 'true'){ //poprawnie wypełniony formularz

if(mail($adres_odbiorcy,"=?UTF-8?B?".base64_encode($_POST['telefon'])."?=",'<p>Od: <b>'.$_POST['imie'].''.$_POST['nazwisko'].'</b><b>'.$_POST['nazwisko'].'</b></p><pre>'.$_POST['tresc'].'</pre>','From:'.$_POST['mail']."\r\nContent-Type: text/html; charset=utf-8")){ //sukces
print '
<div id="sukces">
<p>'.$komunikat['sukces'].'</p>
</div>
';
}else{ //bląd serwera
print '
<div id="blad">
<p>'.$komunikat['fail'].'</p>
</div>
';
print wyswietl_forme();
}

}else{
//błędna walidacja
$blad_walidacji = $walidacja;

$blad_walidacji = '
<div id="blad">
<p>'.$komunikat['blad'].'</p>
<ul>
';
foreach ($walidacja as $wpis) {
$blad_walidacji .= '<li>'.$wpis.'</li>';
}
$blad_walidacji .= '
</ul>
</div>
';

print wyswietl_forme($blad_walidacji);
}

}else{
// nowe wejście
print wyswietl_forme();
}






?>


ustawienia.php
Kod
<?php
/* Ustawienia formularza kontaktowego */

$adres_odbiorcy = 'filar1994@gmail.com';  //tu wpisz adres e-mail na który mają przychodzić wiadomości



/* Ustawienia wymaganych pól */
/* Pamiętaj, żeby oznaczyć wymagane pola w formularzu - plik formularz.php */

$valid['imie'] = 2;  // Imie: 0 - oznacza pole nieobowiązkowe, inna liczba minimalną ilość znaków jakie musi wpisać użytkownik
$valid['nazwisko'] = 2;  // Nazwisko: 0 - oznacza pole nieobowiązkowe, inna liczba minimalną ilość znaków jakie musi wpisać użytkownik
$valid['mail'] = 1;  // e-mail: 0 - oznacza pole nieobowiązkowe, 1 - pole wymagane
$valid['telefon'] = 5;  // Temat: 0 - oznacza pole nieobowiązkowe, inna liczba minimalną ilość znaków jakie musi wpisać użytkownik
$valid['firma'] = 1;  // Firma: 0 - oznacza pole nieobowiązkowe, inna liczba minimalną ilość znaków jakie musi wpisać użytkownik
$valid['miasto'] = 5;  // Miasto: 0 - oznacza pole nieobowiązkowe, inna liczba minimalną ilość znaków jakie musi wpisać użytkownik
$valid['region'] = 5;  // Region: 0 - oznacza pole nieobowiązkowe, inna liczba minimalną ilość znaków jakie musi wpisać użytkownik



/* Komunikaty */

$komunikat['sukces'] = 'Dziękujemy. Twoja wiadomość została wysłana.';  //Wiadomość po udanym wysłaniu formularza
$komunikat['blad'] = 'W celu pobrania dema popraw poniższe błędy.';  //Wiadomość przy błędzie w sprawdzaniu danych, błędy zostaną wymienione poniżej
$komunikat['imie'] = 'Wpisz właściwe imię';  //Wpisz właściwą ilość znaków jeśli pole wymagane
$komunikat['nazwisko'] = 'Wpisz właściwe nazwisko';  //Wpisz właściwą ilość znaków jeśli pole wymagane
$komunikat['mail'] = 'Podaj poprawny adres e-mail.';  //Wiadomość po błędnym wpisaniu adresu e-mail
$komunikat['telefon'] = 'Wpisz poprawny numer telefonu';  //Wpisz właściwą ilość znaków jeśli pole wymagane
$komunikat['firma'] = 'Wpisz poprawną nazwe firmy';  //Wpisz właściwą ilość znaków jeśli pole wymagane
$komunikat['fail'] = 'Przepraszamy wystąpił chwilowy błąd. Spróbuj ponownie później';  //W przypadku nieudanego wyslania wiadomości np. błędu serwera
?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
cycofiasz
post
Post #2





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


A my jak te psy rzucamy się na analizę kodu i przynosimy poprawiony w pysku. Litości ludzie...
Go to the top of the page
+Quote Post
filar1994
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.01.2012

Ostrzeżenie: (0%)
-----


kod jest prosty do analizy, wiec nie narzekaj... pomoc jest dobrowolna wiec nie widze problemu ktory wytaczasz w swojej wypowiedzi... nie chcesz - nie pomagasz. Mam problem ktorego nie potrafie sam rozwiklac, a ktos moze zauwazy w czym jest blad.

Pozdro wink.gif
Go to the top of the page
+Quote Post
cycofiasz
post
Post #4





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


1. Nie ten dział, to się nadaje do przedszkola
2. Brak odpowiednich tagów przez co kod jest nieczytelny.
3. Brak magicznego słowa proszę
Go to the top of the page
+Quote Post
filar1994
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.01.2012

Ostrzeżenie: (0%)
-----


1. W takim razie prosze moda o przeniesienie do odpowiedniego dzialu

2. Moglbys rozszerzyc troche mysl, bo odpowiednie tagi malo mi mowi

3. Prosze bardzo



ad. 2
moga to byc zrodla problemu niedzialania kodu ? (domyslam sie ze przeczytales chociaz czesc)
Go to the top of the page
+Quote Post
Uriziel01
post
Post #6





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Po pierwsze, zapoznałeś się z tym:
http://www.yoyo.pl/pomoc/index.php?action=kb&article=38

Sprawdź najpierw czy możesz bez problemów wysyłać proste wiadomości typu (przykład z php.net):
  1. $to = 'nobody@example.com';
  2. $subject = 'the subject';
  3. $message = 'hello';
  4. $headers = 'From: webmaster@example.com' . "\r\n" .
  5. 'Reply-To: webmaster@example.com' . "\r\n" .
  6. 'X-Mailer: PHP/' . phpversion();
  7.  
  8. mail($to, $subject, $message, $headers);


Jeżeli tak to sprawdź czy linia z mail() się w ogóle wykonuje.
Zrób też echo z adresu odbiorcy, tematu, treści i nagłówków i pokaż tutaj.

Swoją drogą czytać się tego nie da bez wcięć dry.gif

Ten post edytował Uriziel01 10.01.2012, 15:30:58
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 12:08