Autor Zpráva
n44b
Profil
Potřeboval bych poradit s nastavením funkce Mail() na tomto formuláři :

http://www.proctonejde.wz.cz/formular/kontakt.html

je to formulář vytvořený na http://www.phpform.org/
Vytvoření formuláře probíhá pomocí průvodce, ve kterém si formulář v podstatě naklikáte. Výsledek vaší práce na formuláři vám pForm nabídne ke stažení zdarma.

Jde o to že při tom jak formulář vytváříte si můžete vybrat vzhled ,přidat různé kolonky jako jméno, adresa atd. ale už se vás to nikde nezeptá na jaký e-mail mají být ty informace poslány.

proto sem skusil vytvořit vlastní odesílací script ,který vypadá takto :

<? if ( Mail("xxxxxx@xxxxxx.cz", $element_1, $element_3, "From: " . $element_2) )
echo "Mail byl odeslán";
else echo "Mail se nepodařilo odeslat"; ?>

jenže problém je v tom že to co je v těch prvních dvou kolonkách (jméno a příjmení) vůbec na e-mail nepřijde když zadám místo $element_1 - $element_1_1 tak přijde alespoň jméno ,ale když zadám $element_1_1 a $element_1_2 :

<? if ( Mail("xxxxxx@xxxxxx.cz", $element_1_1, $element_1_2, $element_3, "From: " . $element_2) )
echo "Mail byl odeslán";
else echo "Mail se nepodařilo odeslat"; ?>

tak to jen napíše nějakou chybovou hlášku :
http://www.proctonejde.wz.cz/formular2/kontakt.html

Warning: mail(): SAFE MODE Restriction in effect. The fifth parameter is disabled in SAFE MODE. in /3w/wz.cz/p/proctonejde/formular2/nwm.php on line 1
Mail se nepodařilo odeslat

Pak sem to ješte udělal jinak ale je to řešení ala škrábát se pravou rukou za levým uchem
druhou kolonku sem smazal takže jméno a příjmení bude v jedné kolonce :

http://www.proctonejde.wz.cz/formular3/kontakt.html

<? if ( Mail("xxxxxx@xxxxxxx.cz", $element_1_1, $element_3, "From: " . $element_2) )
echo "Mail byl odeslán";
else echo "Mail se nepodařilo odeslat"; ?>

a navíc ještě další dva problémy první je ten že se e-maily odesílají v nějakém divném jazyce takže např.místo Dobrý den příjde na e-mail Dobr? den

a druhý problém je ten že když mám ten formulář daný na webzdarma tak se aspoň něco odesílá ale když ho dám na c4 kde si platím webhosting tak se vždy odešle prázdý e-mail :(
na webzdarma je odesílání e-mailů omezené na 10 e-mailů za hodinu

Poraďte prosím někdo....
radas
Profil *
myslím si že tohle by tě mohlo inspirovat a odpovědět na všechny tvé otazky
  $jmeno = 'radas';  
   $kontakt= 'radek@localhost.cz';
   $recipient =   'radek@localhost.cz';
   $subject = 'predmet:test';  
   $message = 'zpravaa <b>e-mailu</b> - new mail...';  
     
   $headers  = "From: ".$jmeno."<".$kontakt.">\r\n";  
   $headers .= "X-Sender: <".$kontakt.">\r\n";  
   $headers .= "X-Mailer: PHP\r\n";  
   $headers .= "X-Priority: 3\r\n";  
   $headers .= "Return-Path: <".$kontakt.">\r\n";  
  $headers .= "Content-type: text/html; charset=UTF-8\r\n";  
     
   if( @mail($recipient, $subject, $message, $headers) )  
   {  
     echo 'E-mail byl úspěšně odeslán.';  
   }else{  
     echo 'Chyba: E-mail se nepodařilo odeslat.';  
   }  
n44b
Profil
mno tak sem to udělal podle toho cos mi sem napsal ale steně to nefunguje jak má
Nevím jak mám nastavit jmeno,kontakt a message vždy je tam něco jiného než co napíšu do toho formuláře ,nevím jak mám udělat ,aby mi nechodilo na e-mail element_1_1,element_2,element_3 ale ten text s toho formuláře

<? $jmeno = 'element_1_1';
$kontakt= 'element_2';
$recipient = 'xxxxxxxxxx@xxxxxx.cz';
$subject = 'předmět';
$message = 'element_3';

$headers = "From: ".$jmeno."<".$kontakt.">\r\n";
$headers .= "X-Sender: <".$kontakt.">\r\n";
$headers .= "X-Mailer: PHP\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "Return-Path: <".$kontakt.">\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";

if( @mail($recipient, $subject, $message, $headers) )
{
echo 'E-mail byl úspěšně odeslán.';
}else{
echo 'Chyba: E-mail se nepodařilo odeslat.';
}

?>
Študy
Profil *
zdar mrkni se na můj:

v html:

          Formulář pro odesílání emailu přímo z tohoto webu.<br><br>
          <form action="kontakt.php">    Vaše jméno: 
            <input name="jmeno_odesilatele"> 
            <br>    Váš mail: 
            <input value="@" name="mail_odesilatele"> 
            <br>    Jíný kontakt: 
            <br> 
            <textarea name="kontakt" style="width: 185px;"></textarea> 
            <br><b>Zpráva:</b> 
            <br> 
            <textarea name="zprava" style="width: 375px; height: 150px;"></textarea> 
            <br>    Tato zpráva je: 
            <br> 
            <select name="predmet"> 
              <option valuve="Upozornení na chybu"> Upozornění na chybu 
              <option valuve="Objednávka"> Objednávka 
              <option valuve="Pokec"> Pokec 
              <option valuve="Ostatni"> Ostatní
            </select> 
            <br> 
            <br> 
            <input type=submit value="Odeslat"> 
            <input type=reset value="Vymazat">
          </form>


v kontakt.php:

<?php
$zprava=$zprava."


další kontakt:
".$kontakt."
s pozdravem ".$jmeno_odesilatele;

?>

<?php if ( Mail("studyjan@gmail.com", $predmet, $zprava, "From: " . $mail_odesilatele) )
echo "Mail byl odeslán";
else echo "Mail se nepodařilo odeslat, prosím zkuste to znovu"; ?>


ale stejne je to zvlástní protože tam u tebe navidim zádnou chybu...
radas
Profil *
ty máš zapnuté global register? zkusím ti to nějak vyličit

tvůj formulář..to nejpodstatnější...

<form id="form_73390" class="appnitro" method="post" action="">
label class="description" for="element_1">Vaše jméno </label>
<input id="element_1_1" name= "element_1_1" class="element text" maxlength="255" size="8" value=""/>
<label>Jméno</label>
<input id="element_1_2" name= "element_1_2" class="element text" maxlength="255" size="14" value=""/>
<label>Příjmení</label>
<label class="description" for="element_2">Váš E-mail </label>
<input id="element_2" name="element_2" class="element text medium" type="text" maxlength="255" value=""/>
<label class="description" for="element_3">Zpráva </label>
<textarea id="element_3" name="element_3" class="element textarea medium"></textarea>
</form>

je to krasné ale do action napis nazev obslužného scriptu (kontkat.php) a nazvy vstupních poli (input) element_1_1 ti za půl roku nic neřekne...takže dopručuji předělat nazvy těch inputu aby jsi se v tom vyznal...


<form id="form_73390" class="appnitro" method="post" action="">
label class="description" for="element_1">Vaše jméno </label>
<input id="element_1_1" name= "jmeno" class="element text" maxlength="255" size="8" value=""/>
<label>Jméno</label>
<input id="element_1_2" name= "prijmeni" class="element text" maxlength="255" size="14" value=""/>
<label>Příjmení</label>
<label class="description" for="element_2">Váš E-mail </label>
<input id="element_2" name="email" class="element text medium" type="text" maxlength="255" value=""/>
<label class="description" for="element_3">Zpráva </label>
<textarea id="element_3" name="zprava" class="element textarea medium"></textarea>
</form>

všimni si že jsem přejmenoval ty tvoje vstupni pole...no a teď "me" samotné php bude vypadat tak to...



 $jmeno = 'n44b'; ///tvoje  
   $kontakt= 'n44b@n44b.cz';//tvuj email
   $recipient =   $_POST["email"];
   $subject = 'vzkaz z www';  
   $message =$_POST["zprava"];
     
   $headers  = "From: ".$jmeno."<".$kontakt.">\r\n";  
   $headers .= "X-Sender: <".$kontakt.">\r\n";  
   $headers .= "X-Mailer: PHP\r\n";  
   $headers .= "X-Priority: 3\r\n";  
   $headers .= "Return-Path: <".$kontakt.">\r\n";  
  $headers .= "Content-type: text/html; charset=UTF-8\r\n";  
     
   if( @mail($recipient, $subject, $message, $headers) )  
   {  
     echo 'E-mail byl úspěšně odeslán.';  
   }else{  
     echo 'Chyba: E-mail se nepodařilo odeslat.';  
   } 


snad tam neni nikde překlep...
n44b
Profil
radas tak jak si to napsat to nefunguje... neměl by můj e-mail být vepsaný spíše do $recipient než do $kontakt ? ja nevím ale když to prohodím a dám e-mail do $recipient tak aspoň nějaký e-mail příjde když to nechám takhle tak to jen napíše že byl e-mail odeslán ale nic nepříjde navíc recipient v aj. znamená příjemce a taky jak je tam $headers .= "X-Sender: <".$kontakt.">\r\n"; tak sender v aj. znamená odesilatel a jestli to dobře chápu tak to odkazuje na $kontakt takže proto mi pak ty e-maily pořád chodí jako by s mojí adresy místo odesilatele je tam můj e-mail funguje jen předmět ,zpráva je prázdná takže už fakt nevím co s tím :(
skusím to pak ještě udělat podele toho jak to napsal študy ale to mi asi moc nepomůže
radas
Profil *
<?
if (isset($_POST["pridat"]) )
{
$jmeno = $_POST["jmeno"]." ".$_POST["prijmeni"]; ///tvoje
$recipient = 'lyckar@post.cz';//tvuj email
$kontakt = $_POST["email"];
$subject = 'vzkaz z www';
$message =$_POST["zprava"];

$headers = "From: ".$jmeno."<".$kontakt.">\r\n";
$headers .= "X-Sender: <".$kontakt.">\r\n";
$headers .= "X-Mailer: PHP\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "Return-Path: <".$kontakt.">\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";

if( @mail($recipient, $subject, $message, $headers) )
{
echo 'E-mail byl úspěšně odeslán.';
}else{
echo 'Chyba: E-mail se nepodařilo odeslat.';
}

}


?>
<form method="post" action="xkontakt.php">
<input id="element_1_1" name= "jmeno" class="element text" maxlength="255" size="8" value=""/><br>
Jméno<br>
<input id="element_1_2" name= "prijmeni" class="element text" maxlength="255" size="14" value=""/><br>
Příjmení<br>
Váš E-mail
<input id="element_2" name="email" class="element text medium" type="text" maxlength="255" value><br>
<textarea id="element_3" name="zprava" class="element textarea medium"></textarea><br>
<input type="submit" name="pridat" value="Odeslat" />
</form>


funkční otestovane...
n44b
Profil
ok dííky moc už to funguje ,jestli přišel nějaký e-mail na tu adresu co je tam napsaná tak se omlouvám sem se překlep a nenapsal tam tu svojí ,jinak už vše funguje díky moc
radas
Profil *
jo v pohodě..prosím o vymazani mého e-mailu z této diskuze ..(ať mi nechodi nevhodné maily)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0