Autor Zpráva
kolemjdoucí
Profil *
ahojte, už asi hodunu tu dumám nad tím, kde je ve skriptu chyba, a absolutně netuším, mohli byste prosím poradit? díky :)

<?php
function autoUTF($s)
{
    if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s)) // detect UTF-8
    {
        return $s;
    }
    elseif (preg_match('#[\x7F-\x9F\xBC]#', $s)) // detect WINDOWS-1250
    {
        return iconv('WINDOWS-1250', 'UTF-8', $s);
    }
    else // assume ISO-8859-2
    {
        return iconv('ISO-8859-2', 'UTF-8', $s);
    }
}
 
function cs_mail($to, $predmet, $zprava, $head = "")
{
    $predmet = "=?utf-8?B?".base64_encode(autoUTF($predmet))."?=";
    $head .= "\nMIME-Version: 1.0\r\n";
    $head .= "Content-Type: text/plain; charset=\"utf-8\"\r\n";
    $head .= "Content-Transfer-Encoding: base64\r\n";
    $zprava = base64_encode(autoUTF($zprava));
    return mail($to, $predmet, $zprava, $head);
}
 
$jmeno = $_POST['jmeno'];
$email = $_POST['email'];
$telefon = $_POST['telefon'];
$text = $_POST['text'];
$spam = $_POST['spam'];
 
if ($jmeno!="" and $email!="" and $telefon!="" and $text!="" and $spam!="2")
{
cs_mail("67953@seznam.cz", "Zpráva z webu", "$jmeno $email $telefon\n$text", "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.</p>";
} 
?>
Taps
Profil
kolemjdoucí:
a jaká chyba se ti zobrazuje?
kolemjdoucí
Profil *
jen tohle.. Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje.


jak tam mám nasatavit, aby se zobrazila chyba? :)


tak jinak, hodil jsem tam zapnutí php chybovek a nepíše to žádnou chybu, jen, že se to nepodařilo odeslat, protože bla bla bla :)
Igor Počta
Profil *
Ta tvoje chyba se tam napíše tehdy, když některá hodnota z formuláře zůstane prázdná. Taková validace formuláře...

Na druhou stranu ti tam chybí i ověření, zda li se mail odeslal, ačkoliv ta funkce cs_mail ti tu hodnotu navrací.
kolemjdoucí
Profil *
jenže všechny údaji ve formuláři jsou zaplněny :) email se neodeslal, protože mi nepřišel na mail, nebo má mega zpoždení :-D
Davex
Profil
kolemjdoucí:
jenže všechny údaji ve formuláři jsou zaplněny
To je možné, ale neznamená to, že se skriptu předávají údaje, které se v něm očekávají. Pokud se vypíše chyba o neodeslání, tak není logicky splněna podmínka na řádku č. 34. Zkus najít příčinu, proč není splněna.
Igor Počta
Profil *
Pošli ještě HTML kód toho formuláře :-) Máš tam <form action="POST" ... ?
lionel messi
Profil
Igor Počta:
Máš tam <form action="POST" ... ?
Snáď <form method="post".
Igor Počta
Profil *
lionel messi:
Máš pravdu :-) Chybka se vloudila :-)
kolemjdoucí
Profil *
zdravím vás, přikládám kód formuláře:
<form action="odesli.php" method="post">
<input name="jmeno" size="25" value="Vaše jméno"><br>
<input name="email" size="25" value="Váš email"><br>
<input name="telefon" size="25" value="Telefonní číslo"><br>
<input name="spam" size="25"> <strong>= 1 + 1</strong><br>
<textarea name="text" rows="6" cols="55">Zpráva</textarea><br>
<input type="submit" value="Odeslat">
</form>
Davex:
to chápu, že ta podmínka není splněna, jenže absolutně netuším, jak to napravit, když v k´du formuláře jsou všechny proměnné správně, ve skriptu také, ale i přes to to píše, že ne vše je zaplněno ...
Davex
Profil
kolemjdoucí:
Pokud jsou údaje správně a podmínka není splněna, tak je chyba v podmínce. Pokud nevíš která část je špatně, tak si otestuj jednotlivé části výrazu v podmínce samostatně.

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: