Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2012, 14:22   #1
маГГ85
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 96
По умолчанию Форма, кодировки

Здравствуйте господа!
Имеется форма и скрипт обработчик в одном файле, если заполняю форму латинскими буквами все ок, а если кириллицей то пишет что не заполненные поля в форме, то есть пхп-обработчик не видит кириллицу, подскажите где ошибка может быть???
Так же подключается в начале скрипта mysql_query("SET NAMES cp1251").
В бд по умолчанию utf-8 collation, InnoDB.
Но до нее не доходит даже...
Скрин бд присутствует
PHP код:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Оформление заказа</title>
<meta name="">
<meta name="">
<!--[if IE]>
</head>
<body>
    <div id="contentForm">
<!-- The contact form starts from here-->
<?php
     $error    
''// сообщение об ошибке
     
$name     ''// имя отправителя
       
$phone  ''// телефон
     
$message  ''// сообщение
    
$itemtype  ''// тип доставки
      
$adress  ''// адрес
    
if(isset($_POST['send']))
    {
         
$login $_SESSION['login'];
         
$name     = @iconv("UTF-8""windows-1251"$_POST['name']);
         
$name sanitizeString($name);
         
$phone  = @iconv("UTF-8""windows-1251"$_POST['phone']);
         
$phone sanitizeString($phone);
         
$message  = @iconv("UTF-8""windows-1251"$_POST['message']);
         
$message sanitizeString($message);
         
$adress  = @iconv("UTF-8""windows-1251"$_POST['adress']);
         
$adress sanitizeString($adress);
         
$itemtype  = @iconv("UTF-8""windows-1251"$_POST['itemtype']);
         
$itemtype sanitizeString($itemtype);
         if(isset(
$itemtype))
         {
             if(
$itemtype == 'delivery') {$itemtype 'доставка';}
             if(
$itemtype == 'self') {$itemtype 'самовывоз';}
         }
             else {
$itemtype ''; }
             
//echo "$itemtype";
         
             
if(($itemtype == 'доставка') and ($adress == ''))
             {
                
$error '<div class="errormsg">Пожалуйста, введите адрес</div>'
             }
                 if((
$name) == '')
                 {
                    
$error '<div class="errormsg">Пожалуйста, введите Ваше имя</div>';
                 }
                     if((
$itemtype) == '')
                     {
                        
$error '<div class="errormsg">Пожалуйста, введите вид доставки</div>';
                     }
                         if((
$phone) == '')
                         {
                            
$error '<div class="errormsg">Пожалуйста, введите телефон!</div>';
                         }
                             else if((
$message) == '')
                             {
                                
$error '<div class="errormsg">Пожалуйста, введите сообщение!</div>';
                             }
                                 else if(!
preg_match("/^(\d{7,20})$/"$phone))
                                 {
                                    
$error '<div class="errormsg">Слишком короткий/длинный номер</div>';
                                 }
                             if(
$error == '')
                             {
                                
$result "UPDATE final
                                           SET name='
$name', phone='$phone', dType = '$itemtype', adress = '$adress', mess = '$message
                                           WHERE login='
$login'";
                                
mysql_query($result) or die(mysql_error());
                             
                                
// Обязательно укажите здесь Email на который должны приходить письма
                                
$to      "loyko.b@list.ru";
                                
// [Сообщение через контактную форму] - тема сообщения - можете поменять на любую.
                                   
$subject '[Сообщение через контактную форму] : ' $subject;
                                
// сообщение 
                                
$msg     "From : $name \r\nSubject : $subject \r\n\n" "Message : \r\n$message";
                                
mail($to$subject$msg"From: $name\r\nReply-To: $name\r\nReturn-Path: $name\r\n");
?>
          <!-- Сообщение отправлено! (можете поменять текст)-->
            <div id="adopt">
                <h1>Поздравляем!</h1>
                <p>Спасибо <b><?=$name;?></b>, Ваш заказ успешно принят!</p>
            </div>
<?php         print '<META HTTP-EQUIV="Refresh" Content="3; URL=index.php">';    
            exit();
?>
          <!--End Message Sent-->
<?php
                              
}
    }
        if(!isset(
$_POST['send']) || $error != '')
            {
?>
    <h1>Оформление заказа:</h1>
    <!--Error Message-->
    <?=$error;?>
        <form  method="post" name="contFrm" id="contFrm" action="step6.php">
            <label><span class="required">*</span> Полное имя:</label>
                <input name="name" type="text" class="box" id="name" size="30" value="<?=$name;?>" />
                       <label><span class="required">*</span> Телефон: </label>
                           <input name="phone" type="text" class="box" id="phone" size="30" value="<?=$phone;?>" /><br>
                            Самовывоз<input type="radio" name="itemtype" value="self" onclick="toggleSet(this)">
                                Доставка на дом<input type="radio" name="itemtype" value="delivery" onclick="toggleSet(this)"><br>
                                    <fieldset id="delivery" class="item">
                                        <legend>Доставка</legend>
                                        Адрес<input type="text" name="adress" size="30">
                                    </fieldset>
                                           <label id="message"><span class="required">*</span> Сообщение: </label>
                                               <textarea name="message" cols="35" rows="2"  id="message"><?=$message;?></textarea>
                                                   <!-- Submit Button-->
                                                       <input name="send" type="submit" class="button" id="send" value="" />
        </form>
<?php}
?></div> <!-- /contentForm --></body></html>
Вложения
Тип файла: rar Безымянный.rar (162.9 Кб, 6 просмотров)
маГГ85 вне форума Ответить с цитированием
Старый 18.01.2012, 15:44   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от маГГ85 Посмотреть сообщение
подскажите где ошибка может быть???
Рекомендую научиться самому находить ошибки в своем коде.

Конкретно по данному коду:
- убрать из кода всех "собак"(@) - и скорее всего, ваши ошибки сами дадут о себе знать.
- почитать про iconv(), просмотреть примеры использования.
- использовать UTF-8 везде (документ, БД, кодировка сервера).
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПЕрвая форма, кликая по кнопке, другая форма Nadej C++ Builder 0 02.10.2011 17:58
Кодировки Adblock PHP 3 23.11.2010 23:52
Кодировки Sapsan Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 21.03.2009 22:57
Кодировки BOBAH13 Общие вопросы Delphi 8 29.08.2008 14:20
Кодировки CoDeR Общие вопросы Delphi 5 01.09.2007 21:39