Autor Zpráva
margotka
Profil
Ahojte, mám taký malý problém a neviem ako si s ním dať rady...
spravil som malý eshop, ktorý sa skladá zo štyroch (častí) sekcí.
1. časť je sekcia, v ktorej si vyberiem tovar
2. časť je sekcia, v ktorej vyplním údaje do formulára
3. čast, tu sa ukážu vyplnené údaje a vyberie sa možnosť opraviť ich alebo odoslať objednávku
4. časť je posledná, ktorá vypíše, že vaša objednávka bola odoslaná, a odosiela formulár na email.

Všetko funguje tak ako má, ale občas (v pravudelných intervaloch) mi príde prázdny email s objednávkou, nie je tam nič napísane, iba od koho prišiel a prázdny mail. A o niekoľko hodím ešte jedn rovnaký.
Email sa nedá odoslať bez vyplnených údajov, takže na poslednú časť sa bez ich vyplnenia dostanete iba zadaním kompletnej URL do prehliadača. A ak ju do prehliadača zadám, príde mi tento prázdny email, pretože sa potvrdí odoslanie.

Môže to byť sposobené nejakou záloho servera a následným refrešom poslednej stránky, ktorá sa odosiela? dá sa tomu nejak zabrániť?

diky
yFang
Profil
margotka:
A kontroluješ jestli do 4. části přišly údaje ze 3. části?
margotka
Profil
yFang:
jo, mám tam takúto podmienku

<?
        echo(ereg_replace("\n","<br>",$text));
        echo("<br><br><p><strong>Na adresu:</strong></p>");
        echo(ereg_replace("\n","<br>",$udaje_text));

        
        if (@mail("moj@email.com","Objednávka na tovar z eshopu",$text."\n\n".$udaje_text.$zahlavi))
        {
            echo("<br><p><strong>Objednávka bola odoslaná </strong></p>");
        }
        else
        {
            echo("<br><p>Chyba : <strong>Objednávka nebola odoslaná, skontrolujte si správnosť všetkých údajov! </strong></p>");
        }
        ?>
yFang
Profil
margotka:
A kde se berou hodnoty proměnných $text, $udaje_text a $zahlavi?
margotka
Profil
yFang:
sú to hodnoty, ktoré predávajú tovar v košíku do formulára
<?
         
        $text="";
        $row = split(";", $basket);
        for ($i = 0;$i<sizeof($row)-1;$i++)
        {
            $text = $text.$row[$i]."";
        }
        $text = $text." ";

        $udaje_text="";
        $udaje_rw = split(";", $udaje);
        for ($i = 0;$i<sizeof($udaje_rw);$i++)
        {
            $udaje_text = $udaje_text.$udaje_rw[$i]."\n";
        }
        ?>
yFang
Profil
margotka:
Myslím, že by to chtělo přidat ještě podmínku předtím, než vůbec budeš odesílat ten mail a v ní testovat, jestli nejsou proměnné prázdné.

if(!empty($text) && !empty($udaje_text) && !empty($zahlavi))
{
    if (@mail("moj@email.com","Objednávka na tovar z eshopu",$text."\n\n".$udaje_text.$zahlavi))
    {
        ....
margotka
Profil
zabralo, diky moc :)
margotka
Profil
yFang:
ešte taká vec, ak bude celá podmienka vyzerať takto:
if(!empty($text) && !empty($udaje_text) && !empty($zahlavi))
        {
        
        if (@mail("t.masko@gmail.com","Objednávka na tovar z www.nikomi.sk",$text."\n\n".$udaje_text.$zahlavi))
        {
            echo("<br><p><strong>Objednávka bola odoslaná </strong></p>");
        }
        else
        {
            echo("<br><p>Chyba : <strong>Objednávka nebola odoslaná, skontrolujte si správnosť všetkých údajov! </strong></p>");
        }
        }

funguje, že sa prázdny formulár neodošle, ale tým pádom sa mi neodošle email a ani mi nevypíše echo
yFang
Profil
margotka:
Tak ta podmínka kontroluje, jestli proměnné nejsou prázdné. Můžeš si přidat else větev, co chceš aby to udělalo, když je jedna z proměnných prázdná.

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: