Премини към съдържанието
  • Добре дошли!

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

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

     

форма на контакт в сайт


Препоръчан отговор


Здравейте, дайте някой скрипт за форма на контакт в сайт или нещо подобно. Искам клиентите да правят онлайн запитвания чрез сайта. Да се препраща запитването до фирменият имейл

Линк към този отговор
Сподели в други сайтове

Толкова ли си мързелив: http://www.google.bg...ck+form&spell=1

Редактирано от capnemo (преглед на промените)
Линк към този отговор
Сподели в други сайтове

Това при мен работи на 6. Иска работеща опция PHPMail на сървъра. Минус е, че няма защита като контролен въпрос или captcha картинка, но не е проблем да се намери безплатен скрипт с captcha.

http://www.freecontactform.com/email_form.php

Линк към този отговор
Сподели в други сайтове

Това при мен работи на 6. Иска работеща опция PHPMail на сървъра. Минус е, че няма защита като контролен въпрос или captcha картинка, но не е проблем да се намери безплатен скрипт с captcha.

http://www.freecontactform.com/email_form.php

Мерси...кой от двата файла да го кача на сървъра...нещо съм объркал май. contactform.htm,send_form_email.php

Линк към този отговор
Сподели в други сайтове

Как да наглася кодировката в .html и .php файловете, че да може да се праща текст на български

Пробвах с windows-1251 и UTF-8 - явно бъркам нещо


Линк към този отговор
Сподели в други сайтове

И при мен всичко тръгна с изключение че ако напиша Име и Фамилия на български ми дава грешка, а като ги изпиша на английски всичко е ОК.Кажи как да оправя проблема.

Линк към този отговор
Сподели в други сайтове

Някой ще погледне ли къде бъркам, от снощи си чукам главата?

Благодаря предварително

Качвам .пхп файла

form.php

Линк към този отговор
Сподели в други сайтове

Как да наглася кодировката в .html и .php файловете, че да може да се праща текст на български

Пробвах с windows-1251 и UTF-8 - явно бъркам нещо

Къде пишеш windows-1251 и UTF-8 ?

В хедъра ма съобщението ли ?

Добави :

$headers = 'MIME-Version: 1.0' . "\r\n";

$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

преди да изпратиш съобщението.

Линк към този отговор
Сподели в други сайтове

Пак не се получава

<?php

function ValidateEmail($email)

{

$pattern = '/^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i';

return preg_match($pattern, $email);

}

if($_SERVER['REQUEST_METHOD'] == 'POST')

{

$mailto = '[email protected]';

$mailfrom = isset($_POST['email']) ? $_POST['email'] : $mailto;

$subject = 'Contact form message';

$message = 'Values submitted from web site form:';

$success_url = '';

$error_url = '';

$error = '';

$eol = "\n";

$max_filesize = isset($_POST['filesize']) ? $_POST['filesize'] * 1024 : 1024000;

$boundary = md5(uniqid(time()));

$header = 'From: '.$mailfrom.$eol;

$header .= 'Reply-To: '.$mailfrom.$eol;

$headers = 'MIME-Version: 1.0' . "\r\n";

$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

$header .= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"'.$eol;

$header .= 'X-Mailer: PHP v'.phpversion().$eol;

if (!ValidateEmail($mailfrom))

{

$error .= "The specified email address is invalid!\n<br>";

}

if (!empty($error))

{

$errorcode = file_get_contents($error_url);

$replace = "##error##";

$errorcode = str_replace($replace, $error, $errorcode);

echo $errorcode;

exit;

}

$internalfields = array ("submit", "reset", "send", "captcha_code");

$message .= $eol;

foreach ($_POST as $key => $value)

{

if (!in_array(strtolower($key), $internalfields))

{

if (!is_array($value))

{

$message .= ucwords(str_replace("_", " ", $key)) . " : " . $value . $eol;

}

else

{

$message .= ucwords(str_replace("_", " ", $key)) . " : " . implode(",", $value) . $eol;

}

}

}

$body = 'This is a multi-part message in MIME format.'.$eol.$eol;

$body .= '--'.$boundary.$eol;

$body .= 'Content-Type: text/plain; charset=utf-8'.$eol;

$body .= 'Content-Transfer-Encoding: 8bit'.$eol;

$body .= $eol.stripslashes($message).$eol;

if (!empty($_FILES))

{

foreach ($_FILES as $key => $value)

{

if ($_FILES[$key]['error'] == 0 && $_FILES[$key]['size'] <= $max_filesize)

{

$body .= '--'.$boundary.$eol;

$body .= 'Content-Type: '.$_FILES[$key]['type'].'; name=.$_FILES[$key]['name].$eol;

$body .= 'Content-Transfer-Encoding: base64'.$eol;

$body .= 'Content-Disposition: attachment; filename='.$_FILES[$key]['name'].$eol;

$body .= $eol.chunk_split(base64_encode(file_get_contents($_FILES[$key]['tmp_name']))).$eol;

}

}

}

$body .= '--'.$boundary.'--'.$eol;

mail($mailto, $subject, $body, $header);

header('Location: '.$success_url);

exit;

}

?>

това ми е php кода, къде може да е грешката

кодировката на html ми е

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

<meta http-equiv="Content-Language" content="bg">

да не би това да прави проблем

Линк към този отговор
Сподели в други сайтове

Аз дадох кода, без да съм преглеждал твоя, и би трябвало сам да съобразиш, че за да добавиш към хедъра нещо, ще трябва да промениш $headers на $header, както е при теб.

$header .= 'MIME-Version: 1.0' . "\r\n";

$header .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

Редактирано от Ken (преглед на промените)
Линк към този отговор
Сподели в други сайтове

До wood и drakonapradlivko,

с един ред описание на проблема създавате работа на врачки.

Нещата се свеждат до широко отваряне на очите. Посочих ви ръкодство на скрип, който при мен работи на отличен на два езика. Скрипта се предлага в архив на този адрес Download Contact Form Lite.

Вътре има няколко файла. Четем първо installation.txt. Още там са два php-файла, един стил, един джава-скрипт и два html-файла.

Всичко качвате в една директория. Може да не е на един сървър, но тогава ще промените пътищата до тях. Последно като идея, ако имате сайт на hit.bg, защото хоста там не предлага пре-процесор и изпълнение на динамични скриптове.

Джавата следи дали са запълнени полетата.

Чрез стила моделирате формата.

Единият хтмл е на практика страницата с вашата форма, а втория ще показва потвърждение, нещо от рода - "благодаря, вашето писмо е прието".

Скрипта работи с всякакъв енкодинг: windows-1251, windows-1255, utf-8. Проверено. Получавам писмата в abv.bg и всичко се чете коректно: кирилица, латиница, иврит. Вашата работа се заклюва да напишете адресите на: пощата и страницата за потвърждение в lite_settings.php.

това е контактната форма при опит да изпратиш писмо с незапълнени полета

1184665h.jpg

това е потвърждението

1184655W.jpg

Срещу ботове разчитам на този код.

Не знам до колко е ефективен, но е повече от нищо. Ако някой тръгне да гади с формата, копирам IP-то и го добавям в .htaccess - deny и много му здраве. Логично, че ако искате да е на български или друг език, трябва да си преведете сами англоезичното предложение, а чрез css-файла, да приведе формата на вкус.

успех

Линк към този отговор
Сподели в други сайтове

Благодаря ти много, Profruit

Формата работи на УРА!

Ако си от Стара Загора, или имаш път насам, имаш няколко питиета от мен

Линк към този отговор
Сподели в други сайтове

Извинявам се, че пиша в тази тема, но за да не отварям нов ще задам въпросчето тук:

Има ли начин РНР скрипта да се модифицира и вместо на мейла да публикува съобщението директно в сайта? Той скрипта ще ми прати коментара на пощата, после ръчно трябва да въвеждам всеки коментар в сайта. Има ли начин скрипта директно да го въвежда?

Благодаря предварително.

Линк към този отговор
Сподели в други сайтове

Извинявам се, че пиша в тази тема, но за да не отварям нов ще задам въпросчето тук:

Има ли начин РНР скрипта да се модифицира и вместо на мейла да публикува съобщението директно в сайта? Той скрипта ще ми прати коментара на пощата, после ръчно трябва да въвеждам всеки коментар в сайта. Има ли начин скрипта директно да го въвежда?

Благодаря предварително.

Може. Записваш ги в някаква таблица за коментарите, и после ги показваш на страницата.

Линк към този отговор
Сподели в други сайтове

Не разбрах... Малко по-подробно за неук човечец като мене... понятие си нямам от PHP, тъй че помогни и с някоя команда. В смисъл показаните скриптове пращат текста като мейл. Каде трябва какво да барна, за да го постне директно? Съжалявам, че те товаря с глупости, но мислех да мина само с HTML... Ма май няма да стане...

Линк към този отговор
Сподели в други сайтове

Не разбрах... Малко по-подробно за неук човечец като мене... понятие си нямам от PHP, тъй че помогни и с някоя команда. В смисъл показаните скриптове пращат текста като мейл. Каде трябва какво да барна, за да го постне директно? Съжалявам, че те товаря с глупости, но мислех да мина само с HTML... Ма май няма да стане...

Това са само примерни кодове !

Първо създаваш една таблица в MySQL базата :

CREATE TABLE comments (

   id int(10) unsigned NOT NULL auto_increment,

   name varchar(40) NOT NULL,

   comment text NOT NULL,

   PRIMARY KEY (id)

);
При изпращане на пощата добавяш данни в таблицата:
    $query = "INSERT INTO comments " .

             "VALUES('{$_POST['name']}'," ."'{$_POST['comment']}')";

    mysql_query($query);
После ги показваш на страницата:
    $query = "SELECT * FROM comments LIMIT 0,10";

    $result = mysql_query ($query);

    echo "Comments:&lt;BR&gt;&lt;HR width=\"300\"&gt;\n";


    /* display the all the comments */

    while ($row = mysql_fetch_assoc ($result)) {

        echo "&lt;TABLE border=\"1\" width=\"300\"&gt;\n";


        $name = htmlentities ($row['name']);

        echo "&lt;TR&gt;&lt;TD&gt;&lt;b&gt;by: $name&lt;/b&gt;&lt;/TD&gt;&lt;/TR&gt;\n";


        $comment = strip_tags ($row['comment'], '&lt;a&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;');

        $comment = nl2br ($comment);

        echo "&lt;TR&gt;&lt;TD&gt;$comment&lt;/TD&gt;&lt;/TR&gt;\n";


        echo "&lt;/TABLE&gt;\n";

        echo "&lt;BR&gt;\n";

    }

Линк към този отговор
Сподели в други сайтове

Точно вчера правих такава форма, която има отметка за пращане на копие до e-mail-а на подателя. Ще ти помогна с моя код.

form.html

<form action="mail.php" method="post" align="center">

  <div class="fields" align="left">

    <input name="email" type="text" size="30" style="height:20px; border:2px #e113a0 solid;">

    <br/><br/>

    <input name="subject1" type="text" size="30" style="height:20px; border:2px #e113a0 solid;">

    <br/><br/>

    <textarea name="message1" rows="5" cols="30" style="border:2px #e113a0 solid;"></textarea>

    <br/>

    <p><input type="checkbox" name="sendtoyou" style="width:10px; height:10px; color:#e113a0; border:1px solid;" /> Send a copy to your e-mail.</p>

    <br/>

    <input type="submit" value="Submit" style="width:71px; height:17px; color:#FFFFFF; font-size:12px; background-color:#e113a0;">

    <input type="reset" value="Cancel" style="width:71px; height:17px; color:#FFFFFF; font-size:12px; background-color:#e113a0;"></p>

</form>

mail.php
<?php


$email = $_POST['email'];

$subject1 = $_POST['subject1'];

$message1 = $_POST['message1'];


$mydate = date ( 'l, F d Y g:i A',time()+240 );


// Къде да се праща e-mail-ът

$to = 'ТВОЯТ E-MAIL';


$subject = $subject1;


// E-mail съобщение

$message = "Писмо от page.com:\r\n"


."----------------------------------------------------------------\r\n"

."E-mail: $email\r\n"

."Subject: $subject1\r\n\n"


."Дата: $mydate\r\n"

."От IP: {$_SERVER['REMOTE_ADDR']}\r\n\r\n"

."Съобщение:\n\n $message1\r\n\n\n"


."Form Address: {$_SERVER['SERVER_NAME']}{$_SERVER['REQUEST_URI']}";


$headers = "From: $email\n"

."Reply-To: $email\n"

."X-Mailer: PHP/".phpversion();


//Проверяваме валидността на полетата, след което изпращаме мейла

if(empty($email) || empty($subject1) || empty($message1)) {

include('mail/a.html');

} elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {

include('mail/b.html');

} else {

mail( $to, $subject, $message, $headers );

include('mail/c.html');

}


//Ако отметката е маркирана, връщаме писмо на попъпващия формата

	if (isset($_POST['sendtoyou'])) {

		mail( $email, $subject, $message, $headers );

		include('mail/d.html');

    } 


?>

Инклуднатите файлове са обикновени текстове, в които се изписва действието, което е извършено. Пример: c.html - "Благодарим Ви! Вашето писмо беше изпратено успешно!" или нещо от сорта. ;)

Поздрави!

Линк към този отговор
Сподели в други сайтове
  • 3 седмици по-късно...

Нещо пак не мога да се справя...ако напиша на латиница всичко, имейла се изпраща ...но ако напиша коментара на български , получавам имейла на ченгелчета...ако си напиша име и фамилия на български не ми дава да изпратя съобщението. Не мога да променя енкодинга защото с UTF-8 всичко е ОК, но на windows-1251 ми излиза на чингели...Дайте съвет.

Линк към този отговор
Сподели в други сайтове

Добави това:

$headers .= "Content-type: text/html; charset=windows-1251\n";
Весели празници! ;):) P.S. Примерно, за моя код по-горе, ще стане нещо от този род:
$headers .= "Content-type: text/html; charset=windows-1251\n";

."From: $email\n"

."Reply-To: $email\n"

."X-Mailer: PHP/".phpversion();

Редактирано от BoByS (преглед на промените)
Линк към този отговор
Сподели в други сайтове

Добавете отговор

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

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване