Stránka 1 z 2

formulář na webu nefunguje

Napsal: 07 bře 2018 11:17
od tobiasekll
Zdravím,
snažím si vytvořit si jednoduchý web. Stáhl jsem si šablonu z netu free a kamarád mi ji upravil podle mých představ. Na webu je formulář sloužící ke kontaktování (kdyžtak screen níže), ten ale nefunguje, když stránku otevřu na mém local pc, emaily prostě nechodí.
Hádám, že celý mail se nastavuje přes PHP, protože ve složce mail, se žádný jiný soubor než toto PHP nevyskytuje. Zkoušel jsem tam zadat svůj email, ale bez výsledku.
Jak mám udělat aby to fungovalo. Je vůbec možné, tenhle formulář zprovoznit na local pc bez toho, aby byl někde u poskytovatele?

php.JPG
formular.JPG


Děkuji moc za odpověď.

Re: formulář na webu nefunguje

Napsal: 07 bře 2018 19:12
od tobiasekll
Tak jsem si koupil hosting a vše funguje. Ovšem mám jiný problém, formulář nezvládá diakritiku a email přijde rozsypaný...
Nevíte někdo jak na to? Hledám po internetu, ale PHP vůbec nerozumím, nejsem z toho vůbec moudrý.

Kód:

Kód: Vybrat vše

<?php
// Check for empty fields
if(empty($_POST['name'])        ||
   empty($_POST['email'])       ||
   empty($_POST['message'])   ||
   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {
   echo "No arguments Provided!";
   return false;
   }
   
$name = $_POST['name'];
$email_address = $_POST['email'];
$message = $_POST['message'];
   
// Create the email and send the message
$to = 'jmeno@pl.cz'; // Add your email address inbetween the '' replacing yourname@yourdomain.com - This is where the form will send a message to.
$email_subject = "Website Contact Form:  $name";
$email_body = "Nová zpráva.n\n\"."Detaily:n\n\Name: $namen\n\Email: $email_addressn\n\Message:n\$message";
$headers = "From: noreply@pl.cz"; // We recommend using something like noreply@yourdomain.com.
$headers .= "Reply-To: $email_address";   
mail($to,$email_subject,$email_body,$headers);
return true;         
?>

Re: formulář na webu nefunguje

Napsal: 07 bře 2018 19:40
od LuCaCZ
Do hlavičky mailu přidat typ kódování "Content-Type: text/plain;charset=utf-8" pokud se bude posílat mail jako prostý text, nebo jako html "Content-Type: text/html;charset=utf-8" a php uložit taky s kódováním UTF-8

Takže před řádek s mail() přidat

Kód: Vybrat vše

$headers .= "Content-Type: text/plain;charset=utf-8"; 


pravděpodobně to ale bude chtít ještě další header parametry

Re: formulář na webu nefunguje

Napsal: 07 bře 2018 19:49
od tobiasekll
Mohl by si mi prosímtě poslat výsledný kód? PHP vůbec nerozumím.

Re: formulář na webu nefunguje

Napsal: 07 bře 2018 20:07
od LuCaCZ

Kód: Vybrat vše

<?php
// Check for empty fields
if(empty($_POST['name'])        ||
   empty($_POST['email'])       ||
   empty($_POST['message'])   ||
   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {
   echo "No arguments Provided!";
   return false;
   }
   
$name 
= $_POST['name'];
$email_address = $_POST['email'];
$message = $_POST['message'];
$nl = "\n\n"; //new line - novy radek
   
// Create the email and send the message
$to = 'jmeno@pl.cz'; // Add your email address inbetween the '' replacing yourname@yourdomain.com - This is where the form will send a message to.
$email_subject = "Website Contact Form:  $name";
$email_body = "Nová zpráva.".$nl."Detaily:".$nl."Name: $name".$nl."Email: $email_address".$nl."Message:".$nl."$message";
$headers = "From: noreply@pl.cz".$nl; // We recommend using something like noreply@yourdomain.com.
$headers .= "Reply-To: $email_address".$nl;
$headers .= "Content-Type: text/plain;charset=utf-8";
mail($to,$email_subject,$email_body,$headers);
?>

Re: formulář na webu nefunguje

Napsal: 07 bře 2018 20:54
od tobiasekll
Ne to nefunguje, a najednou mi začla chodit pošta do spamu. Wtf
Začínám být fakt zoufalý

Re: formulář na webu nefunguje

Napsal: 07 bře 2018 22:13
od LuCaCZ
tak řádek

Kód: Vybrat vše

$nl "\n\n"//new line - novy radek 

změnit na

Kód: Vybrat vše

$nl "\n"//new line - novy radek 

Re: formulář na webu nefunguje

Napsal: 07 bře 2018 22:36
od tobiasekll
To nefunguje vůbec :D

Re: formulář na webu nefunguje

Napsal: 07 bře 2018 22:41
od LuCaCZ
Píše to nějakou chybu ?
Jaká je adresa toho webu?

Re: formulář na webu nefunguje

Napsal: 07 bře 2018 22:46
od tobiasekll
Nene prostě pošlu přes ten formulář mail a nedorazí.
web zde web

Re: formulář na webu nefunguje

Napsal: 07 bře 2018 22:57
od LuCaCZ
Nu .. furmulář posílá data na souboru https://plantaen.cz/mail/contact_me.php
a jeho obsah jde zobrazit - což je dosti závažná bezpečnostní chyba....

Kód: Vybrat vše


<?php

if 
( empty($_POST['name']) || empty($_POST['email']) || empty($_POST['message']) || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) {
  echo "No arguments Provided!";
  exit();
}
 else {
  $name = $_POST['name'];
  $email_address = $_POST['email'];
  $message = $_POST['message'];
  $email_subject = "Website Contact Form: $name";
  $email_body = ''."\r\n";
  $email_body .= "Nova zprava z webu.\n\n"."Udaje:\n\nJmeno: $name\nEmail: $email_address\n\nMessage:\n$message"; 
  $headers 
= 'MIME-Version: 1.0'."\r\n";
  $headers .= 'Content-type: text/html; charset=utf-8'."\r\n";
  $headers .= 'From: plantaen <"noreply@plantaen.cz">';
  mail("mail@mail.mail", $email_subject, $email_body, $headers);
  echo "Done!";
  exit();
}

?>

nevidím tam žádnou chybu

Re: formulář na webu nefunguje

Napsal: 08 bře 2018 07:20
od tobiasekll
Ten poslední koód mám použít? Kde v tom kódu mám zadat schránku, do které chci, aby mi přicházeli emaily z webu? :)
Jen, že to v tom kódu nevidím, tak by mě zajímalo, jak to pozná, kam to má jít.

Edit: Tak to funguje a i s diakritikou :), akorát je to vše nalepené nějak na sebe (entery nefungují), jinak díky moc!