Autor Zpráva
Gread
Profil *
Ahoj potřeboval bych poradit mám formulář v PHP který je posílán na email a potřeboval bych poradit jak udělat aby to odeslalo email až když si člověk zkontroluje ty informace které tak zadal moc děkuji za rady
tady jsou soubory
email.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>Odesílání emailu</title>
</head>
<body>
<h1>Odesílání emailu</h1>


<form action="posli.php" method="post">
<input name="email" size="25" value="Váš@mail"><br>
<input name="predmet" size="25" value="Předmět"><br>
<input name="spam" size="25"> <strong>= 1 + 1</strong><br>
<textarea name="zprava" rows="6" cols="55">Zpráva...</textarea><br>
<input type="submit" value="Odeslat">
</form>

</body>
</html>


posli.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>Odesílání emailu</title>
</head>
<body>
<h1>Odesílání emailu</h1>


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

print ("<p>$predmet</p>");
print ("<p>$email</p>");


if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2")
{
Mail("jakub.vlossak@email.cz", $predmet, $zprava, "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 nevíte kolik je 1 + 1.</p>";
}                               
?>


</body>
</html>
pexxxik
Profil
Ahoj tady je kontrola javascriptem, jestli si chtěl toto:
<form action="posli.php" method="post" onsubmit="return kontrola();">
<input name="email" size="25" id="email" value="Váš@mail"><br>
<input name="predmet" size="25" id="predmet" value="Předmět"><br>
<input name="spam" size="25"> <strong>= 1 + 1</strong><br>
<textarea name="zprava" id="zprava" rows="6" cols="55">Zpráva...</textarea><br>
<input type="submit" value="Odeslat">
</form>


<script type="text/javascript">
function kontrola()
	{
		mail = /^.+@.+\..{2,4}$/;
		if(mail.test(document.getElementById("email").value)!=true  || document.getElementById("predmet").value=="" || document.getElementById("zprava").value=="")
			{
				alert("Některé údaje jsou špatě zadány!");
				return false;
			}
	}

</script>


Ale stačí se kouknout na google na na toto fórum najít si kontrola formuláře pomocí javascriptu a vyjede mnoho možností, todle téma bylo zbytečné zakládat!
Gread
Profil *
myslim to tak že v tom posli.php pod tema print bude nejaky tlacitko a jenom po kliknuti to bude pokračovat dále na poslání emailu
denCo
Profil
mohol by si si to ulozit do hidden formulara a jednoducho s tlacitkom submit to odosle na nejaku stranku kde to spracujes
Gread
Profil *
no zkusil bych to kdybych věděl jak na to můžeš mi s tim trochu poradit ?
Gread
Profil *
nebo neexistuje něco jako tlačítko které to stopne a po kliknutí to bude pokračovat ?
pexxxik
Profil
A proč takhle uživatele zdržovat? ale jestli je to nutné, tak udělat další stánku , mezi těmito dvěmi, kde bude formulář a ten bude přenašet hodnoty ve skrytých polích (<input type="hidden" name="predmet" value="<?php echo $_POST['predmet'];?>" />), třeba takto no a odesílací tlačitko...
Gread
Profil *
super takle mi to funkuje jen ještě otazečku nejde nějakym příkazem udělat aby to nezobrazovalo na stránce to místo kde je skrytej formulář aby tam byl ale nebyla tam ta mezera :-D? a ještě když mám funkci
Mail("muj email","predmet", (a sem do textu emailu potřebuju dostat víc proměnejch třeba $jmeno $prijmeni tak jak to mam udělat ), "From: " . $email);
pexxxik
Profil
No ty pole jsou skryté, takže by to nemělo nic zobrazovat, ale tak jestli to máš rohozené použij css.... více proměnných za sebou $jmeno.$prijmeni, ale to by byly hnedka z sebou lepdší je: "Jméno: ".$jmeno."<br />Přijmení: ".$prijmení
Gread
Profil *
super moc děkuju už mi vše funkuje ale furt přicházím na drobné nedostatky :-D třeba jestli jde nějak udělat aby mi to posílalo i diakritiku na email chodí mi to právě bez ní tak co s tím
pexxxik
Profil
problém bude s kódováním, převeď na kódování UTF-8 pak snad vše bude běhat jak má
Gread
Profil *
tak sem tam nastavil UTF-8 a nic když někdo zadá do formuláře nějakou diakritiku tak v emailu není
Gread
Profil *
tedka ještě na to koukám a třeba Ř mi to v pohodě posílá ale když tam je někde Š tak v emailu se nezobrazí
pexxxik
Profil
no jestli to není kódováním, tak nevím... Je nastaveno kódování i v editoru? nestačí přestat jen meta tag (promiň, jestli z tebe dělám troubu, ale jinak nevím)... prostě kontroluj kódování
Gread
Profil *
mám to takle už fakt nevim co s tim v PSpadu jsem změnil kodování a v meta taky

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset="UTF-8">
<title>Odesílání emailu</title>
</head>
<body>
<h1>Odesílání emailu</h1>

<?
$jmeno = $_POST['jmeno'];
$prijmeni = $_POST['prijmeni'];
$ulice = $_POST['ulice'];
$mesto = $_POST['mesto'];
$psc = $_POST['psc'];
$email = $_POST['email'];
$spam = $_POST['spam'];


if ($jmeno!="" and $prijmeni!="" and $ulice!="" and $mesto!="" and $psc!="" and $email!="" and $spam=="2")
{
Mail("jakub.vlossak@email.cz","objednavka","
$jmeno
$prijmeni
$ulice
$mesto
$psc
$email
", "From: " . $email);
Mail( $email,"objednávka","vaše objednávka byla přijata", "From: " ."info@solarsunrings.cz");
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 nevíte kolik je 1 + 1.</p>";
}
?>

</body>
</html>
pexxxik
Profil
V meta tagu ke změně kódování máš navíc uvozovky, mělo by to vypadat takto:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Odesílání emailu</title>
</head>
<body>
<h1>Odesílání emailu</h1>

<?
$jmeno = $_POST['jmeno'];
$prijmeni = $_POST['prijmeni'];
$ulice = $_POST['ulice'];
$mesto = $_POST['mesto'];
$psc = $_POST['psc'];
$email = $_POST['email'];
$spam = $_POST['spam'];


if ($jmeno!="" and $prijmeni!="" and $ulice!="" and $mesto!="" and $psc!="" and $email!="" and $spam=="2")
{
Mail("jakub.vlossak@email.cz","objednavka","
$jmeno
$prijmeni
$ulice
$mesto
$psc
$email
", "From: " . $email);
Mail( $email,"objednávka","vaše objednávka byla přijata", "From: " ."info@solarsunrings.cz");
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 nevíte kolik je 1 + 1.</p>";
}
?>

</body>
</html>
Gread
Profil *
tak sem to upravil a nic furt to samé je to zatim na www.solarsunrings.cz/test/email.php tam se na to dá kouknout a už to nezobrazuje diakritiku ani na webu
Gread
Profil *
když dám kodování UTF-8 tak to nezobrazuje diakritiku ani na webu a kdyz dám windows-1250 tak to na webu normálně funkuje jenom není diakritika v e-mailech
pexxxik
Profil
Tak je někde zásek v kódování, nevím kde, ale musíš zkoušet... UTF-8 je obecné kódování, takže se používá při posílání emailů, při komunikaci s jinými servery, atp.... Když změníš kódování v pspadu musíš tak učinit se všemy soubory a poté je uložit (dole zhruba uprostřed máš napsáno v jakém kódování se ti soubor ukládá), jestli to děláš, tak nevím, v čem je chyba...

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