Jump to content

Błąd parsowania w php


2grosiek7

Recommended Posts

Witam,

chciałbym wrzucić formularz kontaktowy na inną stronę, i mam problem z poniższym kodem. Co w nim jest nie teges?

 

<?php
/*sprawdzenie wypełnienia wszystkich pól*/
elseif (!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci']))
{
/* Funkcja sprawdzająca poprawność E-Maila */
function SprawdzEmail($email) {
 if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){
  return false;
 }
 return true;
}
}
if(SprawdzEmail($_POST['email'])){
/* Tworzymy szkielet wysyłanej wiadomości */
$adresemail='[email protected]'; /* Wpisz swój adres e-mail */
/* Wybierz kodowanie znaków usuwając // */
//$charset = 'iso-8859-2';
//$charset = 'utf-8';
$wiadomosc="Od: $_POST[imienazwisko] ($_POST)\n\n$_POST[trescwiadomosci]";
$nadawca="From: $_POST";
@mail($adresemail, "Formularz kontaktowy z www.ad-al.pl", "$wiadomosc", "$nadawca");
echo "<span style=\"color: #00D800; font-weight: bold; \">Dziękujemy, formularz został wysłany.</span>";
}else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; }
}else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Cofnij i wypełnij wszystkie pola formularza!!!</span>"; }
?>
 

 

Link to comment
Share on other sites

zaczynasz skrypt od elseif

elseif (!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){
...
...

elseif stosujemy po if

 

tzn:

if (something) {
code;
} elseif {
another code;
} elseif {
another one;
}

+

 

na końcu masz:

}else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Cofnij i wypełnij wszystkie pola formularza!!!</span>"; }

 

pomarańczowy kod jest zbędny bo brakuje  warunku if (if cośtam else zaprzeczenie) 

u Ciebie nie ma cośtam ;) jest samo zaprzeczenie. taka konstrukcja jest zła

Link to comment
Share on other sites

 

<form action="kontakt.php" method="post"> <!--nazwa strony na której znajduje się formularz-->

Imię i Nazwisko:<br />

<input type="text" name="imienazwisko" style="width:300px;"/><br />

E-Mail:<br />

<input type="text" name="email" style="width:300px;"/><br />

Treść wiadomości:<br />

<textarea name="trescwiadomosci" cols="30" rows="6" style="width:300px;"></textarea><br />

<input type="submit" name="submit" value="Wyślij formularz"/>

<input type="reset" value="Wyczyść"/>

</form>

Link to comment
Share on other sites

ok, dzieki

 

okroiłem troche ten skrypt i dodałem poprawną składnię, możesz spróbować z tym:

<?php
/*sprawdzenie wypełnienia wszystkich pól*/
if (!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci']))
{
/* Funkcja sprawdzająca poprawność E-Maila */
function SprawdzEmail($email) {
 if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){
  return false;
 }
 return true;
}
}
if(SprawdzEmail($_POST['email'])){
/* Tworzymy szkielet wysyłanej wiadomości */
$adresemail='[email protected]'; /* Wpisz swój adres e-mail */
/* Wybierz kodowanie znaków usuwając // */
//$charset = 'iso-8859-2';
//$charset = 'utf-8';
$wiadomosc="Od: $_POST[imienazwisko] ($_POST[email])\n\n$_POST[trescwiadomosci]";
$nadawca="From: $_POST[email]";
@mail($adresemail, "Formularz kontaktowy z www.ad-al.pl", "$wiadomosc", "$nadawca");
echo "<span style=\"color: #00D800; font-weight: bold; \">Dziękujemy, formularz został wysłany.</span>";
}else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; }
?>
 

daj znać, czy w ogóle działa :)

Link to comment
Share on other sites

skrypt jest przestarzały ;p nie zwróciłem na to uwagi, eregi zostało wycofane (deprecated) z php w wersji 5.3.0 i już nie jest wspierane.

zamiast eregi użyj preg_match

chodzi o ten fragment: if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){

Link to comment
Share on other sites

Zamieniłem kod na taki:

 

<?php
/*sprawdzenie wypełnienia wszystkich pól*/
if (!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci']))
{
/* Funkcja sprawdzająca poprawność E-Maila */
function SprawdzEmail($email) {
 if (!preg_match("/^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$\//" , $email)){
  return false;
 }
 return true;
}
}
if(SprawdzEmail($_POST['email'])){
/* Tworzymy szkielet wysyłanej wiadomości */
$adresemail='[email protected]'; /* Wpisz swój adres e-mail */
/* Wybierz kodowanie znaków usuwając // */
$charset = 'iso-8859-2';
//$charset = 'utf-8';
$wiadomosc="Od: $_POST[imienazwisko] ($_POST)\n\n$_POST[trescwiadomosci]";
$nadawca="From: $_POST";
@mail($adresemail, "Formularz kontaktowy z www.ad-al.pl", "$wiadomosc", "$nadawca");
echo "<span style=\"color: #00D800; font-weight: bold; \">Dziekujemy, formularz zostal wyslany.</span>";
}else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; }
error_reporting(error_reporting() & ~E_DEPRECATED);
?>
 

i każdorazowo wywala mi teraz komunikat o błędnym adresie e-mail. :(

Link to comment
Share on other sites

spróbuj to:

if (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/',$mail))

pełny kod:

<?php
/*sprawdzenie wypełnienia wszystkich pól*/
if (!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci']))
{
/* Funkcja sprawdzająca poprawność E-Maila */
function SprawdzEmail($email) {
 if (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/',$mail)){
  return false;
 }
 return true;
}
}
if(SprawdzEmail($_POST['email'])){
/* Tworzymy szkielet wysyłanej wiadomości */
$adresemail='[email protected]'; /* Wpisz swój adres e-mail */
/* Wybierz kodowanie znaków usuwając // */
$charset = 'iso-8859-2';
//$charset = 'utf-8';
$wiadomosc="Od: $_POST[imienazwisko] ($_POST[email])\n\n$_POST[trescwiadomosci]";
$nadawca="From: $_POST[email]";
@mail($adresemail, "Formularz kontaktowy z www.ad-al.pl", "$wiadomosc", "$nadawca");
echo "<span style=\"color: #00D800; font-weight: bold; \">Dziekujemy, formularz zostal wyslany.</span>";
}else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; }
error_reporting(error_reporting() & ~E_DEPRECATED);
?>
Link to comment
Share on other sites

no to jeszcze ten kod:

<?php
/*sprawdzenie wypełnienia wszystkich pól*/
if (!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){
    /* Funkcja sprawdzająca poprawność E-Maila */
    function SprawdzEmail($email) {
     if (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/',$email)){
      return false;
     }
     return true;
    }
    
    if(SprawdzEmail($_POST['email'])){
    /* Tworzymy szkielet wysyłanej wiadomości */
    $adresemail='[email protected]'; /* Wpisz swój adres e-mail */
    /* Wybierz kodowanie znaków usuwając // */
    $charset = 'iso-8859-2';
    //$charset = 'utf-8';
    $wiadomosc="Od: $_POST[imienazwisko] ($_POST[email])\n\n$_POST[trescwiadomosci]";
    $nadawca="From: $_POST[email]";
    @mail($adresemail, "Formularz kontaktowy z www.ad-al.pl", "$wiadomosc", "$nadawca");
    echo "<span style=\"color: #00D800; font-weight: bold; \">Dziekujemy, formularz zostal wyslany.</span>";
    }else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; }
    error_reporting(error_reporting() & ~E_DEPRECATED);
}
?>
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...