Jump to content
2grosiek7

Błąd parsowania w php

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='aragornxt@gmail.com'; /* 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>"; }
?>
 

 

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Czyli mogę użyć else zamiast elseif?

Ściągnąłem darmowy skrypt i z tego co widzę, masa błędów w nim :(

Share this post


Link to post
Share on other sites

Czyli mogę użyć else zamiast elseif?

Ściągnąłem darmowy skrypt i z tego co widzę, masa błędów w nim :(

 

nie ;)

 

kod wydaje się być nie pełny, czy to aby na pewno pełny kod?

Share this post


Link to post
Share on other sites

no to jest tylko kod php bez formularza w html.

jak wygląda kod tego formularza w html ?

Share this post


Link to post
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>

Share this post


Link to post
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='aragornxt@gmail.com'; /* 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 :)

Share this post


Link to post
Share on other sites

Działa, ale wywala takie coś na dobranoc:

 

Deprecated: Function eregi() is deprecated in /home/dumledor/domains/ad-al.pl/public_html/lol/kontakt.php on line 7
Dzi�kujemy, formularz zosta� wys�any.

Share this post


Link to post
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)){

Share this post


Link to post
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='aragornxt@gmail.com'; /* 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. :(

Share this post


Link to post
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='aragornxt@gmail.com'; /* 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);
?>

Share this post


Link to post
Share on other sites

ooo ja, mój bład użyłem tam zmiennej $mail zamiast $email

 

tylko to do poprawy i pójdzie

Share this post


Link to post
Share on other sites

Poprawiłem tą literówkę jedną, teraz wywala coś takiego:

Fatal error: Call to undefined function SprawdzEmail() in /home/dumledor/domains/ad-al.pl/public_html/lol/kontakt.php on line 13
Edited by 2grosiek7 (see edit history)

Share this post


Link to post
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='aragornxt@gmail.com'; /* 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);
}
?>

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More