Autor Zpráva
Štěpa5
Profil *
Zkouším vytvořit podle různých návodů formulář na web, můžete mi prosím poradit jestli jdu správnou cestou nebo je to špatně? Moc díky.
  
<form action="mail.php" method="post">
 <table style="width: 510px; height: 395px;">
  <tbody>
<tr>
<td style="width: 151px;"><small><b>Jm&eacute;no</b></small></td>
<td style="width: 343px;"><small><b>Př&iacute;men&iacute;</b></small></td>
</tr>

<tr>
<td style="width: 151px;"><input name="firstname" class="text" id="firstname" value="" type="text"></td>
<td style="width: 343px;"><input name="lastname" class="text" id="lastname" value="" type="text"></td>
</tr>

<tr>
<td style="width: 151px;"><small><b>Telefon</b></small></td>
<td style="width: 343px;"><small><b>Email</b></small></td>
</tr>

<tr>
<td style="width: 151px;"><input name="phone" class="text" id="phone" value="" type="text"></td>
<td style="width: 343px;"><input name="email" class="text" id="email" value="" type="text"></td>
</tr>

<tr>
<td style="width: 343px;" colspan="4">&nbsp;</td>
</tr>

<tr>
<td style="width: 500px;" colspan="4"><b>VA&Scaron;E
POPT&Aacute;VKA </b>(Pros&iacute;me o co
nejpřesněj&scaron;&iacute; specifikaci dotazu)</td>
</tr>

<tr>
<td style="width: 343px;" colspan="4"><textarea name="request" class="textarea" id="request" rows="5" cols="25"></textarea></td>
</tr>

<tr>
<td style="width: 343px;" colspan="3">&nbsp;</td>
</tr>

<tr>
<td style="width: 343px;" colspan="4">Přiložit soubor</td>
</tr>

<tr>
<td style="width: 343px;" colspan="3"><input name="upload_file" id="upload_file" class="file" type="file"></td>
</tr>

<tr>
<td style="width: 343px;" colspan="3">&nbsp;</td>
</tr>

<tr>
<td style="width: 343px;" colspan="3"><input class="submit" value="Odeslat popt&aacute;vku" type="submit"></td>
</tr>
</tbody>
</table>
</form>


<?php
$jmeno = $_POST['jmeno'];
$mail = $_POST['mail'];
$predmet = $_POST['predmet'];
$text = $_POST['text'];
$prijemce = "muj mail@muj mail";
$zahlavi = "From: " . $mail . "\r\n";
if ( !empty($jmeno) and !empty($mail) and !empty($predmet) and !empty($text)) {
mail($prijemce, $predmet, $text, $zahlavi);
echo "<h3>Mail byl úspěšně odeslán.</h3>"; }
else {
echo "<h3>Nevyplnili jste všechna pole. Mail nebyl odeslán.</h3>";}
?>
peta
Profil
Štěpa5
ANO NE. Co vic ti odpovedet na otazku? :)
Jeste nejaka otazka? Nebo jsi snad chtel zkontrolovat cast kodu? Idealni je plne funkcni odkaz: kod.php a kod.php.txt . Jakekoliv casti kodu posilane do diskuse vetsinou vedou k tomu, ze stejne rekneme, ze problem je nekde v ostatnim kodu.

Co se tyce odesilani mailu, tak mozna budiz, jinak RSS. A pokud budiz, urcite bych kopii ukladal do databaze. Z ruznych duvodu nemusi mail dorazit a z ruznych duvodu muzes to mit chybne zabezpecene proti spamu. Aspon si to muzes kontrolovat.
TSD
Profil
Štěpa5
Myslím že třeba toto
<tr>
<td style="width: 343px;" colspan="3">&nbsp;</td>
</tr>
<tr>
<td style="width: 343px;" colspan="4">Přiložit soubor</td>
</tr>

není úplně ideální, ale pokud jde o samotný formulář, tak tam žádnou chybu nevidím.
Měsíček
Profil
Já si myslím, že házet interní styly do tabulek je prasárna a ještě větší prasárna to je, když se stejný styl opakuje, zadalší mi není jasné proč to nezkrátíš ..

mail($prijemce, $predmet, $text, $zahlavi); 


můžeš dát přeci rovnou

mail($_POST["prijemce"], $_POST["predmet"], ... ); 


kdyby tam těch proměnných bylo více (například registrační formulář, tak se to již nevyplatí, protože s proměnnýma se bude pracovat vícekrát a tak by to bylo delší, ale ty těch proměnných máš málo a ještě k tomu s nimi moc nepracuješ, tak proč to nezkrátit?
vertigo4
Profil
Štěpa5
ty proměnné nejsou vůbec ošetřené...
Měsíček
Profil
"ty proměnné nejsou vůbec ošetřené..."

Nechceš trochu více upřesnit?
Štěpa5
Profil *
Díky všem, moc dobrou cestou tedy nejdu, zkusím to předělat. Pokud bych mohla ještě poprosit, nevím co znamená "proměnné nejsou ošetřené" a jak by mělo být zapsáno pokud chci ve formuláři přiložit soubor a odeslat na mail? V kódu bude např. <input type="file" name="soubor"> ale co v php?
Měsíček
Profil
"V kódu bude např. <input type="file" name="soubor"> ale co v php?"

2x až 3x větší balast kódu .. nejspíše budeš muset použít $_FILES[] nebo $_FILE[] .. už nevím :)
vertigo4
Profil
Štěpa5
No posílání příloh je celkem složité... doporučím ti PHPmailer, je to skvělá třída na posílání mailů a jednoduše se tam přidají i přílohy.

nevím co znamená "proměnné nejsou ošetřené"
Znamená to, že to co dotyčný posílá, není nijak zabezpečeno... nechci zde rozepisovat co by mělo být ošetřeno, protože když využiješ oné třídy PHPmailer, tak se o to ani nemusíš starat...
Měsíček
Profil
Ale já bych to docela Vertigo rád věděl, jak a proč chceš ošetřovat proměnné u obyčejného skriptu na odesílání e-mailů.
vertigo4
Profil
Měsíček
tak si založ vlastní téma...
Měsíček
Profil
Nemám zájem základat stále nová a nová témata.., ale jestli mi chceš udělat radost pošli mi své řešení na e-mail, díky.
peta
Profil
vertigo4
vertigo4 : ty proměnné nejsou vůbec ošetřené...
Štěpa5 : nevím co znamená "proměnné nejsou ošetřené"
vertigo4 : nechci zde rozepisovat co by mělo být ošetřeno, protože když využiješ oné třídy PHPmailer, tak se o to ani nemusíš starat
Měsíček : Nechceš trochu více upřesnit?

Tak 2 maji stejny dotaz ve stejnem foru, tyka se to tehoz tematu a maji si zalozit nove tema? :)

Měsíček
rekneme, ze je dobre kontrolovat spravny tvar e-mail adresy, kontrolovat text od spamu a dalsi veci.
Kdyz takovyto formular vystavis na web, prijde ti hafo zajimavych zprav, ze nejak vystourali, ze mas maleho pindika a proto ti nabireji pilulky na jeho prodlouzeni a zvetseni :) Navic vyhrajes v mnoha loteriich.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0