Autor Zpráva
raymoriss
Profil
Nenašla by se nějaká dobrá duše, která by mi pomohla s mým problémem, jsem v tomto docela amatér. Ctěl jsem si na web stránky přidat on-line formulár, takže jsem si vyhledal toto:

EMAIL.PHP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>Odesílání emailu</title>
</head>
<body>
<h1>Odesílání emailu</h1>

<form action="posli.php" method="post">
<input name="email" size="25" value="Váš@mail"><br>
<input name="predmet" size="25" value="Předmět"><br>
<input name="spam" size="25"> <strong>= 1 + 1</strong><br>
<textarea name="zprava" rows="6" cols="55">Zpráva...</textarea><br>
<input type="submit" value="Odeslat">
</form>

</body>
</html>

POSLI.PHP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>Odesílání emailu</title>
</head>
<body>
<h1>Odesílání emailu</h1>

<?
$predmet = $_POST['predmet'];
$email = $_POST['email'];
$spam = $_POST['spam'];
$zprava = $_POST['zprava'];

if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2")
{
Mail("vase@adresa.com", $predmet, $zprava, "From: " . $email);
echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";
}
else
{
echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo nevíte kolik je 1 + 1.</p>";
}
?>

</body>
</html>

Vše by bylo v naprostém pořádku, jen mi jde o jednu věc - potřeboval bych, aby polí typu "zpráva" bylo více, tzn. aby políček pro napsání čekoholi bylo více, protože když jsem "<textarea name="zprava" rows="6" cols="55">Zpráva...</textarea><br>" nakopíroval vícekrát (a na webu se to objevilo),tak mi vždy přijde pouze text z prvního pole.

ZA JAKOUKOLI POMOC BUDU MOC VDĚČNÝ.
djlj
Profil
Dej každé textarei jiné name. A pak použij $_POST['nejakynazev'].
Harkonnen
Profil *
Normalne si dej poli kolik chces, ale kazde musi mit svuj unikatni atribut name, tedy napriklad budes mit zprava1, zprava2, zprava3 atd. A pak uz staci dat treba neco takoveho: $zprava = $zprava1."<br />druhá část:".$zprava2."<br />třetí část:".$zprava3;
raymoriss
Profil
Děkuji Vám za pomoc, udělal jsem (snad) vše co bylo napsáno, ale stále nefunguje, opravil jsem to takto:


<B>EMAIL.PHP</B>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>On-line formulář</title>
</head>
<body>
<div align="center">
<h1><u>On-line formulář</u></h1>
<font size=2>Po vyplnění a odeslání formuláře Vás budeme automaticky kontaktovat buď na e-mail nebo telefonicky.
</font>

<form action="posli.php" method="post">
<input name="email" size="25" value="Váš e-mail"><br>
<input name="predmet" size="25" value="Jeméno a přijímení"><br>
Antismapová ochrana, prosím napište zde číslici dvě: <input name="spam" size="25"> <strong>= 1 + 1</strong><br>

Zpráva1: <textarea name="zprava" rows="1" cols="70">neco</textarea><br>
Zpráva2: <textarea name="zprava2" rows="1" cols="70">neco</textarea><br>
Zpráva3: <textarea name="zprava3" rows="1" cols="70">neco</textarea><br>
Zpráva4: <textarea name="zprava4" rows="1" cols="70">neco</textarea><br>
Zpráva5: <textarea name="zprava5" rows="1" cols="70">neco</textarea><br>
<input type="submit" value="Odeslat">
</form>

</body>
</html>


<b>POSLI.PHP</B>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>On-line formulář</title>
</head>
<body>
<div align="center">
<h1><u>On-line formulář</u></h1>
<font size=2>Po vyplnění a odeslání formuláře Vás budeme automaticky kontaktovat buď na e-mail nebo telefonicky.
</font>

<form action="posli.php" method="post">
<input name="email" size="25" value="Váš e-mail"><br>
<input name="predmet" size="25" value="Jeméno a přijímení"><br>
Antismapová ochrana, prosím napište zde číslici dvě: <input name="spam" size="25"> <strong>= 1 + 1</strong><br>

Zpráva1: <textarea name="zprava" rows="1" cols="70">neco</textarea><br>
Zpráva2: <textarea name="zprava2" rows="1" cols="70">neco</textarea><br>
Zpráva3: <textarea name="zprava3" rows="1" cols="70">neco</textarea><br>
Zpráva4: <textarea name="zprava4" rows="1" cols="70">neco</textarea><br>
Zpráva5: <textarea name="zprava5" rows="1" cols="70">neco</textarea><br>
<input type="submit" value="Odeslat">
</form>

</body>
</html>

NEBYLA BY PROSÍM JEŠTĚ NĚJAKÁ RADA? DĚKUJI.
Harkonnen
Profil *
Nějak nevidím ten odesílací skript. To posli.php ted vypada jak?
raymoriss
Profil
POSLI.PHP JE V DRUHÉ POLOVINĚ PŘEDCHÁZEJÍCÍHO PŘÍSPĚVKU, ALE ZDE:


POSLI.PHP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>On-line formulář</title>
</head>
<body>
<div align="center">
<h1><u>On-line formulář</u></h1>
<font size=2>Po vyplnění a odeslání formuláře Vás budeme automaticky kontaktovat buď na e-mail nebo telefonicky.
</font>

<form action="posli.php" method="post">
<input name="email" size="25" value="Váš e-mail"><br>
<input name="predmet" size="25" value="Jeméno a přijímení"><br>
Antismapová ochrana, prosím napište zde číslici dvě: <input name="spam" size="25"> <strong>= 1 + 1</strong><br>

Zpráva1: <textarea name="zprava" rows="1" cols="70">neco</textarea><br>
Zpráva2: <textarea name="zprava2" rows="1" cols="70">neco</textarea><br>
Zpráva3: <textarea name="zprava3" rows="1" cols="70">neco</textarea><br>
Zpráva4: <textarea name="zprava4" rows="1" cols="70">neco</textarea><br>
Zpráva5: <textarea name="zprava5" rows="1" cols="70">neco</textarea><br>
<input type="submit" value="Odeslat">
</form>

</body>
</html>
Harkonnen
Profil *
No jo, ale přetím si měl tohle:

POSLI.PHP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>Odesílání emailu</title>
</head>
<body>
<h1>Odesílání emailu</h1>

<?
$predmet = $_POST['predmet'];
$email = $_POST['email'];
$spam = $_POST['spam'];
$zprava = $_POST['zprava'];

if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2")
{
Mail("vase@adresa.com", $predmet, $zprava, "From: " . $email);
echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";
}
else
{
echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo nevíte kolik je 1 + 1.</p>";
}
?>

A ted mas uplne neco jineho. Neni tam zadny skript na odesilani, tak je chyba treba prave tam.
raymoriss
Profil
No teď jsem to právě předělal "snad" dle toho, co mi bylo razeno. Jak jsem již řekl, jsem opravdu amatér. Ale moc díky za rady. Nevíš tedy konkrétně, co bych tam měl přidat nebo předělat. Ono ten formulář na mail přijde, ale mám tam pět kolonek a textem (textarea), ale v mailu se mi vždy objeví text jen té první :(.
Harkonnen
Profil *
OK, tak já se ti na to zkusím podívat, ale hoď sem kód toho odesílacího skriptu. To co si poslal nemůže odeslat ani mail, když tam není funkce mail(). Dej to sem přesně jak to máš a dáme do toho ty ostatní políčka.
raymoriss
Profil
TOHLETO MÁM JAKO INDEX.HTM:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>On-line formulář</title>
</head>
<body>
<div align="center">
<h1><u>On-line formulář</u></h1>
<font size=2>Po vyplnění a odeslání formuláře Vás budeme automaticky kontaktovat buď na e-mail nebo telefonicky.
</font>

<form action="posli.php" method="post">
<input name="email" size="25" value="Váš e-mail"><br>
<input name="predmet" size="25" value="Jeméno a přijímení"><br>
Antismapová ochrana, prosím napište zde číslici dvě: <input name="spam" size="25"> <strong>= 1 + 1</strong><br>

Zpráva1: <textarea name="zprava" rows="1" cols="70">neco</textarea><br>
Zpráva2: <textarea name="zprava2" rows="1" cols="70">neco</textarea><br>
Zpráva3: <textarea name="zprava3" rows="1" cols="70">neco</textarea><br>
Zpráva4: <textarea name="zprava4" rows="1" cols="70">neco</textarea><br>
Zpráva5: <textarea name="zprava5" rows="1" cols="70">neco</textarea><br>
<input type="submit" value="Odeslat">
</form>

</body>
</html>


A TOHLE JAKO POSLI.PHP: (asi ten odesílací skript):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>Odesílání emailu</title>
</head>
<body>
<h1>Odesílání emailu</h1>

<?
$predmet = $_POST['predmet'];
$email = $_POST['email'];
$smap = $_POST['spam'];
$zprava = $_POST['zprava'];
$zprava2 = $_POST['zprava2'];
$zprava3 = $_POST['zprava3'];
$zprava4 = $_POST['zprava4'];
$zprava5 = $_POST['zprava5'];

if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2")
{
Mail("aq.amlife@seznam.cz", $predmet, $zprava, "From: " . $email);
echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";
}
else
{
echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo nevíte kolik je 1 + 1.</p>";
}
?>

</body>
</html>


----------------------------------------------------
EMAIL PŘIJDE, ALE OPRAVDU JEN S TEXTEM PRVNÍHO POLE.
Harkonnen
Profil *
To je přesně to, co jsem chtěl vidět. Takže chyba je naštěstí viditelná. :-) Přijde ti jen to první pole proto, že jen to první pole odesíláš. Zkus toto:

<?
$predmet = $_POST['predmet'];
$email = $_POST['email'];
$smap = $_POST['spam'];
$zprava = $_POST['zprava'];
$zprava2 = $_POST['zprava2'];
$zprava3 = $_POST['zprava3'];
$zprava4 = $_POST['zprava4'];
$zprava5 = $_POST['zprava5'];

if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2")
{
$odesilana_zprava = $zprava."<br />druhá část:".$zprava2."<br />třetí část:".$zprava3."<br />čtvrtá část:".$zprava4."<br />pátá část:".$zprava5;
Mail("aq.amlife@seznam.cz", $predmet, $odesilana_zprava, "From: " . $email);
echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";
}
else
{
echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo nevíte kolik je 1 + 1.</p>";
}
?>

To co je změněno je tučně. Mělo by to jít, tak to vyzkoušej. :)
raymoriss
Profil
SUPER, DÍKY MOC! NEČEKAL JSEM, ŽE TU BUDE NĚKDO NATOLIK OCHOTNÝ. MOCKRÁT DÍKY :).
Harkonnen
Profil
Jsem tu nový a dneska jsem byl stejně překvapen jako ty, když mi tady dva lidé rychle pomohli. Takže jsem se rozhodl pomoct ti, když rozumím tomu, na co ses ptal. :-)
Nemáš zač ;)
petrsvetr
Profil
Ahojte lidi, myslim, ze tohle by mohl byt nazorny priklad sikovneho formulare, ovsem, proc mi to vypsiuje tohle?
:
Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable to relay for jeh@seznam.cz in C:xampphtdocsposli.php on line 21

prosim o radu?
Madenio
Profil
Ako stvorene pre spamovacich robotov / spam injection :)
Bill
Profil *
potreboval bych radu, udelal jsem si formular v php a nejak posila ve spatnem kodovani, muzete poradit?

soubor: rezervace.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Přihláška</title>
</head>

<body>

<form action="rezervace/posli.php" method="POST">
<table id="formular">
<tr>
<td><b>Vaše údaje pro rezervaci:</b></td>
</tr>
<td></td>
<tr>
<td>Jméno a příjmení:</td>
<td class="form"><input type="text" name="jmeno" size="30" value=""></td>
</tr>
<tr>
<td>Telefon:</td>
<td class="form"><input type="text" name="telefon" size="30" value=""></td>
</tr>
<tr>
<td>E-mail:</td>
<td class="form"><input type="text" name="email" size="30" value=""></td>
</tr>
<td></td>
<tr>
<td><b>Rezervuji:</b></td>
</tr>
<td></td>
<tr>
<td class="popis">Datum příjezdu:</td>
<td class="form"><input type="text" name="termin_od" size="30" value=""></td>
</tr>
<tr>
<td class="popis">Datum odjezdu:</td>
<td class="form"><input type="text" name="termin_do" size="30" value=""></td>
</tr>
<tr>
<td>Počet osob:</td>
<td class="form"><input name="pocet_osob" size="30" value=""></td>
</tr>
<tr>
<td>Počet nocí:</td>
<td class="form"><input name="pocet_noci" size="30" value=""></td>
</tr>
<tr>
<td>Další požadavky:</td>
<td class="form"><textarea rows="8" cols="40" name="dalsi_pozadavky"></textarea></td>
</tr>
<tr>
<td><input type="submit" value="Odeslat rezervaci" name="odeslat"></td>
</tr>
</table>
</form>


</body>

</html>


soubor: posli.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Přihláška - odeslání</title>
</head>

<body>

<?
$jmeno = $_POST['jmeno'];
$telefon = $_POST['telefon'];
$email = $_POST['email'];
$termin_od = $_POST['termin_od'];
$termin_do = $_POST['termin_do'];
$pocet_osob = $_POST['pocet_osob'];
$pocet_noci = $_POST['pocet_noci'];
$dalsi_pozadavky = $_POST['dalsi_pozadavky'];

if ($jmeno!="" and $telefon!="" and $email!="" and $termin_od!="" and $termin_do!="" and $pocet_osob!="" and $pocet_noci!="" and dalsi_pozadavky!="")
{
$odesilana_zprava = "Jméno a příjmení:".$jmeno.
"<br />Telefón:".$telefon.
"<br />Datum příjezdu:".$termin_od.
"<br />Datum odjezdu:".$termin_do.
"<br />Počet osob:".$pocet_osob.
"<br />Počet nocí:".$pocet_noci.
"<br />Další požadavky:".$dalsi_pozadavky;


Mail("b-gates@seznam.cz", "REZERVACE" , $odesilana_zprava, "From: " .$email, );
echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";
}
else
{
echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong>.</p>";
}
?>


</body>

</html>

a na mail mi dojde tohle:
JmĂŠno a příjmenĂ­:Ivo DostĂĄl<br />TelefĂłn:603603603<br />Datum příjezdu:10.12.2007<br />Datum odjezdu:15.12.2007<br />Počet osob:8<br />Počet nocĂ­:4<br />DalĹĄĂ­ poĹžadavky:+Ä›ĹĄÄĹ™ĹžĂ˝ĂĄĂ­ĂŠ

muzete poradit dva dny hledam reseni a nic mi nefunguje diky
Chamurappi
Profil
Reaguji na Billa:
Tvůj problém nijak nesouvisí s původním dotazem. Založ si vlastní vlákno.
Béďa
Profil *
Vše není kompatibilní s XHTML Validatorem
Chamurappi
Profil
Reaguji na Béďu:
To reaguješ na co? Proč záleží na kompatibilitě s XHTML validátorem?
Bones
Profil
To je přesně to, co jsem chtěl vidět. Takže chyba je naštěstí viditelná. :-) Přijde ti jen to první pole proto, že jen to první pole odesíláš. Zkus toto:

<?
$predmet = $_POST['predmet'];
$email = $_POST['email'];
$smap = $_POST['spam'];
$zprava = $_POST['zprava'];
$zprava2 = $_POST['zprava2'];
$zprava3 = $_POST['zprava3'];
$zprava4 = $_POST['zprava4'];
$zprava5 = $_POST['zprava5'];

if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2")
{
$odesilana_zprava = $zprava."<br />druhá část:".$zprava2."<br />třetí část:".$zprava3."<br />čtvrtá část:".$zprava4."<br />pátá část:".$zprava5;
Mail("aq.amlife@seznam.cz", $predmet, $odesilana_zprava, "From: " . $email);
echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";
}
else
{
echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo nevíte kolik je 1 + 1.</p>";
}
?>


aj tu je chyba:
$smap = $_POST['spam']; niei SMAP ale SPAM

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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