Diskuze: PHP - prázdný formulář
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 19 zpráv z 19.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
To jako vážně???!!!! Ty chceš zasílat tyto údaje mailem? Jméno a příjmení, číslo karty, platnost... Buď rád, že ti to nefunguje. Toto vážně není dobrý nápad. V lepším případě dostaneš jen pokutu za porušení GDPR, v tom horším (až to někdo zneužije) budeš čelit trestnímu stíhání.
Takhle to funguje všude a už dlouho. V jiném případě jak by jsi to t Dy řešil ty?
Souhlasím s Jaroslavem, opravdu není bezpečné to posílat, buď rád že ti to nefunguje, kdyby ti to fungovalo, tak už ti to nikdo neřekne. Jako náhradu bych spíše navrhl způsob že pošleš odkaz který bude fungovat jen tomu uživateli (bude se muset přihlásit) a tam budeš mít vypsané to co potřebuješ a nebo najdi nějaké jiné řešení, ale takovýto způsob určitě není ten pravý.
Tato data by měla být šifrována tzn počínaje HTTPS, až do uložení šifrovaného záznamu do databáze. Klient by měl dostat email kde by bylo vidět max. první 4 číslice karty, určitě ne platnost. Nejlépe, aby každý klient měl vytvořený svůj účet a pomocí něj mohl spravovat a zobrazovat platební metody atd. Opět přes šifrovanou komunikaci. S tímhle není legrace.
Ale tohle je rezervační formulář, který jde na email schránku, která je zabezpečena. A je to formulář na penzion
A tedy je problém jen v té kartě nebo celkově. Protože jak má penzion získat garanci když tam nedají kartu (ty informace jdou jen na ten e-mail recepce a oni pak zvlášť kontaktují dotyčného)
To je úplně jedno, co to je a k čemu to je. Prostě nemůžeš takhle
nakládat s citlivými údaji a ještě k tomu najednou v 1 emailu, který je
generovaný. BTW: cvc kód bys od nich nechtěl? Jak jsem ti psal, pokud chceš
tyto údaje zpětně avizovat klientům, chtělo by to celé od základu
předělat. Pokud se jedná pouze o rezervační systém, tak nepotřebuješ
číslo karty ani platnost. A máš vůbec ošetřený systém rezervací? Co
když ti na 1 den přijdou 3, 4 rezervace o celkovém počtu 30 osob a ty budeš
mít kapacitu jen pro 10, ale všem už automaticky pošleš potvrzení? To je
trochu na hov**, že? Proto je potřeba stejně systém postavit na databázi,
kde při další rezervaci budeš ověřovat dostupnost. Nehledě na komfort
při vyhledávání a další správě rezervací a osobních údajů. Na tvém
místě bych se vrátil na úpný začátek k návrhu systému.
Cvc kód mám rozepsány, a kapacitu taky vyřešenou jde mi jen o to že oni to výplní a mě ty informace jdou do schránky (tu kartu smažu po domluvě se zákazníkem - upozornil jsem je na to) a oni pak každého osobně kontaktují . Jde mi o klasické informace jméno příjmení datum rezervace atd
Cvc kód mám rozepsány
Jak rozepsány? CVC kód je na zadní straně platební karty a nelze bez
něj provést platbu online
Nezlob se, ale nevypadá to, že bys byl profesionál nebo alespoň měl měl
snahu vzít si k srdci rady, které se ti tu snažíme dát, proto se nebudu
podílet dál na řešení tvého problému. Doporučím ti jen pročíst si
místní tutoriál o základech php, kde je popsán kontaktní formulář https://www.itnetwork.cz/…ovy-formular
Já myslel jiný kód což je ale jedno. Profesionál nejs věnuji se Javě ne PHP tohle mám jen jako bokovku ale což byl i důvod proč jsem psal o radu. Děkuji že jste mi připomněli zákony jinak z PHP jste mi nic neporadili
Tak proč to nenapíšeš v Java EE a trápíš se s php? Nechápu. A ohledně php jsme ti poradili formou odkazu na článek Davida Čápky, který tam podrobně popisuje kód pro tvorbu kontaktního formuláře.
Protože jsem měl nápad jak to udělat přes PHP a nic ve zlém ale ten článek mi nepomůže to co tam je už dávno mám
Není to těmi tečky které tam máš? ".$jmeno."
Jinak bych možná volil u tich variable zapsání takovým to způs
$subject = "Rezervace od" . $jmeno;
a nebo $subject = "Rezervace od $jmeno"
Nevím, proč by ti to nemělo pomoct. Ten jeho formulář funguje, tvůj ne. Dej sem celý obslužný kód formuláře, html formuláře a uvidíme. Pokud ho budeš vkládat, použij na to značky </> v editoru. Když to dáš do zprávy, těžko se v tom orientuje.
Ještě jsem se nesetkal s ubytováním, kde by po mně chtěli při
rezervaci číslo a platnost karty a abych pravdu řekl, asi bych rychle ty
stránky opustil, kdyby toto chtěli. Existují lidé, kteří jednoduše
žádnou kartu nemají a hlavně nevidím jediný důvod, proč bych měl tuto
informaci někomu sdělovat. Pro rezervaci přeci není důležité, ze které
karty se to bude pak platit, ale důležitý může být způsob úhrady...
A co se týče toho formuláře, trošku nechápu jaký jsi měl nápad na PHP,
když v tom neděláš? Pokud umíš Javu, tak to spáchej v Javě, uživateli
je stejně jedno, v čem je to psané, pro něj je důležitý výsledek...
https://www.itnetwork.cz/…ovy-formular
Ten clanek se mi nelibi. Mam radeji reseni copy-paste uplny funkcni kod. V tom
clanku 70% kodu schazi. Kod je roztrhany na ruzna mista textu. A obsahuje
chyby.
Dominik Kutil - kdyz ti to nefunguje, tak postup je takovy, ze do google
zadas klicova slova a najdes jiny kod, ktery by mohl fungovat. A tak postupujes,
dokud nenarazis na kousek kodu, ktery funguje. jj, jeste se musis hodne ucit
Dominik Kutil - A davas sem polovicni kod. Treba je chyba nekde jinde. A nasledujici kod jsem netestoval. Precti si hlavne poznamky s !!!. Kdyz smazes ty komentare, tak se dostanes zhruba na podobny pocet radku, jenom je ten kod prehlednejsi.
<?php
function abc($post=null)
{
// !!! tohle ty tam napriklad vubec neresis,
// zda uz bylo kliknuto na tlacitko odeslat, pak odesilas prazdne udaje, nejspis, uz pri nacteni stranky
// byl formular odeslan?
// ! Pozn: V html kodu mas <form method="post">, ne <form>, ne <form method="get">
$sended = is_array($post) && count($post)>0;
// $sended = is_array($post) && isset($post['xyz']) && isset($post['xyz']=='hodnota') // lepe neco takoveho
if (!$sended)
{
echo 'Html formular nebyl odeslan na server.';
return;
}
// precti form
$names = array(
// 'notify' => '',
'jmeno' => 'Jméno a příjmení',
'telefon' => 'Telefoní číslo',
'email' => 'Emailová adresa',
'prijezd' => 'Datum příjezdu',
'odjezd' => 'Datum odjezdu',
'osoby' => 'Počet osob',
'pokoj' => 'Typ pokoje',
'poznamka'=> 'Přání a upřesnění',
'karta' => 'Číslo platební karty',
'kartajmeno' => 'Jméno držitele karty',
'kartaplatnost' => 'Platnost karty'
);
$form = array();
foreach ($names as $key=>$value)
{
$form[$key] = isset($post[$key]) ? $post[$key] : ''; // viz ten clanek, ten isset je tam nutny, ty to mas bez neho
}
// zde dopln validaci udaju - kontrola, zda jsou vyplneny spravne, jinak ti zahlti mail spam s viagrou
// vysledkem bude $validated = true nebo false
$validated = true;
if (!$validated)
{
echo 'Html formular je spatne vyplneny.';
return;
}
// mail
// $from = $form['email'];
$from = "[email protected]";
$reply = $form['email'];
$to = "[email protected]";
$subject = "Rezervace od ".$form['jmeno'];
$headers = array();
$headers[] = "From: $from";
$headers[] = "Reply-To: $reply";
$headers[] = "Return-To: $reply";
// if ($form['notify']==true)
// {
// $headers[] = "Disposition-Notification-To: $from";
// $headers[] = "Return-Receipt-To: $from";
// }
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'X-Mailer: PHP/' . phpversion();
$headers[] = 'Content-type: text/plain; charset=utf-8';
$headers[] = 'Content-Transfer-Encoding: 8-bit';
$headers = implode(PHP_EOL, $headers);
$arr = array();
foreach($form as $key=>$value)
{
$arr[] = $names[$key].': '.$value;
}
$message = implode("\n", $arr);
$sended = mail($to, $subject, $message, $headers);
if(!$sended)
{
echo "Nastala chyba. Prosím opakujte rezervaci"; // !!! tady jsi mel else a zadny prikaz
return;
}
echo "Email byl odeslán";
}
abc($_POST);
?>
Jo, tohle by mozna bylo moc fajn.
mb_internal_encoding - pridat, viz clanek
mb_send_mail - to jsem nikdy nepouzil, ale mozna by to bylo fajn kvuli
diakritice
DISKUZE = "bude hltit fora, aby mu nekdo pomohl tento problem resit"
A v tom clanku je spatne toto:
$hlavicka = 'From:' . $_POST['email'];
$hlavicka .= "\nMIME-Version: 1.0\n";
$uspech = mb_send_mail($adresa, $predmet, $_POST['zprava'], $hlavicka);
if ($_POST) // V poli _POST něco je, odeslal se formulář
echo('<p>' . $hlaska . '</p>');
A ten kod neni ve funkci, coz je mozna o 3 radky jednodussi, ale horsi pro
dalsi zpracovani. Novacek tu funkci nebude umet napsat spravne a DISKUZE.
Jinymi slovy, takove kody jsou k novackum znacne neprivetive.
Vzpominam si, jak skvela byla dokumentace k Turbo-pascal-6, kdy jsem zkopiroval
z ni asi 10 radku kodu pro read-key, ktery bych tehdy sam nevyplodil. Tehdy
zadny google nebyl
Děkuji konečně někdo kdo mi poradil
Zobrazeno 19 zpráv z 19.