Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Выполнено] Передача url страницы в письме о заказе обратного звонка.


Recommended Posts

Здравствуйте. Сил моих больше нет:) поэтому  пишу на форум.

В простеньком модуле заказа обратного звонка для опенкарт 2 хотел настроить передачу url с которой собственно и заказан звонок.

в модуле всего три файла- контролер с полями, и 2 js/

В контролере добавил 

<input type='hidden' name='uri' value='" . $_SERVER['REQUEST_URI']. "'/> 

перед закрывающим тегом form

 

далее добавил функцию 

 

 function getUrl() { 

$url = @( $_SERVER["HTTPS"] != 'on' ) ? 'http://'.$_SERVER["SERVER_NAME"] : 'https://'.$_SERVER["SERVER_NAME"]; 

$url .= ( $_SERVER["SERVER_PORT"] != 80 ) ? ":".$_SERVER["SERVER_PORT"] : ""; 

$url .= $_SERVER["REQUEST_URI"]; 

return $url; 
 }  

после которой отправку в письмо 

if ($extra["uri"]) {
                $message .= "\n\nURI: " . $_SERVER['REQUEST_URI'];
        } 

в итоге в письме приходит адрес файла на сервере.  :)))))))))

 я в этом деле пока не особо разбираюсь. хотелось бы обратится за поддержкой- что я делаю не так.

если по делу сказать не чего- просьба не флудить. если кто то сможет объяснить понятно где моя ошибка- буду благодарен.

 

Надіслати
Поділитися на інших сайтах


1. Культура программирования ...

Вы где то видели в opencart использование массива $_SERVER ?

Нет. Такого нет. Используют $this->request->server

Так что забудьте $_SERVER в opencart

2. Посмотрите как это сделано в opencart

Надіслати
Поділитися на інших сайтах

Не знаю почему, но в 2-ке убрали, то что было в 1.5

 

Это к вопросу о

Вы где то видели в opencart использование массива $_SERVER ?

 

 

      public function __construct() {
        $_GET = $this->clean($_GET);
        $_POST = $this->clean($_POST);
        $_REQUEST = $this->clean($_REQUEST);
        $_COOKIE = $this->clean($_COOKIE);
        $_FILES = $this->clean($_FILES);
        $_SERVER = $this->clean($_SERVER);

 

 

Упс... (2.х)

	private function compress($data, $level = 0) {
		if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false)) {
			$encoding = 'gzip';
		}

		if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false)) {
			$encoding = 'x-gzip';
		}
Надіслати
Поділитися на інших сайтах

мне кажется то ячего то не учел просто. урл файла передается, значит срабатывает. но не правильно. или я не туда копаю

Надіслати
Поділитися на інших сайтах


Чтобы ответить , нужно видеть весь скрипт, а не только т о что вы нам показываете.

легко  :))

?php

// User settings

$to = "[email protected]";

$subject = "Перезвоните мне";

include "../../language/russian/common/callback.php";

//include "../../language/ukrainian/common/callback.php"; // не работает

// Include extra form fields and/or submitter data?

// false = do not include

$extra = array(

"form_subject" => true,

"form_cc" => true,

"ip" => true,

"uri" => true,

"user_agent" => true

);

// Process

$action = isset($_POST["action"]) ? $_POST["action"] : "";

if (empty($action)) {

// Send back the contact form HTML

$output = "

 

".$sendthis."

 

 

{C}

* ".$phonew."

";

if ($extra["form_subject"]) {

$output .= "

{C}

";

}

$output .= "

{C}

";

$output .= "

 

".$sendw."

{C}

 

";

echo $output;

}

else if ($action == "send") {

// Send the phone

// $name = isset($_POST["name"]) ? $_POST["name"] : "";

$phone = isset($_POST["phone"]) ? $_POST["phone"] : "";

//$subject = isset($_POST["subject"]) ? $_POST["subject"] : $subject;

// $message = isset($_POST["message"]) ? $_POST["message"] : "";

$uri = isset ($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"] : "";

$cc = isset($_POST["cc"]) ? $_POST["cc"] : "";

$token = isset($_POST["token"]) ? $_POST["token"] : "";

// make sure the token matches

if ($token === smcf_token($to)) {

smcf_send( $phone,$cc );

echo $ok;

}

else {

echo $erno;

}

}

function smcf_token($s) {

return md5("smcf-" . $s . date("WY"));

}

function smcf_filter($value) {

$pattern = array("/\n/","/\r/","/content-type:/i","/to:/i", "/from:/i", "/cc:/i");

$value = preg_replace($pattern, "", $value);

return $value;

}

function smcf_send( $phone, $cc) {

global $to, $extra;

// Filter and validate fields

//$name = smcf_filter($name);

//$subject = smcf_filter($subject);

$phone = smcf_filter($phone);

if (!smcf_validate_phone($phone)) {

$subject .= " Заказ звонка с сайта";

$message .= "\n\nНомер телефона: ".$phone;

$phone = $to;

$cc = 0; // do not CC "sender"

}

function getUrl() {

$url = @( $_SERVER["HTTPS"] != 'on' ) ? 'http://'.$_SERVER["SERVER_NAME"] : 'https://'.$_SERVER["SERVER_NAME"];

$url .= ( $_SERVER["SERVER_PORT"] != 80 ) ? ":".$_SERVER["SERVER_PORT"] : "";

$url .= $_SERVER["REQUEST_URI"];

return $url;

}

// Add additional info to the message

if ($extra["ip"]) {

$message .= "\n\nIP: " . $_SERVER["REMOTE_ADDR"];

}

if ($extra["uri"]) {

$message .= "\n\nURI: " . $_SERVER['REQUEST_URI'];

}

if ($extra["user_agent"]) {

$message .= "\n\nUSER AGENT: " . $_SERVER["HTTP_USER_AGENT"];

}

// Set and wordwrap message body

//$body = "Від: $name\n\n";

$body .= "Перезвоните мне: $message";

$body = wordwrap($body, 70);

// Build header

$headers = "From: $phone\n";

if ($cc == 1) {

$headers .= "Cc: $phone\n";

}

// UTF-8

// if (function_exists('mb_encode_mimeheader')) {

// $subject = mb_encode_mimeheader($subject, "UTF-8", "B", "\n");

// }

else {

// you need to enable mb_encode_mimeheader or risk

// getting phones that are not UTF-8 encoded

}

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

$headers .= "Content-type: text/plain; charset=utf-8\n";

$headers .= "Content-Transfer-Encoding: quoted-printable\n";

// Send phone

@mail($to, $subject, $body, $headers) or

die('$die');

}

// Validate phone address format in case client-side validation "fails"

function smcf_validate_phone($phone) {

// Make sure there aren't multiple periods together

if (!preg_match("/^[0-9]{9,11}$/", $phone))

return false;

}

return true;

exit;

?>

 

 

а вот это js

jQuery(function ($) {

var contact = {

message: null,

init: function () {

$('.contact-btn').click(function (e) {

e.preventDefault();

$.get("catalog/controller/callback/callback.php", function(data){

$(data).modal({

closeHTML: "x",

position: ["15%",],

overlayId: 'contact-overlay',

containerId: 'contact-container',

onOpen: contact.open,

onShow: contact.show,

onClose: contact.close

});

});

});

},

open: function (dialog) {

/*

if ($.browser.mozilla) {

$('#contact-container .contact-button').css({

'padding-bottom': '2px'

});

}

if ($.browser.safari) {

$('#contact-container .contact-input').css({

'font-size': '.9em'

});

}

*/

var h = 170;

if ($('#contact-subject').length) {

h += 26;

}

if ($('#contact-cc').length) {

h += 22;

}

var title = $('#contact-container .contact-title').html();

//$('#contact-container .contact-title').html('Загрузка...

loading_1.gif

');

dialog.overlay.fadeIn(0, function () {

dialog.container.fadeIn(0, function () {

dialog.data.fadeIn(0, function () {

$('#contact-container .contact-content').animate({

height: h

}, function () {

$('#contact-container .contact-title').html(title);

$('#contact-container form').fadeIn(0, function () {

//$('#contact-container #contact-name').focus();

$('#contact-container .contact-cc').click(function () {

var cc = $('#contact-container #contact-cc');

cc.is(':checked') ? cc.attr('checked', '') : cc.attr('checked', 'checked');

});

/*

if ($.browser.msie && $.browser.version < 7) {

$('#contact-container .contact-button').each(function () {

if ($(this).css('backgroundImage').match(/^url[("']+(.*\.png)[)"']+$/i)) {

var src = RegExp.$1;

$(this).css({

backgroundImage: 'none',

filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + src + '", sizingMethod="crop")'

});

}

});

}

*/

});

});

});

});

});

},

show: function (dialog) {

$('#contact-container .contact-send').click(function (e) {

e.preventDefault();

if (contact.validate()) {

var msg = $('#contact-container .contact-message');

msg.fadeOut(function () {

msg.removeClass('contact-error').empty();

});

$('#contact-container .contact-title').html('Отправка...');

$('#contact-container form').fadeOut(0);

$('#contact-container .contact-content').animate({

height: '90px'

}, function () {

$('#contact-container .contact-loading').fadeIn(0, function () {

$.ajax({

url: 'catalog/controller/callback/callback.php',

data: $('#contact-container form').serialize() + '&action=send',

type: 'post',

cache: false,

dataType: 'html',

success: function (data) {

$('#contact-container .contact-loading').fadeOut(0, function () {

$('#contact-container .contact-title').html('Спасибо, вам скоро перезвонят!');

msg.html(data).fadeIn(0);

});

},

error: contact.error

});

});

});

}

else {

if ($('#contact-container .contact-message:visible').length > 0) {

var msg = $('#contact-container .contact-message div');

msg.fadeOut(0, function () {

msg.empty();

contact.showError();

msg.fadeIn(0);

});

}

else {

$('#contact-container .contact-message').animate({

height: '30px'

}, contact.showError);

}

}

});

},

close: function (dialog) {

$('#contact-container .contact-message').fadeOut();

$('#contact-container .contact-title').html('Приятных покупок!');

$('#contact-container form').fadeOut(0);

$('#contact-container .contact-content').animate({

height: 40

}, function () {

dialog.data.fadeOut(0, function () {

dialog.container.fadeOut(0, function () {

dialog.overlay.fadeOut(0, function () {

$.modal.close();

});

});

});

});

},

error: function (xhr) {

alert(xhr.statusText);

},

validate: function () {

contact.message = '';

if (!$('#contact-container #contact-name').val()) {

// contact.message += 'Заполните имя. ';

}

var phone = $('#contact-container #contact-phone').val();

if (!phone) {

contact.message += 'Введите телефон. ';

}

else {

if (!contact.validatephone(phone)) {

contact.message += 'Неверный телефон. ';

}

}

if (!$('#contact-container #contact-message').val()) {

// contact.message += 'Введите сообщение. ';

}

if (contact.message.length > 0) {

return false;

}

else {

return true;

}

},

validatephone: function (phone) {

var at = phone.lastIndexOf("@");

if (!/^[0-9]{10,10}$/.test(phone))

return false;

return true;

},

showError: function () {

$('#contact-container .contact-message')

.html($('

 

').append(contact.message))

.fadeIn(0);

}

};

contact.init();

});

Надіслати
Поділитися на інших сайтах


Печалько..

Читайте маны

 

1. Это не контроллер, а приблуда... (отключенная функция mail) или ... может очень хорошо обеспечить неизвестную головную боль

 

$message .= "\n\nURI: " . get_url();

Надіслати
Поділитися на інших сайтах

в данный момент в письме передается урл файла контролера. 

сколько будет стоить доработка чтобы отсылался урл?

может кто то сделать на платной основе?

Надіслати
Поділитися на інших сайтах


в данный момент в письме передается урл файла контролера. 

сколько будет стоить доработка чтобы отсылался урл?

может кто то сделать на платной основе?

 

 

если возможно- администрация перенесите в платные доработки тему чтобы не создавать новую.

спасибо

Надіслати
Поділитися на інших сайтах


Гість
Ця тема закрита для публікації повідомлень.
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.