Autor Zpráva
Stig001
Profil
Dobrý den,

Sestavil jsem si v php formulář pro odesílání mailů na základě nějakých příkladů, které jsem našel na netu a ty upravil. Ačkoliv php rozumím úplně minimálně, tak to kupodivu funguje až na jednu věc.


<?
$jmeno = $_POST['name'];
$predmet = $_POST['predmet'];
$email = $_POST['email'];
$spam = $_POST['spam'];
$zprava = $_POST['zprava'];


$zprava2 = $zprava. "\n" . "\n" .'===>Tento e-mail byl odeslán aplikací pro odesílání e-mailů z webu www.radekcaga.wz.cz.' . "\n" . "\n" .'===> Vyplněné jméno je: ' . $jmeno  . "\n" . "\n" .'===> Předmět dotazu je: ' . $predmet ; 


if ($jmeno!="" and $predmet!="" and $email!="" and $zprava!="" and $spam=="2")
{
Mail("xxxxxxxx@seznam.cz", $predmet, $zprava2, "From: " . $email);
echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";
}
else
{
echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo otázku proti zabranění spamu.</p>";
} 



?>
Tu hlášku při nesplnění podmínky: <p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo otázku proti zabranění spamu.</p> mě vypisuje ještě před tím, než se potvrdí tlačítko pro odeslání.

Jak by se to prosím dalo opravit, aby to tu hlášku zobrazilo až po odeslání tlačítka (+ při nesplnění podmínek) ?

Děkuji za případnou pomoc,
Pavlínka
Profil
if (($jmeno!="" OR $predmet!="" OR $email!="" OR $zprava!="") AND $spam=="2")
{
Mail("xxxxxxxx@seznam.cz", $predmet, $zprava2, "From: " . $email);
echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";
}
else
{
echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo otázku proti zabranění spamu.</p>";
} 



plus... nauč se na místo <? používat <?php novější php nemusí <? papat :)
Stig001
Profil
Pavlínka:

Takto to nefunguje :-( ...

Potřebuji, aby se mail odeslal budou-li všechny podmínky splněny, tzn. zadaný mail + jméno + předmět + "2" a pokud se tak stane, vypíše se hláška, že byl mail odeslán.

Pokud některý z povinných parametrů není zadán, vypíše se ta druhá hláška.

Můj problém je, že mi to tu druhou hlášku vypisuje už když vstoupím na danou stránku bez toho, aniž bych odesílal nějaký mail - formulář. => Je tam zobrazena permanetně pořád.

Jinak form vypadá takto:


<div class="left_form">
  <form action="zk_autor.php#email" method="post">
  
    <label for="name" class="width">Vaše jméno</label>
    <input type="text" id="name" name="name"><br>     

    <label for="email" class="width">Váš E-mail</label>
    <input type="text" id="email" name="email"><br> 
    
    <label for="sub" class="width">Předmět</label>
    <input type="text" id="sub" name="predmet"><br> 

    <label for="spam" class="width">1 + 1 = </label>
    <input type="text" id="spam" name="spam"><br>  
    
    <label for="zprava" class="width">Vaše zpráva</label>
     <textarea id="zprava" name="zprava"></textarea> 
  
    <input type="submit" value="Odeslat" class="padding_left_100">
  </form>
</div>
Díky
Pavlínka
Profil
Stig001:
jo tak, špatně jsem četla... tak vytvoř druhou podmínku

if ($jmeno!="" and $predmet!="" and $email!="" and $zprava!="" and $spam=="2")
{
Mail("xxxxxxxx@seznam.cz", $predmet, $zprava2, "From: " . $email);
echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";
}
if(!empty($_POST)){
echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo otázku proti zabranění spamu.</p>";
} 


v tvém případě bych ale asi spíš kontrolovala mail viz error_get_last()
T-fon
Profil
Dej si na začátek PHP scriptu podmínku:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
a celý zpracování formuláře a odeslání emailu dej do ní.

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: