Autor Zpráva
Speedl
Profil *
Zdravím, koupil jsem si doménu a hosting na Blueboardu, ale po nahrání webu na server, mi nefunguje odesílání emailu pomocí formuláře. Nejen, že se email neodešle, navíc po odeslání (kliknutí na "submit") zmizí hodnoty "value" u všech vstupních prvků a jediné, co se mi objeví z položek v seznamu "ul" je "Uvedená emailová adresa není ve správném tvaru" (pochopitelně). Když jsem při psaní stránek testoval funkčnost na free hostingu na ic.cz, tak to šlapalo jak má. Nevíte někdo, kde by mohla být chyba (v php kódu asi těžko, když to jinde funguje)? Předem díky za reakce :)

<?php if ($_POST) {

  $sent=0;

  if (EReg('^[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-\+]+)*@[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)*\.[a-zA-Z]{2,4}$', $email)
  && $vzkaz!="Vzkaz *" && $jmeno!="Jméno a příjmení *") 

    { 
      mail("muj@mail.cz","Bla bla bla",$vzkaz,"from: <$email>"); $sent=1;} 

         } ?>


<form action="#napiste-mi" method="post" enctype="multipart/form-data">

  <fieldset>

    <legend>Kontaktní formulář</legend>

          <label for="jmeno">Jméno a příjmení *</label>

            <br>

<input type="text" maxlength="50" size="40" name="jmeno" id="jmeno" class="text" 

value="<?php if($_POST && $jmeno!='Jméno a příjmení *' && $sent!=1) echo ($jmeno); else echo ('Jméno a příjmení *'); ?>"
                      onfocus="if(this.value=='Jméno a příjmení *') this.value=''" onblur="if(this.value=='') this.value='Jméno a příjmení *';" title="Sem napište Vaše jméno a příjmení (povinné pole)">

          
          

            <br>

            <label for="email">Email *</label>



            <br>

<input type="text" maxlength="50" size="40" id="email" class="text" name="email" 

value="<?php if($_POST && $email!='Email *' && $sent!=1) echo ($email); else echo ('Email *'); ?>"

           onfocus="if(this.value=='Email *') this.value=''" onblur="if(this.value=='') this.value='Email *';" title="Sem napište Váši emailovou adresu (povinné pole)">

            <br>

          

          <label for="vzkaz">Vzkaz *</label>

            <br>

          <textarea id="vzkaz" name="vzkaz" cols="70" rows="10" onfocus="if(this.value=='Vzkaz *') this.value=''" onblur="if(this.value=='') this.value='Vzkaz *';" title="Sem napište Váš vzkaz (povinné pole)"><?php if($_POST && $vzkaz!='Vzkaz *' && $sent!=1) echo ($vzkaz); else echo ('Vzkaz *'); ?></textarea>

        <br>

          <input type="submit" class="submit" name="submit" value="Odeslat">

  </fieldset>

</form>


<ul id="notice">


<?php if ($_POST) 

{

if ($jmeno == "Jméno a příjmení *") echo("<li>Neuvedli jste Vaše jméno</li>"); 

if ($email == "Email *") echo("<li>Neuvedli jste Vaši emailovou adresu</li>");

if (($email != "Email *") && !EReg('^[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-\+]+)*@[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)*\.[a-zA-Z]{2,4}$', $email)) echo("
<li>Uvedená emailová adresa není ve správném tvaru</li>"); 

if ($vzkaz=='Vzkaz *') echo("<li>Nenapsali jste žádný vzkaz</li>");

if ($sent==1) echo("<li class='done'>Děkuji, Váš vzkaz byl odeslán - brzy se Vám ozvu :-)</li>");


}

 ?>

</ul>
Jan Tvrdík
Profil
Nejčastější potíže s PHP (FAQ) » Nefungují proměnné z formuláře nebo z URL (vypnuté register globals)
Speedl
Profil *
Jan Tvrdík:
Díky moc za radu, už to běží :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: