
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)
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?
jen na prázdno
<html>
<head><title></title></head>
<body>
</body>
</html>";
message sem spravil ale stále to píše chybu u řádku kterým sem posílal
Tak už dej sem spravený origo kód

Jakou chybu to v originálu píše
<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"; ?>
Parse error: syntax error, unexpected T_VARIABLE in /home/users/anonym/anonym.jecool.net/web/post.php on line 32
Dáš sem kód, který má 27 řádků a chyba je na řádku 32 - divný, viď?
lol..nebudu sem posílat vše... chyba je v :if ( Mail("lol@seznam.cz", $meno, "From: "$email, $zprava, $predmet, $zprava) )
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,
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.
lol v java scriptu ti napíšu hodinky s vodotryskem který ti budou hlásit kdy potřebuješ na záchod...jen v php jsem začátečník
Sorry, že jsem se ti snažil pomoct.
V tom případě js genius.... (ironie) :D
co chces vic, vzdyt to tu mas uz rozepsany od marekdrtic?
lol... tak sem vše neposílej.... mně je to docela jedno, věříš?
Dej sem kompletní kód ne jen nějakej bezcenej výcuc
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 ji
ono se ti zdá???
Programování není o snech.
Ty chceš radu a když se ti někdo snaží pomoct tak neposloucháš.
Co vůbec chceš???
"Co vůbec chceš???"
někoho kdo by s tím pomohl a opravil to :D
jinak ano.. přidal jsem tam tečku...nepomohlo to :D
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
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:
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:
ju :) díky už to v tom vidim..
Tvrdíš, že skvěle ovládáš Javascript, tak si představ, že bys tohle napsal v JS. Co by tam bylo za chybu(y)? Protože v PHP je to úplně stejné.
nesedí pocet zavorek a za if se nedela strednik
http://cz2.php.net/manual/en/control-structures.if .php
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";
}
?>
No když proměnnou $zprava použije dřív, než ji naplníš, tak se nediv.
V javascriptu to ale určitě nevadí....
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še funguje díky za váš čas...
Principy jsou naprosto stejné, i základní syntaxe je podobná. Člověk, který tvrdí, že ovládá JS (nebo libovolný jiný jazyk s C-like syntaxí), musí podobné chyby odhalit na první pohled.
Ano, JS a PHP je něco jiného. Některé konvence jsou ale stejné ve všech programovacích jazycích, např. že se proměnná nejdřív nadeklaruje (přiřadí hodnota) a pak použije. Ale to jako profík v javascriptu určitě víš.
Víš jak už napovídá název lamborghini a trabant je pouze dopravní prostředek, ikdyž je to něco jiného.