Stránka 1 z 2

Jak zprovoznit kontaktní formulář?

Napsal: 01 úno 2011 20:21
od Michales1
Hezký večer

Chtěl bych se zeptat jestli mi někdo poradí ohledně kontaktního formuláře.

Udělal jsem si tento formulář http://test.monter-michal.cz/contact-us.html ale vůbec nevím jak ho sprovoznit:-(
Poradí někdo

Re: Jak zprovoznit kontaktní formulář?

Napsal: 01 úno 2011 20:33
od Unholy

Kód: Vybrat vše

<form id="contacts-form" action="" method="post">

V action musí být cesta ke skriptu, (já používám php) který nabere ty proměné z formuláře a pošlě je na-email skrz poštovní server. (z toho vyplývá že musí být na hostingu dostupný...) Ty to máš prázdné.

Nějak takto třeba:

Kód: Vybrat vše

<form id="contacts-form" action="send_mail.php" method="post">

Šablony na to phpčko se dají najít na netu, ale musíš se v tom trochu vyznat abys to zvládl upravit.

EDIT: inspiraci najdeš třeba tady
http://programujte.com/?akce=clanek&cl= ... i-formular
nebo
http://www.jakpsatweb.cz/formular-mail.html

Re: Jak zprovoznit kontaktní formulář?

Napsal: 01 úno 2011 23:10
od Stene
Unholy: Pokud je action prázdný, script se zpracovává na stránce, ze který je čtenej kód. Takže nevidím důvod proč by mu to nemělo fungovat.

Michales1: Máš už zpracovaný nějaký script, který by se staral o data z formuláře? Kdyžtak koukni po netu na funkci Mail()
Pokud nepochodíš tak se ještě ozvi a něco dáme do kupy ;)

Re: Jak zprovoznit kontaktní formulář?

Napsal: 02 úno 2011 11:33
od Michales1
Ahoj a díky.

Použil jsem tento script:
<?php

$to = "michal@monter-michal.cz";
$extra = "From: $email\r\nReply-To: $email\r\n";
$subject = "Vzkaz od ".$jmeno."";
$mess = "Jméno: ".$jmeno."\nPrijmeni:".$prijmeni."\nEmail: ".$email." \n";

mail ($to, $subject, $mess, $extra);

?>
<html><head>
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=http://xxx.monter-michal.cz/contact-us.html">
</head></html>


Formulář funguje odesílá ale příde mi na mail jen prázdná zpráva ve které je jenom:
Jméno:
Prijmeni:
Email:

Takhle to přijde prázdný.

Re: Jak zprovoznit kontaktní formulář?

Napsal: 02 úno 2011 11:58
od Stene
Já se ani nedivím, když nikde nenastavuješ tvé proměnné. Co ti vypíše $jmeno? Nic, že?
Nemělo by tam být spíš $_POST['jmeno'] nebo $_GET['jmeno'] ?

Re: Jak zprovoznit kontaktní formulář?

Napsal: 02 úno 2011 12:32
od Michales1
Sry ale teď to nějak nechápu :D

Re: Jak zprovoznit kontaktní formulář?

Napsal: 02 úno 2011 16:06
od Unholy
Stene píše:Unholy: Pokud je action prázdný, script se zpracovává na stránce, ze který je čtenej kód. Takže nevidím důvod proč by mu to nemělo fungovat.


Aha, moje chyba... V takových případech se vždycky odvolávám na externí scripty, a jak jsem viděl ten action prázdný tak jsem zbytek kódu neprocházel. Dík za opravu :)

Re: Jak zprovoznit kontaktní formulář?

Napsal: 02 úno 2011 16:34
od Michales1
Stene píše:Já se ani nedivím, když nikde nenastavuješ tvé proměnné. Co ti vypíše $jmeno? Nic, že?
Nemělo by tam být spíš $_POST['jmeno'] nebo $_GET['jmeno'] ?


Tak jsem udělal další script ale je to uplně stejné.Jak a co tam mám zadat pls poraď?
<?php
$jeho_jmeno = $_POST['jeho_jmeno'];
// if ($promenna =="") echo "$promenna autor je prazdna!<br>";

$jeho_mejl = $_POST['jeho_mejl'];
// if ($promenna =="") echo "$promenna autor je prazdna!<br>";

$jeho_predmet = $_POST['jeho_predmet'];
// if ($promenna =="") echo "$promenna autor je prazdna!<br>";

$jeho_text = $_POST['jeho_text'];
// if ($promenna =="") echo "$promenna autor je prazdna!<br>";
$jeho_text = Str_Replace("\n","<br>",$jeho_text);

?>


<?
$ref = $REMOTE_ADDR;
?>
<?
$datum = date ("j. m. Y G:i");
?>
<?
$hlavicka="From:$jeho_mejl\n";
$hlavicka.="Content-Type: text/html; charset=windows-1250\n";



$emailadr = "michal@monter-michal.cz"; //Vaše e-mailová adresa
$predmet = "ze_stranky_Montér-Michal"; //Předmět zprávy
$zprava = "<html>
<head>
<title>HTML MAIL</title>
</head>
<body bgcolor=#ffffff text=black>";
$zprava .= "\r\n<br>;".$datum.";\r\n<br>";
$zprava .= "<font color=maroon><b>IP </b></font>;".$ref.";\r\n<br>\r\n<br>\r\n<br>";
$zprava .= "<font size=+1 color=maroon><b>Zpráva ze stránky</b></font>\r\n<br>\r\n<br>";
$zprava .= "<font color=maroon><b>Jméno:</b> </font>\r\n<br>".$jeho_jmeno."\r\n<br>\r\n<br>";
$zprava .= "<font color=maroon><b>e-mail:</b> </font>\r\n<br>".$jeho_mejl."\r\n<br>\r\n<br>";
$zprava .= "<font color=maroon><b>Předmět:</b> </font>\r\n<br>".$jeho_predmet."\r\n<br>\r\n<br>";
$zprava .= "<font color=maroon><b>Text:</b> </font>\r\n<br>".$jeho_text."\r\n<br>\r\n<br>";
?>



<? if (Mail("$emailadr", "$predmet", "$zprava", $hlavicka)) { ?>


<?//== Zde si můžete napsat text, který se zobrazí pro potvrzení odeslání ==?>


<center>
<p>&nbsp;</p>
<p>&nbsp;</p>
<font color="maroon">
<h3>Zpráva byla úspěšně odeslána</h3>





</center>


<?//==================== Zde končí potvrzení odeslání ================?>
<? }
else
{
echo "Zprávu se nepodařilo odeslat";
}
?>
</font>
</body>
</html>

Re: Jak zprovoznit kontaktní formulář?

Napsal: 02 úno 2011 21:13
od CZechBoY
formulář má jaký inputboxy? musíš mít stejný názvy těch políček (name="nazev" v případě metody POST nalezneš při odeslání formuláře v PHP: $_POST['nazev']

Re: Jak zprovoznit kontaktní formulář?

Napsal: 02 úno 2011 23:39
od Stene
Nesháněl bych pořád jiné kódy. Všechny jsou stejně funkční, ale je potřeba si tam dodělat vždy pár úprav. Dejme tomu, že budeme mít tohle html

Všimni si, že action je prázdný. Proto musí být html formulář i php script na jedné a té samé stránce!
<form action="" 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>


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

if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2") // Pokud není políčko předmět, mail, zprava prázné a spam se rovná (==) 2, pokračuj v kódu
{
Mail("vase@adresa.com", $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>";
}
?>



Je už všechno jasný? Nevím sice, jestli to bude fungovat, protože jsem to nezkoušel, ale mělo by. Je sice už pozdě, ale snad tam chyba není.






Unholy píše:
Stene píše:Unholy: Pokud je action prázdný, script se zpracovává na stránce, ze který je čtenej kód. Takže nevidím důvod proč by mu to nemělo fungovat.


AV takových případech se vždycky odvolávám na externí scripty


Jojo, já jsem zase zvyklej si to zpracovávat v jednom souboru. Až zjistím, že je to nepřehledný tak to hodím do jinýho souboru.

Re: Jak zprovoznit kontaktní formulář?

Napsal: 03 úno 2011 10:13
od Michales1
Díky už mi to funguje,Jste chlapáci :D :D

Re: Jak zprovoznit kontaktní formulář?

Napsal: 03 úno 2011 10:38
od Stene
Jde o to, co jsi zprovoznil. Pokud si to dělal poprvé, chtělo by to chvilku brouzdat po internetu a něco si přečíst o tom, jak to všechno funguje.