BG Development


Страници: (4) 1 2 [3] 4   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Да направим контактна форма за сайт по стандартите, Семпла и работеща форма на HTML5 и PHP
BIGBUGEX
Публикувано на: 09-02-2024, 23:58
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1746
Регистриран на: 30.11.04



Бай Аз, relax4o е много опитен с веба. На мен ми помогна с точната стратегия за темплейти на Volt която в определен момент трябва да имплементирам. Ако има модерна библиотека за пхп, той ще знае как се използва.
PMEmail Poster
Top
Бай Аз
Публикувано на: 10-02-2024, 00:13
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 397
Регистриран на: 04.02.21



BIGBUGEX,

Не, не съм опитен! Разбирам добре само HTML и CSS!
От PHP имам само бегла представа, но нямам време и желание да го уча и него, и ползвам само някои PHP скриптове, когато са необходими.

Иначе аз знам за тази библиотека PHPMailer, но тя е направена за по-сложни ситуации: когато искаш примерно да прикачиш файл към писмото и т.н.т.

А в моят случай ми е достатъчна обикновената PHP функция за изпращане на писма: mail().

Това мнение е било редактирано от Бай Аз на 10-02-2024, 00:14
PMEmail Poster
Top
BIGBUGEX
Публикувано на: 10-02-2024, 00:34
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1746
Регистриран на: 30.11.04



То е ясно, че не си опитен. Но relax4o е опитен. Имам предвид да не му влизаш така с рогите, защото се опитва да ти помогне.
PMEmail Poster
Top
Бай Аз
Публикувано на: 10-02-2024, 00:45
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 397
Регистриран на: 04.02.21




BIGBUGEX,

Колко е опитен relax4o, не го знам!
Това, което виждам е, че се опитва не да помага, а да се заяжда с мен! Още в твоята тема започна!

Но както и да е. Стига толкова сме го чепкали това!

------------------------

Продължавам по темата:

Ще изпробвам още някои варианти за контактната форма, и ще напиша какъв е окончателният вариант, на който съм се спрял.

Това мнение е било редактирано от Бай Аз на 10-02-2024, 00:47
PMEmail Poster
Top
relax4o
Публикувано на: 10-02-2024, 01:12
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2849
Регистриран на: 04.04.07



QUOTE (Бай Аз @ 10-02-2024, 00:45)
BIGBUGEX,

Колко е опитен relax4o, не го знам!
Това, което виждам е, че се опитва не да помага, а да се заяжда с мен! Още в твоята тема започна!

Но както и да е. Стига толкова сме го чепкали това!

------------------------

Продължавам по темата:

Ще изпробвам още някои варианти за контактната форма, и ще напиша какъв е окончателният вариант, на който съм се спрял.

Някъде беше споменал, че си над 50г., нали? Разбирам, че на тази възраст имате проблем с възприемането на новия свят.

Ако искаш ще дам дизайна ти от другата тема на нашия UX/Web design екип да си изкажат мнението като професионалисти в това, което правят, ако си мислиш, че дрънкам само да се заяждам с теб.

Проблема при теб е, че ти пускаш теми, но в същото време не се доверяваш на мненията на хората от форума и ходиш четеш разни статийки наляво надясно. Въпроса е, защо въобще задаваш въпроси, ако не се опиташ да възприемеш практики от хора, които са минали през това?

То е ясно, че от темата на BIGBUGEX не ме понасяш, ама това си е твой проблем. Аз се опитвам да ти помагам, но знаеш как хората възприемаме мнението на хора, които не харесваме хаха.

Жив и здрав да си.

П.П. Да знаеш, че наистина се старая да не пиша в темите ти. icon_lol.gif


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
relax4o
Публикувано на: 10-02-2024, 01:34
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2849
Регистриран на: 04.04.07



QUOTE (Бай Аз @ 07-02-2024, 09:18)
ОК , остана ми малко време и за този въпрос.

Сега, разбрах, че трябва целия този код да бъде с условие за проверка, и накрая също трябва да има такова условие за проверка - дали съобщението е изпратено успешно?

Значи, кодът трябва да бъде примерно такъв:
CODE
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
   $name = $_POST["name"];
   $email = $_POST["email"];
   $subject = $_POST["subject"];
   $message = $_POST["message"]; // ТОЗИ РЕД ТРЯБВА ЛИ ДА ГО ИМА?

    $message = "Име: ".$_POST["name"]."\r\n";
    $message = wordwrap($message, 70, "\r\n");
    $message .= "E-mail: ".$_POST["email"]."\r\n";
    $message .= "Съобщение: ".$_POST["message"]."\r\n";

    $headers .= "Content-Type: text/plain; charset=utf-8";
   
   // Изпращаме имейла
   $success = mail("mymail@mysite.com", $subject, $message, $headers);

   if ($success) {
       echo "Вашето съобщение е изпратено успешно!";
   } else {
       echo "Грешка при изпращане на съобщението! Моля, опитайте отново!";
   }
}
?>

Да питам следното по този код:
CODE
$message = $_POST["message"]; // ТОЗИ РЕД ТРЯБВА ЛИ ДА ГО ИМА?

Има и варианти, при които в $message има по-малко неща, примерно само
CODE
$message = wordwrap($message, 70, "\r\n");

А повечето данни са в хедърите:
CODE
$headers = "From: $email\r\n"; // От кой е имейла
   $headers .= "Reply-To: $email\r\n"; // За отговор
   $headers .= "Content-Type: text/plain; charset=UTF-8\r\n"; // Кодиране на съобщението

Аз в началото го бях направил така, но не ми изписваше нищо в самото съобщение и по съвет на php програмист изместих тези данни:
CODE
$message = "Име: ".$_POST["name"]."\r\n";
    $message .= "E-mail: ".$_POST["email"]."\r\n";
    $message .= "Съобщение: ".$_POST["message"]."\r\n";

в съобщението.

Но кажете и вие, според вас как е по-правилно?

-----------------------------------------------------------------------------

Въпроси към thrawn

QUOTE
При POST заявки, обикновено се ползва PRG патерн (post/redirect/get) за да се избегне повторно изпращане на същите данни при рефреш.

Щом ти харесва с две страници правиш страницата с формата -> POST заявка към сървърът които връща 302 (да речем), което кара клиентът да пусне GET заявка към страницата със статусът (нова страница с това което връщаш в момента след изпращане на съобщението).

thrawn,
с какъв код точно се прави това?

QUOTE
Трябва да предвидиш и защита от флуд или направо да му изтряскаш една капча с която да отрежеш ботовете (това е редно да го има и при коментарите).

Капча не ми се слага, но такава защита от флуд(да има ограничение по време за изпращане на следващ коментар) ще е добре да се направи, а също и за системата за коментарите!

И как точно се прави тази защита от флуд?

Ако искаш да избегнеш всякакъв HTML въобще в имейлите, можеш да ползваш и https://www.php.net/manual/en/function.strip-tags.php, за да ги премахнеш изцяло. Особено, ако смяташ да оставиш съобщението като plain text.

Там, където ти е коментара "ТОЗИ РЕД ТРЯБВА ЛИ ДА ГО ИМА" - Не! На следващия ред, така или иначе презаписваш променливата.

Там, където директно използваш $_POST[...] е хубаво да ги санитизираш, дали с htmlspecialchars дали strip_tags, ти си реши какво искаш да постигнеш и кое би било по-добрия вариант за теб.

Колкото до хедърите. Те се четат от мейлинг провайдърите, за да знаят как да ти изпратят съобщението и как получателите да възприемат информацията.

Когато имаш Reply-To хедър, означава че, ако използваш функцията от твоя мейл клиент да върнеш отговор, клиента ти директно ще сложи имейл адреса в полето за получателя. В твоя случай би трябвало да е имейла на клиента (или потребителя, който ти е изпратил имейл).

Изпращане на имейли е сложно. Да, може да се направи простовато, но днешно време с всичките протекции, които се налагат като стандарти може да рефлектира лошо за теб и да спреш да получаваш поща дори от себе си.
За тези неща се правят допълнителни неща, но карай сега с лесното и си whitelist-ни имейла, от който очакваш да си получаваш пощата и би трябвало да си наред.


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
BIGBUGEX
Публикувано на: 10-02-2024, 02:03
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1746
Регистриран на: 30.11.04



Точно това и на мен ми направи впечатление. С някаква функция на пхп да се праща мейл... А кой конфигурира мейл сървъра и с какви инструменти не е ясно. И от какъв мейл се праща пощата също.
PMEmail Poster
Top
thrawn
Публикувано на: 10-02-2024, 06:58
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3864
Регистриран на: 17.01.17



Абе, SuN се опита да тролне нещо за 2024-та та малко и по тая тема.

Изпращането на имейли е архаична форма на комуникация. За чии му е на някой да изпраща мейл от контактна форма? Просто записваш данните на сървърът и като влезеш си ги четеш. Ако ти трябва нотификация в реално време, за получаване на запитване си има push нотификации. В краен случай (универсален) се използва меил като форма на нотификация (просто известие, че има ново съобщение и евентуално линк които да кликнеш за да отвориш съобщението).

Друг вариант е да се ползва viber бот като инструмент за нотификация или направо като интерфейс за двупосочна комуникация в реално време. А самия viber може да се замени с васеки чат клиент които предлага необходимите интерфейси.
PMEmail Poster
Top
Бай Аз
Публикувано на: 10-02-2024, 10:13
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 397
Регистриран на: 04.02.21




relax4o,

последен коментар пиша извън темата, за да се изясним изцяло.

ОК, разбрах твоята позиция, но ще ти кажа къде грешиш!

Значи човек винаги трябва да се държи коректно и с уважение към другите хора!

Аз съм уважаван човек в обществото: и на работа, и от съседите във входа примерно, и в местата по своите интереси, които посещавам, и от роднините на жена ми и навсякъде!
Врагове нямам и никого не мразя!

Защо съм уважаван?

Защото се държа добре, коректно, учтиво и възпитано, и с уважение към другите хора! И се стремя винаги да им помогна! И това не го правя проформа или само външно, а защото така го чувствам.

Но не обичам несправедливостите и мога "да запаля", когато видя такава, и да се ядосам и разгневя! А също и, когато някой, който не ме познава, се отнесе несправедливо и с обида към мен.

Та да ти обясня къде сгреши:

Сгреши в това, че ме нападна с обидни квалификации!

Можеше като човек да ми напишеш: не си прав за това, защото еди какво си - и да се аргументираш!
Тогава, аз нямаше да се подразня и изнервя, и проблем нямаше да има!

Имай предвид, че в живота, ако постъпиш така - в много случаи ще ядеш шамари и не само!

Да, може би има истина в това, което написа наскоро Стюи-то в една от темите си, че в интернет човек показва по-лошата си страна и се държи по-агресивно.
Но това не те оправдава!

И в интернет и навсякъде - човек е трябва да се държи учтиво, възпитано и коректно към другите хора!

Както и да е. Приключвам случая и няма да се сърдя, Бъди и ти жив и здрав!

Това мнение е било редактирано от Бай Аз на 10-02-2024, 10:15
PMEmail Poster
Top
relax4o
Публикувано на: 10-02-2024, 12:23
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2849
Регистриран на: 04.04.07



Отиди и прочети отново темата да ти се изясни на теб ТИ къде сгреши.

Аргументация при теб не работи и това се е видяло. Ти имаш свое мнение и ти казах, че методите ти са остарели. Ако това са обиди за теб - съжалявам, но ти трябва по-дебела кожа по форумите.

Последен коментар, не си играй да отговаряш. Оставих ти и един коментар по темата горе, да си щастлив.

QUOTE (BIGBUGEX)

Точно това и на мен ми направи впечатление. С някаква функция на пхп да се праща мейл... А кой конфигурира мейл сървъра и с какви инструменти не е ясно. И от какъв мейл се праща пощата също.


Поради тази причина никой не използва mail() директно, защото с нея могат да се объркат много неща. В PHP конфигурацията трябва да се посочи какво да ползва, за да изпраща имейлите, което е различно за различните ОС.

За това най-добре да се ползват провайдъри като Mandrill, SendGrid и прочие или поне да се ползва някаква мейлинг библиотека, която опростява нещата поне донякъде.



--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (4) 1 2 [3] 4  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0