Autor Zpráva
HonzaKo
Profil
Ahoj, mohl by mi prosím někdo poradit, jak následující skript upravit tak, aby všechna odesílaná data (snad kromě předmětu, ale to je už jedno) byla povinná? Zatím jsem narazil pouze na využití JS, což se mi nechce používat. Děkuji

<?
				
$zprava = "Název subjektu: {$_POST['subjekt']}\r\n";
$zprava .= "Region: {$_POST['region']}\r\n";	
$zprava .= "Vybraný tarif: {$_POST['tarif']}\r\n";	
$zprava .= "Jméno: {$_POST['jmeno']}\r\n";	
$zprava .= "Pozice: {$_POST['pozice']}\r\n";	
$zprava .= "Kontakt: {$_POST['kontakt']}\r\n";	
$zprava .= "Podrobnosti: {$_POST['podrobnosti']}\r\n";
$predmet = "online OBJEDNÁVKA prezentace";
$kontakt .= "{$_POST['kontakt']}\r\n";


if ($zprava!="")
				
{
Mail("info@konferencniakce.cz", $predmet, $zprava, "From: " . $kontakt);
echo "<p><strong>Vaše poptávka byla úspěšně odeslána, děkujeme. Nyní budete přesměrováni zpět.</strong>.</p>";
}
else
{
echo "<p>Vaši poptávku se <strong>nepodařilo odeslat</strong>Pravděpodobně jste nevyplnili všechny údaje. Použijte tlačítko zpět ve Vašem prohlížeči k doplnění údajů.</p>";
} 
?>
</p>
GeneralDv
Profil
Stačí přidat podmínku

<?php
if (empty($_POST["subjekt"])) {
    echo "blábol";
} elseif (empty($_POST["jmeno"])) {
    echo "";
    // .....
} else {
    //další podmínka pro odeslání emailu
}
?>


Dával bych si pozor taky na zpětná lomítka..
Alphard
Profil
<?php
if (!empty($_POST['subjekt']) && !empty($_POST['region']) && !empty($_POST['tarif']) && !empty($_POST['jmeno']) && !empty($_POST['pozice']) && !empty($_POST['kontakt']) && !empty($_POST['podrobnosti']))
{
  $zprava = "Název subjektu: {$_POST['subjekt']}\r\n";
  $zprava .= "Region: {$_POST['region']}\r\n";
  $zprava .= "Vybraný tarif: {$_POST['tarif']}\r\n";
  $zprava .= "Jméno: {$_POST['jmeno']}\r\n";
  $zprava .= "Pozice: {$_POST['pozice']}\r\n";
  $zprava .= "Kontakt: {$_POST['kontakt']}\r\n";
  $zprava .= "Podrobnosti: {$_POST['podrobnosti']}\r\n";
  $predmet = "online OBJEDNÁVKA prezentace";
  $kontakt = "{$_POST['kontakt']}\r\n";

  if(mail("info@konferencniakce.cz", $predmet, $zprava, "From: " . $kontakt))
  {
    echo "<p><strong>Vaše poptávka byla úspěšně odeslána, děkujeme. Nyní budete přesměrováni zpět.</strong>.</p>";
  }
  else
  {
    echo "<p><strong>Vaše poptávku se nepodařilo odeslat. Chyba pravděpodobně není na vaší straně. Zkuste to za chvíli nebo kontaktujte admina na adrese admin@example.cz</strong>.</p>";
  }
}
else
{
  echo "<p>Nevyplnili jste všechny údaje, vaše poptávka nebyla odeslána. Použijte tlačítko zpět ve Vašem prohlížeči k doplnění údajů.</p>";
}
HonzaKo
Profil
Super, moc děkuji. jde ještě nějak nastavit, aby podmínka platila i pro případ, že by někdo nezměnil obsah předvyplněného formuláře? Rozuměj:
Z úspory místa jsou názvy polí vepsány přímo do pole. Pokud host klikne rovnou na odeslat, odešlou se definované pole, na mail tedy přijde
Název subjektu: Název subjektu
Region: Region
....
Jde toto nejak osetrit, aby se formular neodeslal, pokud budou stále vepsána tato spojení? Děkuji.
Alphard
Profil
Do podmínky stačí doplnit $_POST['region'] != "Region"
HonzaKo
Profil
Jak to tam mám prosím doplnit? Když to tam vložím, přestane mi skript fungovat
Alphard
Profil
if (!empty($_POST['subjekt']) && $_POST['subjekt'] != "Název subjektu" && ...)
HonzaKo
Profil
Geniální. Moc děkuji, nyní vše funguje perfektně. Ještě jsem se chtěl zeptat, zda by šlo teoreticky udělat to, aby se po vypsání výsledků z formuláře auomaticky skript přesměroval zpět na stránku

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:

0