Autor Zpráva
puzzle
Profil
chtěl bych se zapta na funkci mail pokud je sma o sobě tak funguje normálně, ale pokud tam přidám třeba HTMLspecialchars tam to občas odešle občas neodešle nevíte čím to je?
Davex
Profil
Asi to bude chybným použitím htmlspecialchars() nebo chybou někde jinde v kódu. Bez ukázky problematické části kódu ti nikdo konkrétně neporadí.
puzzle
Profil
<?php
    if (isset($_POST['odeslani'])) {
    $meno = $_POST['meno'];
    $zprava = $_POST['zprava'];
    $mail = $_POST['mail'];
    $kod = $_POST['kod'];
    
    $zprava = strip_tags($zprava);
    $mail = strip_tags($mail);
    $meno = strip_tags($meno);
    $kod = strip_tags($kod);
    
    $zprava = htmlspecialchars($zprava);
    $mail = htmlspecialchars($mail);
    $meno = htmlspecialchars($meno);
    $kod = htmlspecialchars($kod);
    
   
    if ($zprava=="" || $mail=="" || $meno="" || $kod!="123") {
    echo "<b class='chyba'>Zkontrolujte zda-li jste zadali všechny údaje, a správně opsali kód!</b>";
    }else {
    
    $celek = "$zprava \n Od: $meno";
    $odeslano = mail("--------@-----.cz","Zprava z webu od: ".$mail,$celek);
    
    if ($odeslano) {
    echo "<b class='spravne'>Zpráva úspěšně odeslána <img src='greentick.gif'></b>";
    }else{
    echo "<b class='chyba'>Zpráva nebyla odeslána!</b>";
      } 
     }
     
    }
    ?>


Tady je ten kod a má to ještě jeden háček, promena $meno se neodešle vůbec a celý mail se odešle někdy a někdy ne..
Radek9
Profil
puzzle:
Ukaž i formulář.
puzzle
Profil
<form method="post" action="#">   
    <strong>Vaše jméno:</strong> <br>   
    <input type="text" name="meno"> <br>   
    <strong>Váš €-mail:</strong>      <br>   
    <input type="text" name="mail">  <br>   
    <strong>Text zpravy</strong> <br>
    <textarea name="zprava" rows="10" cols="30"></textarea> <br>   
    Opište kod: <strong>123</strong> <br>   
    <input type="text" name="kod"> <br>   
    <input type="submit" name="odeslani" value="Odeslat">   
    </form>
Radek9
Profil
puzzle:
V tom scriptu neověřuj tlačítko (submit), ale jedno z těch textových políček (nebo všechny, to je na tobě).
puzzle
Profil
A jak to bude pak vypadat?
takto asi ne co?
if (isset($_POST['kod'])) {
    $meno = $_POST['meno'];
    $zprava = $_POST['zprava'];
    $mail = $_POST['mail'];
    $kod = $_POST['kod'];


nebo ještě mě to napadlo takto..

$odeslani = $_POST['odeslani'];
    $meno = $_POST['meno'];
    $zprava = $_POST['zprava'];
    $mail = $_POST['mail'];
    $kod = $_POST['kod'];
    
    if ($odeslani == "Odeslat") {//zbytek}
Radek9
Profil
puzzle:
takto asi ne co?
Naopak, přesně tak.

nebo ještě mě to napadlo takto..
To by mělo stejný efekt jako předtím.

Jinak, v jakém prohlížeči to zkoušíš?
puzzle
Profil
IE 7

edit: výsledek je stejný jednou se to odešle a podruhé, potřetí nic...

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:

0