Autor | Zpráva | ||
---|---|---|---|
akali Profil * |
#1 · Zasláno: 9. 9. 2010, 17:44:25
Ahoj, ze stránka se mi na druhou neodesílá formulář
Stránka formular_control.php 1<form action="../informace.php" method="POST" id="odeslano_control"> <form action="../informace.php" method="POST" id="odeslano_control"> <input type="hidden" name="odeslano" value="1"> <label>Vaše křestní jméno</label><br> <input disabled name="jmeno" size="25" value="<?php echo $_POST['jmeno'];?>"><br> <label>Vaše příjmení</label><br> <input disabled name="prijmeni" size="25" value="<?php echo $_POST['prijmeni'];?>"><br> <label>Vaše e-mailová schránka</label><br> <input disabled name="email" size="25" value="<?php echo $_POST['email'];?>"><br> <label>Město</label><br> <input disabled name="mesto" size="25" value="<?php echo $_POST['mesto'];?>"><br> <label>Ulice a číslo popisné</label><br> <input disabled name="ulice" size="25" value="<?php echo $_POST['ulice'];?>"><br> <label>PSČ</label><br> <input disabled name="psc" size="25" value="<?php echo $_POST['psc'];?>"><br> <label>Telefonní číslo</label><br> <input disabled name="telefon" size="25" value="<?php echo $_POST['telefon'];?>"<br> <input type="submit" value="Závazná objednávka" name="odeslano_control"> </form> A informace.php 1 if ($_POST['zprava']="Při vyplnění poznámky se neprodlouží doba zpracování žádosti Vaší objednávky."){ if ($_POST['zprava']="Při vyplnění poznámky se neprodlouží doba zpracování žádosti Vaší objednávky."){
$_POST['zprava'] = ""; }
$zprava = htmlspecialchars($_POST['zprava']);
$zprava .= "\n\n Jméno:".htmlspecialchars($_POST['jmeno']);
$zprava .= "\n Příjmení:".htmlspecialchars($_POST['prijmeni']);
$zprava .= "\n e-mail:".htmlspecialchars($_POST['email']);
$zprava .= "\n ulice a čp:".htmlspecialchars($_POST['ulice']);
$zprava .= "\n PSČ:".htmlspecialchars($_POST['psc']);
$zprava .= "\n Telefonní číslo:".htmlspecialchars($_POST['telefon']);
$zprava .= "\n Žádám o zboží na stránce:".htmlspecialchars($html);
A když si zde vypíšu $zprava tak se mi ty proměný prostě nezobrazí.. Kouknul by na to nějaký odborník? |
||
panther Profil |
#2 · Zasláno: 9. 9. 2010, 18:04:53
akali:
formulář se odesílá, jen disabled pole nejsou v proměnné $_POST, uvidíš, když si POST dumpneš. Jen tak na okraj, je hezké, že používáš <label>, ale zde úplně zbytečně. Aby tento tag plnil svou funkci, musí mít atribut „for“ shodný i ID elementu, ke kterému patří. |
||
PostCC Profil |
#3 · Zasláno: 9. 9. 2010, 18:06:17
akali:
Za prvé - v tom formuláři nikde nevidím pole s atributem name="zprava". Za druhé - konstrukce: $_POST['zprava']="Při vyplnění poznámky se neprodlouží doba zpracování žádosti Vaší objednávky." $_POST['zprava']="Při vyplnění poznámky se neprodlouží doba zpracování žádosti Vaší objednávky." je pravda vždy, tudíž se pokaždé provede podmínka, jejím výsledkem je vymazání obsahu proměnné. Zřejmě hledáte operátor porovnávání místo přiřazení - "==". |
||
akali Profil * |
#4 · Zasláno: 9. 9. 2010, 18:16:12
Panther: Nechápu, co tedy mám udělat aby se to odesílalo? Možná na mě mluvíš moc odborně?
PostCC: Tu podmínku nechci odesílat mailem, když se rovná původnímu value. Takže když to uživatel přepíše, tak se to normálně odešle, ne? Atribut name zprava tam není, protože ji uživatel vyplňuje krok předem |
||
panther Profil |
#5 · Zasláno: 9. 9. 2010, 18:21:43 · Upravil/a: panther
akali:
„Možná na mě mluvíš moc odborně?“ odborně? To snad ne :-) Odstraň atribut „disabled“ od všech inputů. S tímto atributem se neodešlou. Zkus si udělat samostatnou stránku, kde bude jeden input disabled a druhý tento atribut mít nebude. Když si dáš var_dump($_POST), uvidíš, že se ti odešlou jen ty inputy, které nejsou disabled. Zkus si následující: 1<form method=post> <form method=post>
<input type=text name=prvni value=obsah>
<input type=text name=druhy disabled value=obsah>
<input type=submit value=odeslat name=submit>
</form>
<?php
if (isset($_POST['submit'])
var_dump($_POST); //zde bude $_POST['prvni'] = 'obsah' a $_POST['submit'] = 'odeslat', $_POST['druhy'] zde nebude.
?> „Takže když to uživatel přepíše, tak se to normálně odešle, ne?“ ne. V podmínce, když porovnáváš, se používají 2 rovnítka. Jedním se přiřazuje hodnota, if($promenna = 'hodnota') je pravda vždy. if ($promenna == 'hodnota') je pravda pouze v případě, že hodnota proměnné $promenna je skutečně hodnota. |
||
Darker Profil |
#6 · Zasláno: 9. 9. 2010, 18:25:03
Za 1.:
Zrušte disabled u políček, aby se odeslala. object.disabled=false; object.disabled=false; A nebo ho tam vůbec nepište. Za 2.: Přidejte do formuláře políčko se jménem zpráva a hodnotou "Při vyplnění poznámky se neprodlouží doba zpracování žádosti Vaší objednávky." Za 3.: Podmínku v php nahraďte: if ($_POST['zprava']=="Při vyplnění poznámky se neprodlouží doba zpracování žádosti Vaší objednávky."){ if ($_POST['zprava']=="Při vyplnění poznámky se neprodlouží doba zpracování žádosti Vaší objednávky."){
$_POST['zprava'] = ""; } Za 4.: Doporučuju následně kontrolovat zda uživatel pole změnil jinak, než tak jak je uvedeno výše. Zdar |
||
akali Profil * |
#7 · Zasláno: 9. 9. 2010, 18:33:53
Aha, takže mám použít 2 rovnítka?
$_POST['zprava']=="Při vyplnění poznámky se neprodlouží doba zpracování žádosti Vaší objednávky." $_POST['zprava']=="Při vyplnění poznámky se neprodlouží doba zpracování žádosti Vaší objednávky." Vyřešil jsem jeden problém, ale mail se mi pořád neodesílá:( Údaje se na web vypíší, ale mail neodejde. Prosím, kouknul by jste mi na to ještě? 1 <?php <?php
if (isset($_POST['odeslano_control'])){ /*formulář -> <form action="../informace.php" method="POST" id="odeslano_control">*/
echo 'Vaše objednávka byla přijata! Nyní by Vám měl přijít e-mail se všemi informacemi o objednávce!';
if ($_POST['zprava']="Při vyplnění poznámky se neprodlouží doba zpracování žádosti Vaší objednávky."){
$_POST['zprava'] = ""; }
$zprava = htmlspecialchars($_POST['zprava']);
$zprava .= "\n\n Jméno:".htmlspecialchars($_POST['jmeno']);
$zprava .= "\n Příjmení:".htmlspecialchars($_POST['prijmeni']);
$zprava .= "\n e-mail:".htmlspecialchars($_POST['email']);
$zprava .= "\n ulice a čp:".htmlspecialchars($_POST['ulice']);
$zprava .= "\n PSČ:".htmlspecialchars($_POST['psc']);
$zprava .= "\n Telefonní číslo:".htmlspecialchars($_POST['telefon']);
$zprava .= "\n Žádám o zboží na stránce:".htmlspecialchars($html);
echo "$zprava";
// předmět s diakritikou
$encodedsubject = base64_encode ("Objednávka");
$predmet = "=?utf-8?B?$encodedsubject?=";
//nastavení mailu
$headers = "MIME-Version: 1.0\r\n";
$headers.= "Content-Type: text/plain; charset=UTF-8\r\n";
$headers.= "Content-Transfer-Encoding: 8bit\r\n";
$headers.= "From: $email\r\n";
Mail("kittlerpeta@centrum.cz", $predmet, $zprava, $headers);
$zprava_p = "Potvrzujeme objednávku";
$_POST['email'] = $email;
$encodedsubject = base64_encode ("Potvrzení objednávky");
$predmet_p = "=?utf-8?B?$encodedsubject?=";
$headers_p = "MIME-Version: 1.0\r\n";
$headers_p.= "Content-Type: text/plain; charset=UTF-8\r\n";
$headers_p.= "Content-Transfer-Encoding: 8bit\r\n";
$headers_p.= "From: $email\r\n";
Mail("$email", $predmet_p, $zprava_p, $headers_p);
}
else
echo 'Vrať se zpět a vyplň všechny potřebné údaje';
?> |
||
panther Profil |
#8 · Zasláno: 9. 9. 2010, 18:37:45
akali:
„ale mail se mi pořád neodesílá:(“ 1. máš tam pořád jen jedno rovnítko 2. jdi po jednotlivých podmínkách, kde se ti to zasekává. Za každou si dej nějaké echo, podle toho poznáš, kam script dojde a kam už ne. Tohle je běžný postup, zkus si na chybu přijít sám (alespoň ji lokalizuj, na jakém je řádku). |
||
akali Profil * |
#9 · Zasláno: 9. 9. 2010, 19:26:06
Super, díky Panther.. Opět si mi pomohl.
Sice mi to chvilku trvalo, ale nějak jsem to skloubil do sebe! ;) |
||
Časová prodleva: 5 let
|
|||
cubase Profil |
Dobrý den. Už nevím co mám dělat a potřeboval bych nějakého znalce s radou o pomoc. Neodesílá mi kontaktní formulář.
Kod formuláře vypadá takto: 1<form action="send.php" method="post"> <form action="send.php" method="post">
<div class="kText">Jméno:</div>
<div class="kInput"><input id="kJmeno" name="jmeno" accesskey="j" type="text" size="30" /></div>
<br />
<div class="kText">Email:</div>
<div class="kInput"><input id="kEmail" name="email" accesskey="e" type="text" size="30" /></div>
<br />
<div class="kText">Text:</div><div class="kInput">
<textarea id="kText" name="text" accesskey="t" rows="10" cols="60"></textarea></div>
<br />
<input type="submit" class="kBut" value="Odeslat"/>
</form> A já bych potřeboval od nějakého experta na toto pomoct s odesílacím send.php aby to fungovalo. Je to obyčejný formulář a za každou radu budu moc vděčný. Je těžké ho zprovoznit? Napsat kod? Snadmi někdo poradí - něž urazí :-( Děkuju |
||
lionel messi Profil |
#11 · Zasláno: 17. 9. 2015, 12:28:52
cubase:
„A já bych potřeboval od nějakého experta na toto pomoct s odesílacím send.php aby to fungovalo.“ Čo máš v send.php? Skúšal si hľadať? Podobných vláken na tomto fóre, ale i po celom internete nájdeš plno aj s hotovými riešeniami. |
||
cubase Profil |
Hledal ale nic funkčního se mi nepodařilo nalézt. Už se mi to odesílalo, ale chodil prázdný email a pak už zase nic :-(
za každou radu a pomoc jsem moc vděčný. V send.php je toto. 1<?php <?php
header("Content-Type: text/html; charset=utf-8");
$to = "nejaky@mail.cz";
$extra = "From: $email\r\nReply-To: $email\r\n";
$subject = "Kontakt od ".$jmeno."";
$mess = "Jméno: ".$jmeno."\nEmail: ".$email."\nText:\n".$text."";
mb_language('Neutral');
mb_internal_encoding("UTF-8");
mb_http_input("UTF-8");
mb_http_output("UTF-8");
if($jmeno==""||$text==""||ereg("^.+@.+\\..+$", $email)==false){
echo "<script>alert('Špatně zadané údaje, zkuste to prosím znovu.');</script>";
} else{
$succes = mb_send_mail($to, $subject, $mess, $extra);
if($succes){
echo "<script>alert('Zpráva byla úspěšně odeslána, děkujeme.');</script>";
}else{
echo "<script>alert('Nastala chyba, zkuste nás kontaktovat na e-mail: nejaky@mail.cz');</script>"; } }
print "<meta http-equiv=\"refresh\" content=\"0;URL=send.php\">";
exit();
?> Moderátor juriad: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na
![]() |
||
cubase Profil |
Asi jsem absolutní neznalec :-( jeden už jsem kdysi zprovoznil, ale tento ne. Už to pomalu a jistě vzdávám. I tak děkuji
|
||
Časová prodleva: 9 let
|
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.
Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:
Běda vám, jestli to bude blábol.
0