

PHP formulář - nedaří se odeslat
Vytvořil jsem tento formulář, který obsah má odesílat na e-mail. Při stisknutí napíše, že je nutné vyplnit všechna, přičemž vyplněná jsou. Kde dělám chybu?
<form action="odeslat.php" method="post">
<p style="text-align:center;">Jméno a příjmení: <input type="text" name="jmeno" size="20" /></p>
<p style="text-align:center;">Požadovaný tvar e-mailu: <input type="text" name="email1" size="15" /><select name="domena" size="1">
<option value="@slapanov.cz">@slapanov.cz</option><option value="@zs.slapanov.cz">@zs.slapanov.cz</option></select></p>
<p style="text-align:center;">Heslo pro přihlášení: <input type="text" name="heslo" size="15" /></p>
<p style="text-align:center;">Jiný (kontaktní) e-mail: <input type="text" name="email2" size="20" value="@" /></p>
<p style="text-align:center;">Poznámky: <textarea name="poznamky" cols="35" rows="5">-</textarea></p>
<p style="text-align:center;">Antispamová ochrana: 10 + 10 = <input type="text" name="spam" size="5" /></p>
<p style="text-align:center;">Příjemce zprávy: <input type="text" name="prijemce" size="42" value="ales@pospichalales.info" readonly="readonly" /></p>
<p style="text-align:center;">Předmět: <input type="text" name="predmet" size="35" value="Založení nové e-mailové schránky" readonly="readonly" /></p>
<p style="text-align:center;"><input type="submit" value="Odeslat" /> <input type="reset" value="Vymazat" /></p>
</form>
<?php
$email2 = $_POST['email2'];
$hlavicka.= "Content-Type: text/plain; charset=\"utf-8\"\n";
$hlavicka.= "Content-Transfer-Encoding: base64\n";
$hlavicka.= "From: $email2\n";
$predmet = $_POST['predmet'];
$jmeno = $_POST['text'];
$email1 = $_POST['text'];
$domena = $_POST['text'];
$heslo = $_POST['text'];
$poznamky = $_POST['text'];
$spam = $_POST['spam'];
$prijemce = $_POST['prijemce'];
$jmeno = Base64_Encode($text);
if ($jmeno!="" and $email1!="" $domena!="" and $email2!="" and $heslo!="" and $poznamky!="" and $prijemce!="" and $spam=="20")
{
Mail($prijemce, $predmet, $jmeno, $email1, $domena, $email2, $heslo, $poznamky, $hlavicka);
echo "<h3>Úspěšně odesláno. Budete přesměrováni na hlavní stránku.</h3>";
}
else
{
echo "<h3>Odeslání se nezdařilo. Pravděpodobně jste nevyplnili všechny údaje, nebo nevíte kolik je 10 + 10. Budete přesměrováni na hlavní stránku.</h3>";
}
?>
WTF? Všechno je $_POST['text']?
Ale problém je tady:
Kde máš definovanou proměnnou $text ?
PS: Pro hledání takovýchto chyb si zapni error_reporting(E_ALL); a napíše ti to i poznámky, třeba Notice: Undefined variable $text in ......
Aha. Pokusím se opravit.
Nedaří se mi to opravit. Pomuzete mi? Myslel jsem si, že to píše, že všechna pole nejsou vyplněna, ale ted to jiz nic neukaze.
Kde si mam zapnout error reporting?
Zapíná se to v php.ini, dej to tam třeba jako poslední řádek:
.
error_reporting = E_ALL
Máš tam někde syntaktickou chybu
Kdyz se jedna o webhosting, tak mam tento soubor vytvorit v rootu? A kam se bude log ukladat?
Do php.ini se nedostaneš. Dej si tam echa, jestli se ti ta proměnná vypíše.
A porovnej s funkčním zprava.zip
Podle mě je problém v tomto
nemělo by to být třeba name té z formuláře?
$jmeno = $_POST['jmeno'];
$email1 = $_POST['email1'];
$domena = $_POST['domena'];
$heslo = $_POST['heslo'];
$poznamky = $_POST['poznamky'];
$spam = $_POST['spam'];
$prijemce = $_POST['prijemce'];
$jmeno = Base64_Encode($jmeno);
a s těmi echy
Vyzkouším.
Upravil jsem to, ale soubor odeslat.php ukazuje stále prázdnou stránku.
Vyzkoušej to mé z ulozto.cz a jen si to ostyluješ.
Bylo to trochu pracnější, ale ten tvůj funguje skvěle. Díky.