Stránka 1 z 2

Emailový [php] formulář podle požadavků

Napsal: ned 1. čer 2008, 13:42
od simpanc
Ahojte všici, byl bych moc rád, kdyby mi někdo (po)mohl vytvořit následující... (formuláře s php neumím :o )

Potřebuji v php formulář na odesílání emailů. Něco jako známý blueboard. Ale na mé stránce a abych si to mohl později ,až to budu umět, dodělat podle sebe...
Chci tam:
:-D Skrytý objekt předmětu - pěvně daný a anebo dále volitelný z nabídky
:wink: Volitelné pole - email a jméno
:lol: a nakonec hlavně textové pole
to všechno malý, asi 400x150

Měl bych to na hostingu wztka, nebude tu problém s max xpočtem odeslaných emailů?
Můžu vás napsat na seznam spolupracovníků :wink:

//vím že už tu něco takovýho je, ale ne takhle komplexně a však si zkuste v tomhle dementní hledání vyhledat třeba "php emailový formulář"

Předem moc díky :mrgreen:

Napsal: ned 1. čer 2008, 13:48
od bubanek
via google nalezeno za 2 vteřiny

Kód: Vybrat vše

<-- formular.php -->

<head>
<title>mailform</title>
</head>

<body>
<table height="100%" width="100%" cellSpacing="0" cellPadding="0" border="0">
<tr><td align="center" valign="top">
<form action="send.php" method="post">
<table width="200" border="0" class="text">
<tr><td width="50"><b>J</b>méno :</td><td><input name="jmeno" accesskey="j" type="text"></td></tr>
<tr><td width="50"><b>E</b>mail :</td><td><input name="email" accesskey="e" type="text"></td></tr>
<tr><td width="50"><b>W</b>eb :</td><td><input name="web" accesskey="w"  type="text" value="http://"></td></tr>
<tr><td width="50" valign="top"><b>T</b>ext :</td><td><textarea name="text" accesskey="t"  rows="5" cols="25"></textarea></td></tr>
<tr><td colspan="2" align="center"><input type="submit" class="button" value="Odeslat"> &nbsp; <input type="reset" value="Vymazat"></td></tr>
</form></table>
</td></tr></table>
</BODY></HTML>


<-- send.php -->

<?php

$to = "vas@email.cz";
$extra = "From: $email\r\nReply-To: $email\r\n";
$subject = "Vzkaz od ".$jmeno."";
$mess = "Jméno: ".$jmeno."\nEmail: ".$email."\n Web: ".$web."\nText:\n".$text."";

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

?>
<html><head>
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=formular.php">
</head></html>
//jo a jestli se ti nelíbí místní hledání, tak taky můžeš použít google :wink:

Napsal: ned 1. čer 2008, 14:27
od simpanc
díky za rychloiu odpověď email funguje, ještě s tím předmětem, volení z nabídky :D - to nemusí pokud je to složitý
a hlavně aby jméno, email nebyly povinné - phpéčkem že :razz:

Napsal: ned 1. čer 2008, 15:01
od Caderom
Zkus tohle

Kód: Vybrat vše

<?php

$jmeno=$_POST["jmeno"];
$email=$_POST["email"];
$web=$_POST["web"];
$subject=$_POST["subject"];
$text=$_POST["text"];
$odeslat=$_POST["odeslat"];

if($odeslat)
{
  if($text!="")
  {
    $to = "vas@email.cz";
    $extra = "From: $email\r\nReply-To: $email\r\n";
    $mess = "Jméno: ".$jmeno."\nEmail: ".$email."\n Web: ".$web."\nText:\n".$text."";

    mail ($to, $subject, $mess, $extra);
  }
  else
  {
    $error="Nevyplněný text";
  }
}
?>
<html>
<head>
<title>mailform</title>
</head>

<body>
<table height="100%" width="100%" cellSpacing="0" cellPadding="0" border="0">
<tr><td align="center" valign="top">
<form method="post">
<? echo $error; ?>
<table width="200" border="0" class="text">
<tr><td width="50"><b>J</b>méno :</td><td><input name="jmeno" accesskey="j" type="text"></td></tr>
<tr><td width="50"><b>E</b>mail :</td><td><input name="email" accesskey="e" type="text"></td></tr>
<tr><td width="50"><b>W</b>eb :</td><td><input name="web" accesskey="w"  type="text" value="http://"></td></tr>
<tr><td width="50"><b>P</b>ředmět :</td><td><select name="subject" accesskey="s">
    <option value="Objednavka">Objednávka</option>
    <option value="Nabidka">Nabídka</option>
  </select></td></tr>
<tr><td width="50" valign="top"><b>T</b>ext :</td><td><textarea name="text" accesskey="t" rows="5" cols="25"></textarea></td></tr>
<tr><td colspan="2" align="center"><input type="submit" name="odeslat" class="button" value="Odeslat"> &nbsp; <input type="reset" value="Vymazat"></td></tr>
</form></table>
</td></tr></table>
</body>
</html> 

Napsal: ned 1. čer 2008, 19:26
od simpanc
dik.. podívám se

ještě, že to chcu mít na několika stránek, takže formular.php není použitelný s refresh stránkou (+s užitím include) , chceto něco na to potvrzeni, ze to prislo viz první příspěvek send.php [<META HTTP-EQUIV="Refresh" CONTENT="0; URL=formular.php">] třeba javascriptem aby formular mohl být include .... trochu zmateny ja vim to upravim az se nebudu motat :wink:

Napsal: ned 8. čer 2008, 15:05
od simpanc
takto vypadá součastný kód
formular.php s tím že se použije na několika stránkách pomocí include

Kód: Vybrat vše

<p><b>Kontaktní formulář:</b><br />
<div class="formular">
<form action="../../send.php" method="post" /> 
<b>Jméno</b>:<input name="jmeno" accesskey="j" type="text" />
<b>Email</b>:<input name="email" accesskey="e" type="text" /><br />
<b>Předmět</b>:<input name="subject" accesskey="s" type="text" value="<?php print "$hodnota"; ?>" /><br />
<input type="submit" class="odeslat" value="Odeslat" valign="right" /> 

<fieldset class="fomrtext"><legend class="legendtext"><b>Text zprávy</b></legend><textarea name="text" accesskey="t"  rows="4" cols="43"></textarea></fieldset>
</div>
send.php

Kód: Vybrat vše

 
<?php 

$to = "vas@email.cz"; 
$extra = "From: $email\r\nReply-To: $email\r\n"; 
$subject = "Vzkaz od ".$jmeno.""; 
$mess = "Jméno: ".$jmeno."\nEmail: ".$email."\n Web: ".$web."\nText:\n".$text.""; 

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

?> 
<html><head> 
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=formular.php"> 
</head></html>
[color=black]//toto za php kódem tam nechci, refresh není použitelný s URL, max referer nebo nevím ale hlavně bych chtěl naby se do TEXTAREA napsalo odesláno s vlastním spanem.[/color]

díky za nabídku tu užiju ale teď budu potřebovat něco jiného. Chtěl bych aby v předmětu byl jeden krátký neviditelný text, podle hodnoty proměnné, dále viditelný text podle proměnné, který by nešel smazat + s mezerou a místo na vlastní předmět ,)

Nutně :razz: potřebuju aby byl danej text v TEXTAREA a po kliknutí zmizel... ale k tomu bude asi potřeba javascript, no nevím :o


A ještě chci, aby se po napsání napsalo v text area Úspěšně odesláno - spanem: <span class="odeslano">
Díky moc všem i za část, v tomto se zatím motám. :wink:
[/code]

Napsal: ned 8. čer 2008, 15:58
od martin.ol

Kód: Vybrat vše

$subject = $promena1." ".$promena2." ".$promena3; 
Tolik k předmětu...

Kód: Vybrat vše

<textarea onclick="this.value=''">Danej Text</textarea>
Bych tip :-) A nebo možná this.text?

Napsal: ned 8. čer 2008, 16:33
od bubanek
spíš .innerhtml

Napsal: ned 8. čer 2008, 17:22
od OndraSter
Problem bude, pokud napise text, klikne nekam jinam, pak si tam vsimne chyby a bude to prepisovat nanovo ;)

<textarea onclick="if ( this.innerHTML == 'Danej Text' ) this.innerHTML='';">Danej Text</textarea>

Napsal: úte 10. čer 2008, 21:22
od simpanc
aha to jsem chtěl použít na "hlášku" u emailu a jména, že to nemusí vyplňovat, né u pole zprávy, špatně napsané :)
martin.ol píše:

Kód: Vybrat vše

$subject = $promena1." ".$promena2." ".$promena3; 
Tolik k předmětu...
Hmm, dík já ale chtěl aby
v předmětu byl jeden krátký neviditelný (hidden) text, podle hodnoty proměnné, dále viditelný text podle proměnné, který by nešel smazat s mezerou a [-] a pak text který by tam tam někdo dopsal
:)

A pořád ještě chci, aby se po napsání napsalo v text area Úspěšně odesláno stylované spanem - třeba <span class="odeslano">

Napsal: stř 11. čer 2008, 11:57
od bubanek
do textarea spanem nic nenapíšeš

Napsal: stř 11. čer 2008, 13:27
od 1nfo
To co tu vsichni posilate za reseni neni nic moc, zadny kodovani , temer zadny hlavicky v emailu, to teda moc dobra rada neni. Pokud mi pujde vecer uz net, tak ti poslu o neco lepsi priklad.

Napsal: stř 11. čer 2008, 16:49
od martin.ol

Kód: Vybrat vše

<?php
function send_mail_form($text, $to, $from, $subject)
{
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset=iso-8859-2\n";
$headers .= "X-Priority: 3\n";
$headers .= "X-MSMail-Priority: Normal\n";
$headers .= "X-Mailer: php\n";
$headers .= "From: ".$from."\n";

mail($to, $subject, $text, $headers);
}


if ($_POST["antispam"] == 31)
   {
   send_mail_form($_POST["text"]."\n\nPosláno z webu: ".date("d.m.Y H:i:s"), "mail@domena.cz", $_POST["jmeno"]." <".$_POST["email"].">", $_POST["predmet"]);
   header("Location: ./mailok.html");
   }
else
   header("Location: ./mailko.html");
?> 
Tož já to běžně drtím takto... :roll:

Napsal: stř 11. čer 2008, 20:17
od 1nfo
v něčem by mohl pomoct tento článek
http://www.mazlo.org/blog/clanek/86-Pro ... unkce-mail

pomoc prosim :)

Napsal: úte 17. čer 2008, 12:52
od nicolas.john
Ahoj, mam takovou prosbu. Udelal jsem si v php email. formular, kde se vyplnuji osobni info a ted nevim jak mam osetrit to, aby se mi tyto vsechny udaje poslali ve zprave.

email.php
<?php
$osloveni = $_POST ["osloveni"];
$jmeno = $_POST ["jmeno"];
$prijmeni = $_POST ["prijmeni"];
$ulice = $_POST ["ulice"];
$psc = $_POST ["psc"];
$mesto = $_POST ["mesto"];
$zeme = $_POST ["zeme"];
$telefon = $_POST ["telefon"];
$email = $_POST ["email"];
$stranky = $_POST ["stranky"];
$oddeleni = $_POST ["oddeleni"];
$predmet = $_POST ["predmet"];
$zprava = $_POST ["zprava"];
$kod = $_POST ["kod"];

if ($jmeno == "") {
echo "Nevyplnili jste jméno";
}
if ($prijmeni == "") {
echo "Nevyplnili jste prijmeni";
}
if ($ulice == "") {
echo "Nevyplnili jste ulici";
}
if ($psc == "") {
echo "Nevyplnili jste poštovní směrovací číslo";
}
if ($mesto == "") {
echo "Nevyplnili jste mesto";
}
if ($telefon == "") {
echo "Nevyplnili jste Váš telefon";
}
if ($email == "") {
echo "Nevyplnili jste Váš email";
}
if ($kod <> "4") {
echo "Nevyplnili jste Váš email";
}

$mess = "Oslovení:".$jmeno. \n "Text zprávy:".$zprava.;

Mail($oddeleni, $predmet, $mess, "From: " . $email);
echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";
?>
-------------------------------------------------------------------------------

Diky moc za pomoc

Re: pomoc prosim :)

Napsal: úte 17. čer 2008, 14:30
od martin.ol
nicolas.john píše: $osloveni = $_POST ["osloveni"];
$jmeno = $_POST ["jmeno"];...
A tohle má, kromě zabrání paměti, jaký význam?

Re: pomoc prosim :)

Napsal: úte 17. čer 2008, 18:29
od Clant
martin.ol píše:
nicolas.john píše: $osloveni = $_POST ["osloveni"];
$jmeno = $_POST ["jmeno"];...
A tohle má, kromě zabrání paměti, jaký význam?
Co na tom nechapes?

promena "osloveni" bude ziskana z predesle stranky treba "index.php" a tohle bude obsahovat "send.php"

Napsal: úte 17. čer 2008, 19:03
od bubanek
no, celý to úchylný přepisování se dá udělat pomocí jednoho příkazu:

Kód: Vybrat vše

import_request_variables("gp", "v");
kde v je začátek proměnných, které pochází z POSTu
čili $_POST['jmeno'] to předělá na $vjmeno

Napsal: stř 18. čer 2008, 07:23
od nicolas.john
Hm tak jak koukam nikdo mi zatim neporadil s tim o co jsem zadal :)

Napsal: stř 18. čer 2008, 21:56
od bubanek
tak co si třeba do proměnné $mess přiřadit to co chceš ještě poslat
třeba $mess .= "Město: $mesto \n"; $mess .= "Ulice: $ulice \n";...