PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (4): [1] 2 3 4 »
Найдено сообщений: 54
Garda1
Отправлено: 28 Апреля, 2013 - 19:35:04 • Тема: Корректное ЧПУ, правописание в .htaccess • Форум: Вопросы новичков
Ответов: 0 Просмотров: 109
Потребовалось корректное ЧПУ для сайта, без дублирования страниц, для примера:
.htaccess :
CODE (
htmlphp ):
скопировать код в буфер обмена
AddDefaultCharset UTF- 8
php_flag magic_quotes_gpc Off
php_flag register_globals Off
Options - Indexes
php_flag display_errors on
RewriteEngine On
RewriteCond % { REQUEST_URI} ! ^/ favicon. ico
# Existed file.
RewriteCond % { REQUEST_FILENAME} - f [ OR]
RewriteCond % { REQUEST_FILENAME} - d
RewriteRule .+ - [ L]
# документы не содержащие точки в имени должны оканчиваться слешом
RewriteCond % { REQUEST_URI} ( .*/ [ ^/. ] + ) ( $| \?)
RewriteRule .* % 1 / [ R, L, QSA]
RewriteRule ^( .* ) $ index. php [ nocase]
и простой обработчик index.php :
PHP:
скопировать код в буфер обмена
<?PHP
$route = trim ( $_SERVER [ 'REQUEST_URI' ] , '/' ) ;
switch ( $route [ 0] ) {
case 'home' :
if ( count ( $route ) > 1
) echo 'Page not found' ; else echo 'This is page "HOME"' ;
break ;
case '' :
echo 'This is MainPage' ;
break ;
default :
echo 'Page not found' ;
break ;
}
То есть, теперь мы обращаясь к скрипту ссылкой вида site.ru/home попадаем на единственную страницу site.ru/home/ со слэшем в конце строки. Но не все так гладко вышло, из-за двух последних RewriteRule страница запрашивается дважды, причем если это даже существующая директория. Тщетны были попытки найти похожий корректный пример в сети, к сожалению в htaccess не силен, пробовал сам в этом разобраться. Вопрос: каким бы образом соединить оба RewriteRule или есть другие варианты организовать такое действо?
Garda1
Отправлено: 08 Февраля, 2012 - 21:45:16 • Тема: многоуровневое меню • Форум: HTML, Дизайн & CSS
Ответов: 4 Просмотров: 1446
А почему вы пришли ко мнению использовать для такого простого меню JS, а не CSS?
есть хороший сайт , на котором изобилие cssmenu удовлетворит любые потребности
Garda1
Отправлено: 08 Февраля, 2012 - 17:48:50 • Тема: Обновить libxml на denwer'e • Форум: XML и его обработка
Ответов: 0 Просмотров: 1305
Стоит denwer3 с php 5.3.10 требуется обновить libxml до версии 2.7.8.
Возможно ли это? Если да, то буду благодарен за подсказку.
Garda1
Отправлено: 20 Апреля, 2011 - 01:01:40 • Тема: SELECT COUNT(*) • Форум: Программирование на PHP
Ответов: 6 Просмотров: 511
Okula пишет: Так как если результат будет равен 0 то mysql_result() выдаст ошибку
ничего подобного, сколько подсчитано столько и возвращается 100 так 100, 0 так 0.
Проверьте сами.
Garda1
Отправлено: 19 Апреля, 2011 - 19:29:55 • Тема: Проблема с отправкой e-mail с аттачем • Форум: Работа с сетью
Ответов: 18 Просмотров: 6520
давай на мыло тебе скину скрипт, попробуешь, исключительно егго потестить.
тока мыло на какое напиши.
Если непроканает, тогда я - полотенчико.
на другом хосте сработало???
тогда действительно в настройках сервачных может порыться
Garda1
Отправлено: 19 Апреля, 2011 - 18:55:38 • Тема: Проблема с отправкой e-mail с аттачем • Форум: Работа с сетью
Ответов: 18 Просмотров: 6520
PHP:
скопировать код в буфер обмена
$bound = 'spravka-1234' ;
$emailTo = 'gardian90905@gmail.com' ;
$headers = 'From: MySite <' . $emailTo . '>' . "\r \n " ;
$headers .= "Mime-Version: 1.0\r \n " ;
$headers .= "Content-type: multipart/mixed; boundary=\" $bound \" \r \n " ;
$text .= "\n \n --$bound \r \n " ;
$text .= "Content-type: text/html; charset=\" utf-8\" \r \n " ;
$text .= "Content-Transfer-Encoding: quoted-printable\r \n " ;
$text .= "Вот и должон тут быть аттачЪ<br>\r \n " ;
$file_name = 'jquery-1.3.2.min.js' ;
$file = fopen ( $file_name , "rb" ) ; if ( ! $file ) { echo 'файл не прочитан!' ; exit; }
$text .= "\r \n --$bound \n " ;
$text .= "Content-type: application/octet-stream; name=\" =?utf-8?b?" . base64_encode ( $file_name ) . "?=\" \n " ; $text .= "Content-Transfer-Encoding:base64\n " ;
$text .= "Content-Disposition:attachment filename=\" $file_name \" \n \n " ;
$text .= "$bound --\r \n " ;
mail ( $emailTo , $subject , $text , $headers ) ;
попробовать стоит заменить предыдущий отрывок "Именно Этим"!! С ним у меня на gmail приходит, в чём кардинальное различие не смог найти, только Mail и название файла свои подставь
Garda1
Отправлено: 19 Апреля, 2011 - 18:41:15 • Тема: Проблема с отправкой e-mail с аттачем • Форум: Работа с сетью
Ответов: 18 Просмотров: 6520
NeoN121 пишет: CODE (
htmlphp ):
скопировать код в буфер обмена
$bound = 'spravka-1234';
$emailTo = 'neon12121@gmail.com';
$subject = "=?utf-8?b?".base64_encode('Заказ услуги')."?=";
$headers = 'From: us < '.$emailTo.' > '."\r\n";
$headers .= "Mime-Version: 1.0\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"$bound\"\r\n";
$text .= "--$bound-\r\n";
$text .= "Content-type: text/plain; charset=\"utf-8\"\r\n";
$text .= "Content-Transfer-Encoding: quoted-printable\r\n";
$text .= "Some text\r\n";
$file_name = 'data.csv';
$file = fopen($file_name,"rb");
if(!$file){echo 'файл не прочитан!';exit;}
$fread = fread($file,filesize($file_name));
$text .= "\r\n--$bound\r\n";
$text .= "Content-type: application/octet-stream; name=\"=?utf-8?b?".base64_encode($file_name)."?=\"\n";
$text .= "Content-Transfer-Encoding:base64\n";
$text .= "Content-Disposition:attachment filename=\"$file_name\"\n\n";
$text .= chunk_split(base64_encode($fread))."\n";
$text .= "\r\n--$bound--\r\n";
mail($emailTo,$subject,$text,$headers);
Вот до этого вот я урезал код. Кодировка файла скрипта - UTF-8
Подставил этот код, проверил, у меня работает...
Только файл должен весить больше 0байт
УПС, а вот на Gmail действительно не приходит
Garda1
Отправлено: 19 Апреля, 2011 - 17:50:31 • Тема: Проблема с отправкой e-mail с аттачем • Форум: Работа с сетью
Ответов: 18 Просмотров: 6520
кодировку я пользовал исключительно utf-8.
Скрипт в студию... а то так не отгадать.
(Добавление)
Подправил вышеприведённый кодец, лично проверил, засылает только в путь.
mail.attach.php
PHP:
скопировать код в буфер обмена
<?PHP
{
require_once 'clean_data.php' ;
$post = clean_data( $_POST ) ;
if ( empty ( $post [ 'email' ] ) ) { $error .= '<li>Не заполнено поле <b>"E-mail"</b></li>' ;
}
{
$HTML .= '<ol class="messaga bad_messaga">' ;
$HTML .= $error ; // Вывод системных сообщений
$HTML .= '</ol>' ;
$HTML .= '<br><br>' ;
//echo $HTML;
}
else
{
$bound = 'spravka-1234' ;
$emailTo = $post [ 'email' ] ;
$headers = 'From: MySite <' . $emailTo . '>' . "\r \n " ;
$headers .= "Mime-Version: 1.0\r \n " ;
$headers .= "Content-type: multipart/mixed; boundary=\" $bound \" \r \n " ;
$text .= "\n \n --$bound \r \n " ;
$text .= "Content-type: text/html; charset=\" utf-8\" \r \n " ;
$text .= "Content-Transfer-Encoding: quoted-printable\r \n " ;
$text .= '<b>Сообщение:</b> Вот и должон тут быть аттачЪ<br>' ;
$file_name = $_FILES [ 'rekvizity' ] [ 'tmp_name' ] ;
$file = fopen ( $file_name , "rb" ) ; if ( ! $file ) { echo 'файл не прочитан!' ; exit; }
$text .= "\r \n --$bound \n " ;
$text .= "Content-type: application/octet-stream; name=\" =?utf-8?b?" . base64_encode ( $_FILES [ 'rekvizity' ] [ 'name' ] ) . "?=\" \n " ; $text .= "Content-Transfer-Encoding:base64\n " ;
$text .= "Content-Disposition:attachment filename=\" $file_name \" \n \n " ;
$text .= "$bound --\r \n " ;
mail ( $emailTo , $subject , $text , $headers ) ; $cool = true ;
$HTML .= '<ol class="messaga ok_messaga">' ;
$HTML .= '<li>Заявка отправлена, наш агент свяжется с Вами в ближайшее время.</li>' ; // Вывод системных сообщений
$HTML .= '</ol>' ;
}
}
$HTML .= '
<div class="uss_form_tml">
<form enctype="multipart/form-data" method="POST" action="">
<div class="uss_form_item uss_form_text">
<label>Ваш E-mail (*)</label>
<input type="text" class="text" id="emailid" name="email" value="' . $_REQUEST [ 'email' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>Файл</label>
<input type="file" name="rekvizity" value="">
</div>
<div class="uss_form_item uss_form_submit">
<input type="submit" name="sendorderuslugform" value="Отправить">
</div>
</form>
</div>
' ; }
echo $HTML ;
clean_data.php
PHP:
скопировать код в буфер обмена
<?PHP
/*
* Функция очистки данных
*@param array $data - входной массив данных
*@param array $aux - выходной очищенный массив
*/
function clean_data( $data )
{
foreach ( $data as $key => $value )
{
$aux [ $key ] = pre_data( $value ) ;
}
return $aux ;
}
function pre_data( $str ) // ф-ция для очистки введенного контента
{
if ( get_magic_quotes_gpc ( ) == 1 ) // если на сервере включен magic quotes, срабатывает "ручная" очистка {
$str = str_replace(" \'", "' ", $str ) ;
$str = str_replace(" < ", " < ", $str ) ;
$str = str_replace(" > ", " > ", $str ) ;
}
else // если на сервере выключен magic quotes, срабатывает " ручная" очистка
{
$str = htmlspecialchars($str ,ENT_QUOTES," UTF- 8 ",false) ;
}
return $str ;
}
function post_data($str ) // ф-ция для очистки вЫведенного контента
{
$str = str_replace(" "" , '"' , $str ) ;
return $str ;
}
Garda1
Отправлено: 19 Апреля, 2011 - 12:07:17 • Тема: Проблема с отправкой e-mail с аттачем • Форум: Работа с сетью
Ответов: 18 Просмотров: 6520
показал бы исходники хоть чтоли, а так кнешна в своё время тоже промаялся с аттачем, но вот етот кусок кода работает, исправить только на свои данные осталось
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?PHP
{
header ( "HTTP/1.1 404 Not Found" ) ; }
{
$post = clean_data( $_POST ) ;
if ( empty ( $post [ 'lastname' ] ) ) { $error .= '<li>Не заполнено поле <b>"Фамилия"</b></li>' ;
}
if ( empty ( $post [ 'firstname' ] ) ) { $error .= '<li>Не заполнено поле <b>"Имя"</b></li>' ;
}
if ( empty ( $post [ 'telephone' ] ) ) { $error .= '<li>Не заполнено поле <b>"телефон"</b></li>' ;
}
if ( empty ( $post [ 'email' ] ) ) { $error .= '<li>Не заполнено поле <b>"E-mail"</b></li>' ;
}
if ( $post [ 'usluga' ] == '0' ) {
$error .= '<li>Не заполнено поле <b>"Выберите услугу"</b></li>' ;
}
if ( empty ( $post [ 'additionalinfo' ] ) ) { $error .= '<li>Не заполнено поле <b>"Ваше сообщение"</b></li>' ;
}
if ( empty ( $post [ 'company' ] ) ) { $error .= '<li>Не заполнено поле <b>"Название организации"</b></li>' ;
}
if ( ! isset ( $_SESSION [ 'captcha_keystring' ] ) || $_SESSION [ 'captcha_keystring' ] != $post [ 'captcha' ] ) { $error .= '<li>Неверно введена контрольная строка антиспама</li>' ;
}
{
$HTML .= '<ol class="messaga bad_messaga">' ;
$HTML .= $error ; // Вывод системных сообщений
$HTML .= '</ol>' ;
$HTML .= '<br><br>' ;
}
else //если нет ашибок, то собираем письмо
{
$bound = 'spravka-1234' ;
$emailTo = 'mymail@mail.ru' ;
$headers = 'From: YourSite.ru <' . $emailTo . '>' . "\r \n " ;
$headers .= "Mime-Version: 1.0\r \n " ;
$headers .= "Content-type: multipart/mixed; boundary=\" $bound \" \r \n " ;
$text .= "\n \n --$bound \r \n " ;
$text .= "Content-type: text/html; charset=\" utf-8\" \r \n " ;
$text .= "Content-Transfer-Encoding: quoted-printable\r \n " ;
$text .= '<b>ФИО:</b> ' . $post [ 'lastname' ] . ' ' . $post [ 'firstname' ] . ' ' . $post [ 'secondname' ] . '<br>' ;
$text .= '<b>Телефон:</b> ' . $post [ 'telephone' ] . '<br>' ;
$text .= '<b>E-mail:</b> ' . $post [ 'email' ] . '<br>' ;
if ( ! empty ( $post [ 'icq' ] ) ) $text .= '<b>ICQ:</b> ' . $post [ 'icq' ] . '<br>' ; $text .= '<b>Услуга:</b> ' . $post [ 'usluga' ] . '<br>' ;
$text .= '<b>Сообщение:</b> ' . $post [ 'additionalinfo' ] . '<br>' ;
$text .= '<b>Организация:</b> ' . $post [ 'company' ] . '<br>' ;
$file_name = $_FILES [ 'rekvizity' ] [ 'tmp_name' ] ;
$file = fopen ( $file_name , "rb" ) ; if ( ! $file ) { echo 'файл не прочитан!' ; exit; }
$text .= "\r \n --$bound \n " ;
$text .= "Content-type: application/octet-stream; name=\" =?utf-8?b?" . base64_encode ( $_FILES [ 'rekvizity' ] [ 'name' ] ) . "?=\" \n " ; $text .= "Content-Transfer-Encoding:base64\n " ;
$text .= "Content-Disposition:attachment filename=\" $file_name \" \n \n " ;
$text .= "$bound --\r \n " ;
mail ( $emailTo , $subject , $text , $headers ) ; $cool = true ;
$HTML .= '<ol class="messaga ok_messaga">' ;
$HTML .= '<li>Заявка отправлена, наш агент свяжется с Вами в ближайшее время.</li>' ; // Вывод системных сообщений
$HTML .= '</ol>' ;
}
}
$HTML .= '
<div class="uss_form_tml">
<form enctype="multipart/form-data" method="POST" action="' . PUZ_PAGE. '" name="orderuslugaddform" id="orderuslugaddform">
<div class="uss_form_item uss_form_text">
<label>Фамилия (*)</label>
<input type="text" class="text" name="lastname" value="' . $_REQUEST [ 'lastname' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>Имя (*)</label>
<input type="text" class="text" name="firstname" value="' . $_REQUEST [ 'firstname' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>Отчество </label>
<input type="text" class="text" name="secondname" value="' . $_REQUEST [ 'secondname' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>Телефон (*)</label>
<input type="text" class="text" name="telephone" value="' . $_REQUEST [ 'telephone' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>Ваш E-mail (*)</label>
<input type="text" class="text" id="emailid" name="email" value="' . $_REQUEST [ 'email' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>ICQ</label>
<input type="text" class="text" name="icq" value="' . $_REQUEST [ 'icq' ] . '">
</div>
<div class="uss_form_item uss_form_select">
<label>Выберите услугу (*)</label>
<select name="usluga" class="select">
<option value="0">выбор...</option>
<option ' . ( $_REQUEST [ 'usluga' ] == 'Поставка оборудования и материалов' ? 'selected' : false ) . ' value="Поставка оборудования и материалов">Поставка оборудования и материалов</option>
<option ' . ( $_REQUEST [ 'usluga' ] == 'Проектирование' ? 'selected' : false ) . ' value="Проектирование">Проектирование</option>
<option ' . ( $_REQUEST [ 'usluga' ] == 'Монтаж, установка' ? 'selected' : false ) . ' value="Монтаж, установка">Монтаж, установка</option>
<option ' . ( $_REQUEST [ 'usluga' ] == 'Обслуживание систем безопасности' ? 'selected' : false ) . ' value="Обслуживание систем безопасности">Обслуживание систем безопасности</option>
</select>
</div>
<div class="uss_form_item uss_form_textarea">
<label>Ваш вопрос (*)</label>
<textarea id="additionalinfoid" name="additionalinfo">' . $_REQUEST [ 'additionalinfo' ] . '</textarea>
</div>
<div class="uss_form_item uss_form_text">
<label>Название организации (*)</label>
<input type="text" class="text" name="company" value="' . $_REQUEST [ 'company' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>Файл с реквизитами организации</label>
<input type="file" name="rekvizity" value="">
</div>
<div class="uss_form_item uss_form_captcha">
<label>Введите символы, которые видите на картинке</label>
<input type="text" id="captchaid" name="captcha" value="">
</div>
<div class="uss_form_item uss_form_notice">Внимание! Поля, помеченные * - обязательны для заполнения</div>
<div class="uss_form_item uss_form_submit">
<input type="submit" name="sendorderuslugform" value="Отправить">
</div>
</form>
</div>
' ; }
echo $HTML ;
Garda1
Отправлено: 16 Апреля, 2011 - 17:17:14 • Тема: Как вставить символ после каждого 3 символа? • Форум: Программирование на PHP
Ответов: 1 Просмотров: 323
Не могу понять по какому алгоритму можно вставлять символы.
Конкретная задача:
выводятся большие сумммы(цифра например 1450000), нужно после каждого третьего символа справа вставить разделительный знак(итог 1,450,000).
Помогите, пожалуйста...
Garda1
Отправлено: 13 Апреля, 2011 - 10:27:25 • Тема: switch_case • Форум: Программирование на PHP
Ответов: 8 Просмотров: 617
Интересно, как можно отправить несколько нажатых кнопок?
И как тогда сделать это без цикла?
Страниц (4): [1] 2 3 4 »
Powered by ExBB FM 1.0 RC1. InvisionExBB