Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem PhP skoro fukční kod

ZDravím :) jdělám jen tak pro sebe na web formulář pro odesílání otázek atd na svůj mail... bohužel odesílá jen 1 a 4 input a text area.. kod posílám :

PHP

<?php
$to="my mail";
$subject="Stranky";
$message="
 




if(isset($_POST[1])){$1 = htmlspecialchars($_POST[meno]);} // 1
if(isset($_POST[2])){$2 = htmlspecialchars($_POST[nadpis]);} // 2
if(isset($_POST[4])){$4 = htmlspecialchars($_POST[zprava]);} // 4
if(isset($_POST[3])){$3 = htmlspecialchars($_POST[4]);} // 3
if(isset($_POST[submit])){$submit = htmlspecialchars($_POST[submit]);} // příjme submit
 
$headers="From: 00 web <$email>\n"; 
$headers.="Content-Type: text/html; charset=windows-1250\n"; 

if(isset($submit) && isset($1) && isset($2) && isset($4) && isset($3))

 $4 = (StrTr($zprava, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz"));
 
if ( Mail("my mail", $1, $2, $4, $3))
 echo "Mail byl odeslan";
else
 echo "Mail se nepodařilo odeslat";

?>

a HTML:

<form action="post.php" method="post">
 1 <input name="1"><br>  // odesílá
 2: <input name="2"><br> //ne
 3: <input name="3"><br> //ne
 4: <textarea name="4"></textarea><br>  //odesílá
 <input type=submit value="Odeslat" type="submit" >
 </form>

potřeboval bych sporovznit eště 2 a 3 :) nevidím nikde proč by to nemnělo fungovat..díky
Změna kategorie, původně: Internet (Kurt)

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
nevidím nikde proč by to nemnělo fungovat Nevidím nikde proč by to mělo fungovat, když ten kód nejd…
ERASER 24.08.2012 19:14
ERASER
message sem spravil ale stále to píše chybu u řádku kterým sem posílal
Sp1k3e 24.08.2012 20:19
Sp1k3e
Bez originálního kódu ti těžko někdo poradí. Ale jak chceš. Tak už dej sem spravený origo kód :!: J…
ERASER 24.08.2012 20:35
ERASER
<?php $to="lol@seznam.cz"; $subject="Stranky"; $message=" <html> <head><title></title></head> <body…
Sp1k3e 24.08.2012 20:44
Sp1k3e
Parse error: syntax error, unexpected T_VARIABLE in /home/users/anonym/anonym.jecool.net/web/post.ph…
Sp1k3e 24.08.2012 20:46
Sp1k3e
Dáš sem kód, který má 27 řádků a chyba je na řádku 32 - divný, viď?
host 24.08.2012 20:49
host
lol..nebudu sem posílat vše... chyba je v :if ( Mail("lol@seznam.cz", $meno, "From: "$email, $zprava…
Sp1k3e 24.08.2012 21:14
Sp1k3e
lol..nebudu sem posílat vše Je vidět, že jsi ještě nikdy nic neprogramoval. Kód je třeba vidět v so…
marekdrtic 24.08.2012 21:18
marekdrtic
lol v java scriptu ti napíšu hodinky s vodotryskem který ti budou hlásit kdy potřebuješ na záchod...…
Sp1k3e 24.08.2012 21:27
Sp1k3e
co chces vic, vzdyt to tu mas uz rozepsany od marekdrtic? nový
ERASER 24.08.2012 21:44
ERASER
Dej sem kompletní kód ne jen nějakej bezcenej výcuc :!:
ERASER 24.08.2012 20:59
ERASER
jinak díky ale vy tu řešíte ty nejmenší problémy...se mi zdá že mám asi závorku navíc :D ale nevidím…
Sp1k3e 24.08.2012 21:30
Sp1k3e
Chtěl bych vidět ty hodinky v Javascriptu, tam je to také o závorkách a o spojování proměnných, to s…
marekdrtic 24.08.2012 21:36
marekdrtic
ju :) díky už to v tom vidim.. nový
Sp1k3e 24.08.2012 21:44
Sp1k3e
3-[ píše chybu zase v if ( mail("lol@seznam.cz",$predmet,$message,$headers); už nevím... dal jsem vš… nový
Sp1k3e 24.08.2012 21:45
Sp1k3e
Tvrdíš, že skvěle ovládáš Javascript, tak si představ, že bys tohle napsal v JS. Co by tam bylo za c… nový
Wikan 24.08.2012 21:54
Wikan
nesedí pocet zavorek a za if se nedela strednik http://cz2.php.net/manual/en/control-structures.if .… nový
ERASER 24.08.2012 21:54
ERASER
Ne, nedal jsi to přesně jak jsem napsal. Opět jsi zmrvil závorky. Navíc odkdy se po podmínce dává st… nový
marekdrtic 24.08.2012 21:55
marekdrtic
díky..konečně to znovu posílá email ale zase odesílá jen -Jmeno: -Zprava: tu je znovu celý kod <?p… nový
Sp1k3e 24.08.2012 22:07
Sp1k3e
No když proměnnou $zprava použije dřív, než ji naplníš, tak se nediv. nový
Wikan 24.08.2012 22:10
Wikan
V javascriptu to ale určitě nevadí.... ;-) nový
host 24.08.2012 22:12
host
Víš jak už napovídá název php a JS je něco jiného...K tématu.: Ano díky stačilo přehodit pozice.. vš… nový
Sp1k3e 24.08.2012 22:15
Sp1k3e
Principy jsou naprosto stejné, i základní syntaxe je podobná. Člověk, který tvrdí, že ovládá JS (neb… nový
Wikan 24.08.2012 22:18
Wikan
Ano, JS a PHP je něco jiného. Některé konvence jsou ale stejné ve všech programovacích jazycích, nap… nový
host 24.08.2012 22:21
host
Víš jak už napovídá název php a JS je něco jiného Víš jak už napovídá název lamborghini a trabant j… poslední
ERASER 24.08.2012 22:24
ERASER

nevidím nikde proč by to nemnělo fungovat

Nevidím nikde proč by to mělo fungovat, když ten kód nejde ani spustit. Co máš uloženého v proměnné na řádku číslo 4 v proměnný $message?

Bez originálního kódu ti těžko někdo poradí. Ale jak chceš.

Tak už dej sem spravený origo kód :!:
Jakou chybu to v originálu píše :?:

Měl by sis to sjednotit podle toho, jak to máš pojmenované v HTML

<input type=submit value="Odeslat" type="submit" >
if(isset($_POST[submit])){$submit = htmlspecialchars($_POST[submit]);} // příjme submit
if(isset($submit) && isset($1) && isset($2) && isset($4) && isset($3))

(TO byly hrubé chyby!)

<?php
$to="lol@seznam.cz";
$subject="Stranky";
$message="

<html>
<head><title></title></head>
<body>
</body>
</html>";

if(isset($_POST[meno])){$meno = htmlspecialchars($_POST[meno]);} // příjme meno
if(isset($_POST[email])){$email = htmlspecialchars($_POST[email]);} // příjme email
if(isset($_POST[predmet])){$predmet = htmlspecialchars($_POST[predmet]);} // příjme predmet
if(isset($_POST[zprava])){$zprava = htmlspecialchars($_POST[zprava]);} // příjme zprava
if(isset($_POST[submit])){$submit = htmlspecialchars($_POST[submit]);} // příjme submit

$headers="From: lol\n";
$headers.="Content-Type: text/html; charset=windows-1250\n";

if(isset($meno) && isset($email) && isset($predmet) && isset($zprava) && isset($submit))

$zprava = (StrTr($zprava, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz"))

if ( Mail("lol@seznam.cz", $meno, "From: "$email, $zprava, $predmet, $zprava) )
echo "Mail byl odeslán";
else echo "Mail se nepodařilo odeslat"; ?>

lol..nebudu sem posílat vše

Je vidět, že jsi ještě nikdy nic neprogramoval. Kód je třeba vidět v souvislostech, ne jenom malé kousky, ve kterých je hodně podstatných věcí vypuštěno. Mimochodem,

Mail("lol@seznam.cz", $meno, "From: "$email, $zprava, $predmet, $zprava)

je něco, co absolutně nedává smysl. Pročti si na php.net, jaké parametry ta funkce má. A řetězce se v PHP spojují pomocí tečky. Toto: "From: "$email je hloupost. Správně se to má zapsat "From: ".$email. O zbytku už ani nemluvím.

Pokud se PHP učíš, tak je sice v pořádku, že to hned nejde, ale nejde chrlit kód k ničemu bez základních znalostí, chce to začít znova a úplně od začátku. Ono to nepůjde hned, ale pak nastane zlom, kdy to začneš cítit. To máš jako když se lidi učí rozjíždět v autě s manuální převodovkou - nikomu se to nepovede hned, ale stačí potrénovat a už to jde krásně.

A ještě jedna důležitá věc - my ti tu radíme zadarmo, v našem volném čase, takže bych očekával minimálně spolupráci a ochotu.

Chtěl bych vidět ty hodinky v Javascriptu, tam je to také o závorkách a o spojování proměnných, to se nemění, jen tam jsou lehké nuance. Takže se pokusím pomoct ještě jednou. Jestli mě i po tomhle odpálkuješ, tak je evidentní, že pomoc nechceš a že ses tu potřeboval pouze podělit o to, že seš master v JS

Mail("lol@seznam.cz", $meno, "From: "$email, $zprava, $predmet, $zprava)

Pokud ses již podíval na php.net (velká výhoda PHP, narozdíl od JS má obsáhlou dokumentaci na jednom místě), tak tam uvidíš tohle:

mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

Už na první pohled je vidět, že tam máš nějak moc parametrů. Pokud se tedy snažíš odeslat email uživateli lol@seznam.cz na email $email s předmětem $predmet a textem, kde budou nějaké údaje, tak by to mělo vypadat asi takto:

$headers = 'From: '.$email. "\r\n" .
'Reply-To: '.$email. "\r\n" .
'X-Mailer: PHP/' . phpversion();

$message = "Jmeno: ".$jmeno."\n\n"."Zprava: ".$zprava;

mail("lol@seznam.cz",$predmet,$message,$headers);

Ne, nedal jsi to přesně jak jsem napsal. Opět jsi zmrvil závorky. Navíc odkdy se po podmínce dává středník? Ten se nedává ani v Javascriptu.

if( mail("lol@seznam.cz",$predmet,$message,$headers) )
{
echo "ok";
}
else
{
echo "něco je špatně";
}

Tohle jsou absolutní základy programování. Tohle tě čeká v PHP, JS, C++, Javě, Pythonu, Visual Basicu, prostě všude.

díky..konečně to znovu posílá email ale zase odesílá jen -Jmeno: -Zprava:

tu je znovu celý kod

<?php
$to="lol@seznam.cz";
$subject="Stranky";
$message = "Jmeno: ".$meno."\n\n"."Zprava: ".$zprava; // odesílá jen Jmeno , Zprava bez textu i když je vyplněný

if(isset($_POST[meno])){$meno = htmlspecialchars($_POST[meno]);}
if(isset($_POST[email])){$email = htmlspecialchars($_POST[email]);}
if(isset($_POST[predmet])){$predmet = htmlspecialchars($_POST[predmet]);}
if(isset($_POST[zprava])){$zprava = htmlspecialchars($_POST[zprava]);}
if(isset($_POST[submit])){$submit = htmlspecialchars($_POST[submit]);}

$headers = 'From: '.$email. "\r\n" .
'Reply-To: '.$email. "\r\n" .
'X-Mailer: PHP/' . phpversion();

if(isset($meno) && isset($email) && isset($predmet) && isset($zprava) && isset($submit));

if( mail("lol@seznam.cz",$predmet,$message,$headers) )
{
echo "email byl odeslán";
}
else
{
echo "Email se nepodařilo odeslat";
}
?>

Zpět do poradny Odpovědět na původní otázku Nahoru