prosím mam dostaz chci odesilat formular prs tenhle script
<?php
$to = "obchod@vyrobabanneru.cz";
$extra = "From:['email']\r\nReply-To:['email']\r\n";
$subject = "Objednavka od ['email']";
$mess =email =$_POST['email']
$cenova_hladina = $_POST["cenova_hladina"];
echo "cenova_hladina" .$cenova_hladina;
$email = $_POST["email"];
echo "email" .$email;
$velikost_banneru = $_POST["velikost_banneru"];
echo "velikost_banneru" .$velikost_banneru;
$format_banneru = $_POST["format_banneru"];
echo "format_banneru" .$format_banneru;
$text_banneru = $_POST["text_banneru"];
echo "text_banneru" .$text_banneru;
$odkaz_banneru = $_POST["odkaz_banneru"];
echo "odkaz_banneru" .$odkaz_banneru;
$nazev_firmy = $_POST["nazev_firmy"];
echo "nazev_firmy" .$nazev_firmy;
$adresa_firmy = $_POST["adresa_firmy"];
echo "adresa_firmy" .$adresa_firmy;
$ico = $_POST["ico"];
echo "ico" .$ico;
$dic = $_POST["dic"];
echo "dic" .$dic;
$poznamky = .$_POST["poznamky"];
echo "poznamky" .$poznamky; \n';
mail ($to, $subject, $mess, $extra);
?>
jenže to vipsuej hlašku:Parse error: parse error in /3w/czweb.org/b/beta/send.php on line 2
poradíte ni nekdo co tím.děkuju
Mas totalne prekopany.
Pokud jde o tu chybu, tak tu jsem ani necetl, ale stacilo se podivat do zdrojaku.
S mim se zeptat co je toto?
$extra = "From:['email']\r\nReply-To:['email']\r\n";
$subject = "Objednavka od ['email']";
Presneji ['email']?
Hm, jenom sem se na to podival, trochu me zaujal radek
$mess =email =$_POST['email']
(neni mi jasne co tam dela to " =email " a navic ti chybi na konci radku strednik ... )
a nebude ta chyba treba timhle:
$extra = "From:['email']\r\nReply-To:['email']\r\n";
radkem?
Co je to " ['email'] " nemelo by to být $_POST['email'] ? oprav tohle a pak se ptej na chyby ....
p.s: vubec mi neni jasne proc ty hodnoty ktere jsi ziskal z POSTu predavas do nejakych promenych kdyz s nima stejne nijak nepracujes, jenom je vypsises... tak proc nevypsises rovnou promene z POSTu? akorat alokujes zbytecne! dalsi promenne ...
Řekl bych, že tenhle skript porušuje snad všechny zásady "správného" kódu.
1) zdvojování proměnných?
2) apostrofy nic?
3) $poznamky = .$_POST["poznamky"]; :)
4) $extra = "From:['email']\r\nReply-To:['email']\r\n"; =)
5) $subject = "Objednavka od ['email']"; =D
6) echo "poznamky" .$poznamky; \n';
7) kde jsou další hlavičky?
8) Žádný antispam?
Takže:
ad 1) nezdvojovat proměnné, pracovat přímo s polem $_POST.
ad 2) začít používat místo uvozovek apostrofy (aspoň někde)
ad 3) hned jedna chyba, neznám žádný operátor "= ."
ad 4+5) chci vidět, jak se budeš tvářit, až ti začnou chodit emaily od ['email']
ad 6) další chyba: ; \n';
ad 7) Bude ti to chodit s rozhozeným kódováním. Předej ještě hlavičky určující kódování emailu
ad 8) Bál bych se SPAMu, přidej si antispam
hej lidi na php jsem ulná lama takže se na to asi vyprdnu protože to už řešim tři dny a pořád nic takovej chyb co už jsem se naopravoval takže už vubec nevim co stim.a nákej antispam vubec nevim jak nakoduju.proste dostavam odpovedi 5 přes 9 každej říka něco jinýho už ani nevím co si o tom mám myslet
No ne, všichni říkáme to samé, jenom každý trochu jinak:
pokud seš (t)lama, tak si kup knížku, nebo nastuduj tutoriály na webu. To, o co se pokoušíš jsou úplné, ale úplné základy.
Malé vysvětlení:
1) zdvojování proměnných ($dic = $_POST["dic"];) proč zbytečně přepisovat hodnotu z $_POST['dic'] do nové proměnné, když můžeš pracovat přímo s $_POST['dic']?
2) echo "bla ble $_GET['var'] bla bla..." ti nikdy nebude fungovat. pro vypsání obsahu $_GET['var'] musíš použít: echo "bla ble ".$_GET['var']." bla bla..."
3) "= ." není žádný operátor. http://www.php.net/manual/cs/language.operators.php
4+5) $extra = "From:['email']\r\nReply-To:['email']\r\n"; možná že se budeš divit, ale hodnota této proměnné bude přesně taková, jako jí vidíš zde. To "['email']" se ti na email nikdy nepřepíše.
no tak děkuji za vaše rady myslím že ta poslední mi dost pomohla fakt dík.
si koupim něco od koska asi.
jakub (beta.czweb.org)
koska nebrat.
Literaturu max do 100 stranek, nejlepsi je i s priklady na cz.php.net
Samozrejme to neni dobre popsane, ale lze to velice slusne pouzit proti te knizce o 500 stranach, co mi lezi na stole a prasi se na ni :)
http://www.volny.cz/peter.mlich/www.htm#msub11
mailform
ke kodu:
line2: $extra = "From:['email']\r\nReply-To:['email']\r\n";
je totez jako: $promenna = "text";
['email'] je jen text, ti tam schazi asi $_POST? , tj. $_POST['email']
jenze pak musis ukoncit text
$promenna = "text".$promenna."text";
$extra = "From:".$_POST['email']."\r\nReply-To:['email']\r\n";
a totez s tim druhym email
Co kdybys pouzil script z cz.php.net ?
foreach ($_POST as $key=>$value) {$$key=$value;}
ktery udela presne toto:
$cenova_hladina = $_POST["cenova_hladina"];
$email = $_POST["email"];
$velikost_banneru = $_POST["velikost_banneru"];
$format_banneru = $_POST["format_banneru"];
$text_banneru = $_POST["text_banneru"];
$odkaz_banneru = $_POST["odkaz_banneru"];
$nazev_firmy = $_POST["nazev_firmy"];
$adresa_firmy = $_POST["adresa_firmy"];
... jenze to provede pro vsechny polozku v POST. Pokud neco neodeslel, pak bys to musel resit pres pole povinnych polozek.
$pole = array("jmeno","email");
foreach ($pole as $key=>$value) {$$key=isset($_POST[$value])?$_POST[$value]:"";}
foreach ($_POST as $key=>$value) {$$key=$value;}
tj, pokud neniv post, tak nastavi alespon prazdny retezec. A pak tam presune cely post, jeste.
A jeste by to slo udelat... (vsechny policka budou povinne)
$pole = array('jmeno','email','adresa');
$user = array('Tonda','mail@mail.cz','praha 12');
foreach ($pole as $key=>$value) {$$key=(isset($_POST[$value])&&($_POST[$value]!="")?$_POST[$value]:$user[$key];}
... nastavis tam preddefinovanou promennou, pokud neni vyplnene policko
$pole = array(
'jmeno'=>"aaa",
'email'=>"bbb",
'adresa'=>"ccc"
);
foreach ($pole as $key=>$value) {$$key=(isset($_POST[$key])&&($_POST[$key]!="")?$_POST[$key]:$value;}
totez jiny zpusob
tak díky za tip.a za pomoc už to snad vyřeším.