Autor Zpráva
marorx
Profil
 <h1>Kontaktní formulář</h1>
          <p>Zašlete nám email</p>
          <form id="contact" action="contact.php" method="post">
         <div class="form_settings">
              <p><span>Jméno / Firma</span><input class="contact" type="text" name="your_name" value="" /></p>
              <p><span>Email Adresa</span><input class="contact" type="text" name="your_email" value="" /></p>
              <p><span>Zpráva</span><textarea class="contact textarea" rows="5" cols="50" name="your_message"></textarea></p>
              <p style="padding: 10px 0; line-height: 2em;">Prevence spamu, prosím odpovězte na následující otázku</p>
              <p><span><?php echo $number_1; ?>2 + 3<?php echo $number_2; ?> = ?</span><input type="text" name="user_answer" />
              <input type="hidden" name="answer" value="<?php echo $answer; ?>" /></p>
              <p style="padding-top: 15px"><span>&nbsp;</span><input class="submit" type="submit" name="kontakt_submitted" value="odeslat" /></p>
            </div>
          </form>


contact.php

<
<?php

$to = "konecnymarek@centrum.cz";
$extra = "From: $your_email\r\nReply-To: $your_message\r\n";
$subject = "Vzkaz od ".$your_name."";
$mess = "Jméno: ".$your_name."\nZprava:".$your_message."\nEmail: ".$your_email." \n";

mail ($to, $subject, $mess, $extra);

?


S php dělám poprvé, nevíte co můžu mít špatně.
Diky Marek
panther
Profil
marorx:
proměnné z formuláře jsou v $_POST['name_daneho_pole'].
marorx
Profil
panther:

Promiň ,ale pořát nechápu

Když na stránce kliknu odeslat, hodí mě to sice na contact.php ale napiše :

405 - HTTP verb used to access this page is not allowed.
The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access.
pedro-7
Profil
Musim pouzit funkciu $_GETalebo $_REQUEST mas napriklad <p><span>Jméno / Firma</span><input class="contact" type="text" name="your_name" value="" /></p> tak v php to bude vyzerat takto
[pre]
<?php

$extra = "From: '{$_REQUEST['your_name']}'l\ atd...
?>
panther
Profil
marorx:
ale napiše
to jsem fakt nevyvěštil.

V uvedeném kódu chyba není, snad jen, že jsou v něm nedefinované proměnné, viz [#2].

pedro-7:
Musim pouzit funkciu $_GETalebo $_REQUEST
ani jdno z toho není funkce a ani jedno bych zde nepoužíval. Jedno fungovat nebude, druhé nedoporučuji. Řešení padlo v [#2], proč zde přibyl tenhle bastl?
peta
Profil
uzivatel html -> posle server -> server zpracuje php -> php udela html -> posle uzivateli

$extra = "From: $your_email\r\nReply-To: $your_message\r\n";
$subject = "Vzkaz od ".$your_name."";
$mess = "Jméno: ".$your_name."\nZprava:".$your_message."\nEmail: ".$your_email." \n";
Ta promenna sama od sebe nezvnikne, pokud to nemas specialne povolene v php. Mas? Nemas. Takze se ulozi do pole $_GET, $_POST nebo $_REQUEST.

panther
<form id="contact" action="contact.php" method="post">
proměnné z formuláře jsou v $_POST['name_daneho_pole']. 
Formular pouziva metodu post, promenne se ulozi do pole $_POST. To uz psal panther.
Klidne si vypis vsechno, co bylo poslane formularem pomoci print_r($_POST);

<textarea class="contact textarea" rows="5" cols="50" name="your_message">
$_POST['name_daneho_pole']
Nazvy promennych se pak musi shodovat. V tomto pripade se v pantherove odpovedi lisi, protoze se mu nechtelo vypisovat vsechny promenne. Priklad pro jednu promennou:
$your_message = $_POST['your_message'];
echo 'your_message = ' . $your_message;

panther: [#3] - psal, ze to nepochopil.
mimochodec
Profil
peta:
<textarea class="contact textarea" rows="5" cols="50" name="your_message">
$_POST['name_daneho_pole']Nazvy promennych se pak musi shodovat. V tomto pripade se v pantherove odpovedi lisi, protoze se mu nechtelo vypisovat vsechny promenne. Priklad pro jednu promennou:
$your_message = $_POST['your_message'];echo 'your_message = ' . $your_message;$your_message = $_POST['your_message'];
echo 'your_message = ' . $your_message;

Ty drogy tě jednou zničí.

Aby to trochu dávalo smysl:
Shodovat se musí name prvku formuláře a klíč pole $_POST[], tedy

<textarea class="contact textarea" rows="5" cols="50" name="your_message">

..
$zprava = $_POST['your_message'];

Naopak proměnná, do které se hodnota z toho prvku přiřadí (v tomo případě $zprava), je postě jakákoliv proměnná. Pro přehlednost ji lze pojmenovat stejně jako se jmenuje ten formulářový prvek, ale tím to končí.
peta
Profil
mimochodec:
To jsem myslel tak, aby nemusel upravovat zbytek kodu ze stareho php, ktery nejspis funguje. Viz priklad, ktery jsem uvedl. Ale trochu ho rozsirim, aby to bylo jasnejsi...

<textarea class="contact textarea" rows="5" cols="50" name="your_message">
$your_message = $_POST['your_message'];
echo 'your_message = ' . $your_message;
(to bile podsviceni z [I] tlacitka diskuse neni moc videt :) )

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: