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)

Předmět Autor Datum
if(isset($_POST[1])){$1 = htmlspecialchars($_POST[meno]);} // 1 if(isset($_POST[2])){$2 = htmlspecia…
Wikan 24.08.2012 16:11
Wikan
Omg to sem mněnil aby se v tom dalo vyznat... v tom chyba není v originálu
Sp1k3e 24.08.2012 16:30
Sp1k3e
Tak sem dej originální kód, hledat chyby v upraveném je trochu na hlavu.
Wikan 24.08.2012 16:31
Wikan
není upravený jen místo mých udajů jsou tam čísla
Sp1k3e 24.08.2012 16:35
Sp1k3e
Bez originálního kódu ti těžko někdo poradí. Ale jak chceš.
Wikan 24.08.2012 16:40
Wikan
te píše že je zase chyba v : $zprava = (StrTr($zprava, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž", "…
Sp1k3e 24.08.2012 16:45
Sp1k3e
PS: nevím co je na tom vtipného...čísla jsou tam proto aby se v tom dalo vyznat lépe jen utamtoho js…
Sp1k3e 24.08.2012 16:34
Sp1k3e
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
jen na prázdno <html> <head><title></title></head> <body> </body> </html>";
Sp1k3e 24.08.2012 20:17
Sp1k3e
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
Sorry, že jsem se ti snažil pomoct.
marekdrtic 24.08.2012 21:29
marekdrtic
V tom případě js genius.... (ironie) :D
Gizzer 24.08.2012 21:29
Gizzer
co chces vic, vzdyt to tu mas uz rozepsany od marekdrtic?
ERASER 24.08.2012 21:44
ERASER
lol... tak sem vše neposílej.... mně je to docela jedno, věříš? 8-)
host 24.08.2012 21:19
host
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
ono se ti zdá??? Programování není o snech. Ty chceš radu a když se ti někdo snaží pomoct tak neposl…
Gizzer 24.08.2012 21:32
Gizzer
"Co vůbec chceš???" někoho kdo by s tím pomohl a opravil to :D
Sp1k3e 24.08.2012 21:35
Sp1k3e
jinak ano.. přidal jsem tam tečku...nepomohlo to :D
Sp1k3e 24.08.2012 21:36
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..
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š…
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…
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 .…
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…
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…
Sp1k3e 24.08.2012 22:07
Sp1k3e
No když proměnnou $zprava použije dřív, než ji naplníš, tak se nediv.
Wikan 24.08.2012 22:10
Wikan
V javascriptu to ale určitě nevadí.... ;-)
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š…
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…
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…
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
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

Na levé stráně máš index "1, 2, 3, 4" na pravé zase "meno, nadpis, zprava, 4." Měl by sis to sjednotit podle toho, jak to máš pojmenované v HTML.
A čtvrtý řádek je vcelku vtipný.

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