За последние 24 часа нас посетили 30318 программистов и 1753 робота. Сейчас ищет 1051 программист ...

Проблема с кодировкой

Тема в разделе "PHP для новичков", создана пользователем 6stPROD, 19 янв 2015.

Статус темы:
Закрыта.
  1. 6stPROD

    6stPROD Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    124
    Симпатии:
    0
    Адрес:
    Тутаев, Ярославская область. Российская Федерация
    Проблема с кодировкой. Заключается в следующем:

    При регистрации русские знаки попадают в базу под вот такими символами ???�?�?�???????� ???�?�????,

    Кодировка таблиц cp1251, изменение кодировки сайта не влияет на отображение, если изменить эти символы на русские то на сайте они так же отображаются знаками вопроса.

    Подскажите где искать?


    код registr.php

    Код (Text):
    1.             <?php
    2.            
    3.           function valid_email($email) {         //Small function to validate the email
    4.                 $result = TRUE;
    5.                 if(!preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $email)) {
    6.                 $result = FALSE;
    7.                 }
    8.                 return $result;
    9.           }
    10.          
    11.                           if(!isset($_SESSION['username'])){
    12.                           if(isset($_POST['reg'])){
    13.                           $accountName = mysql_real_escape_string($_POST['accountName']);
    14.                           $accountPass = mysql_real_escape_string($_POST['accountPass']);
    15.                           $accountEmail = mysql_real_escape_string(stripslashes($_POST['accountEmail']));
    16.                           $accountEmail2 = mysql_real_escape_string(stripslashes($_POST['accountEmail2']));
    17.                           mysql_select_db($server_adb,$connection_setup)or die(mysql_error());
    18.                           $check_query = mysql_query("SELECT * FROM account WHERE username = '".$accountName."'");
    19.                           $check = mysql_fetch_assoc($check_query);
    20.                           $firstName = mysql_real_escape_string(ucfirst(strtolower($_POST['firstName'])));
    21.                           $lastName = mysql_real_escape_string(ucfirst($_POST['lastName']));
    22.                          
    23.                           $country= $_POST['country'];
    24.                           $dobD= $_POST['dobDay'];
    25.                           $dobM= $_POST['dobMonth'];
    26.                           $dobY= $_POST['dobYear'];
    27.                           $dob= date ("Y-m-d", strtotime($dobY."-".$dobM."-".$dobD));  //YYYY-MM-DD
    28.                             $question= $_POST['question1'];
    29.                             $answer= mysql_real_escape_string($_POST['answer1']);
    30.                            
    31.                           if(!$check){
    32.  
    33.                             if($accountPass != stripslashes($_POST['accountPassc'])){
    34.                               $error[]=$re['error2'];
    35.                             }
    36.                            
    37.                             if(empty($firstName)) $error[] = $re['error3'];
    38.                             if(empty($lastName)) $error[] = $re['error4'];
    39.                            
    40.                             if(empty($accountEmail) || !valid_email($accountEmail)){
    41.                               $error[]=$re['error5'];
    42.                             }
    43.                            
    44.                             if($accountEmail != $accountEmail2){
    45.                               $error[]=$re['error9'];
    46.                             }
    47.  
    48.                             if(empty($accountPass)){
    49.                               $error[]=$re['error6'];
    50.                             }
    51.                            
    52.               if($dobD == '0' || $dobY == '0' || $dobM == '0'){
    53.                               $error[]=$re['error8'];
    54.                             }
    55.                            
    56.                             if($question == 0 || empty($answer)){
    57.                               $error[]=$re['error10'];
    58.                             }
    59.                            
    60.                             if(strlen($_POST['accountPass']) < 5 || strlen($_POST['accountPass']) > 15 ){
    61.                 $chars = strlen($accountPass);
    62.                 die("<p align='center'>".$Reg['Reg6']."<br><br>".$Reg['Reg9']."<br><br>".$Reg['Reg10']."".$chars." ".$Reg['Reg11']."<br><br>".$Reg['Reg12']."<br><br>".$Reg['Reg13']."</p><p align='center'><a href='register.php'><button class='ui-button button1' type='submit' value='back' tabindex='1'><span><span>".$back['back']."</span></span></button></a></p>");
    63.               }
    64.                            
    65.                           }else{
    66.                             $error[]=$re['error7'];
    67.                           }
    68.              
    69.               ?>
    70.               <?php
    71.               if(isset($error) && count($error) > 0){
    72.                 echo '<div class="errors" align="center">';
    73.                 foreach($error as $errors){
    74.                 echo "<font color='red'>*".$errors."</font><br />";
    75.                 }
    76.                 echo '</div>';
    77.                 echo '<meta http-equiv="refresh" content="3"/>';
    78.               }
    79.               else
    80.               {
    81.          
    82.               $ip = getenv("REMOTE_ADDR");
    83.                
    84.                
    85.                   mysql_select_db($server_adb,$connection_setup)or die(mysql_error());
    86.                 $accinfoq = mysql_query("SELECT * FROM account WHERE username = '".$accountName."'");
    87.                 $accinfo = mysql_num_rows($accinfoq);
    88.          
    89.                 if ($accinfo == 0)
    90.                 {
    91.                     $sha_pass_hash= sha1(strtoupper($accountName ) . ":" . strtoupper($accountPass));
    92.                     $register_logon = mysql_query("INSERT INTO account (username,sha_pass_hash,email,last_ip,expansion) VALUES (UPPER('".$accountName."'),  CONCAT('".$sha_pass_hash."'),'".$accountEmail."','".$ip."','2')")or die(mysql_error());
    93.         //удаляем запрос к базе на права   зарегистрированного пользователя (т.к ошибка)   
    94.         //$register_logon = mysql_query("INSERT INTO rbac_account_groups (groupId) VALUES ('1')")or die(mysql_error());
    95.  
    96.                     mysql_select_db($server_adb,$connection_setup)or die(mysql_error());
    97.                               $accountinfo = mysql_fetch_assoc(mysql_query("SELECT * FROM account WHERE username = UPPER('".$accountName."')"));
    98.                     mysql_select_db($server_db,$connection_setup)or die(mysql_error());
    99.                     $register_cms = mysql_query("INSERT INTO users (id,class,firstName,lastName,registerIp,country,birth,quest1,ans1) VALUES ('".mysql_real_escape_string($accountinfo['id'])."','0','".$firstName."','".$lastName."','".$ip."','".$country."','".$dob."','".$question."',UPPER('".$answer."'))");
    100.              
    101.                     if ($register_logon == true && $register_cms == true)
    102.                     {
    103.                         echo '<div class="alert-page" align="center">';
    104.                         echo '<div class="alert-page-message success-page">
    105.                                 <p class="text-green title"><strong>'.$re['scc1'].'</strong></p>
    106.                                 <p class="caption">'.$re['scc2'].'</p>
    107.                                 <p class="caption"><a href="account_man.php">'.$re['goPanel'].'</a></p>
    108.                                 </div>';
    109.                         echo '</div>';
    110.                         $_SESSION['username'] = $accountName;
    111.                         echo '<meta http-equiv="refresh" content="3;url=account_man.php"/>';
    112.                     }
    113.                     else{ //MODIFIED TO DELETE THE ACCOUNT IF SOMETHING IS WRONG DURING THE REGISTRATION
    114.                         mysql_select_db($server_adb,$connection_setup)or die(mysql_error());
    115.                         $accdel= mysql_query("DELETE FROM account WHERE username = '".$accountName."'");
    116.                         echo '<div class="errors" align="center"><font color="red">'.$re['error1'].'</font><br><br />';
    117.                         echo'<a href="register.php"><button class="ui-button button1"  id="back" tabindex="1" /><span><span>'.$re['back'].'</span></span></button></a></div>';
    118.                     }
    119.                 }
    120.               }
    121.               ?>
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    6stPROD, ты 9 лет на рынке написания сайтов и внезапно на тебя напала кодировка. ужас. у сережи муравьева спроси. он же у вас кодер.

    Добавлено спустя 2 минуты 41 секунду:
    во-первых валидацию мыла делать бесполезно. ну или можно для этого использовать готовые правильные решения.
    во-вторых ты вернешь волс если НЕ прегматч. иначе (то есть если прегматч) ты вернеш трю. а чо сразу не вернуть результат прегматча? для 9 лет на рынке сайтов с ценниками под 20килорублей слишком рукожопый код.
    в-третьих а как же айдиэн?
     
  3. 6stPROD

    6stPROD Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    124
    Симпатии:
    0
    Адрес:
    Тутаев, Ярославская область. Российская Федерация
    Научись разговаривать, те люди занимаются своими делами, а я всего лишь получаю бабки за фирму, которую когда то купили, а то что я сам изучаю php не делает меня мегаопытным кодером. Поэтому в следующий раз думай что пишешь,и не бери на себя дох*я. Чревато бывает по жизни !

    Добавлено спустя 3 минуты 31 секунду:
    Код (Text):
    1.  
    2. $result = TRUE;
    3. if(!preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $email)) {
    4. $result = FALSE;
    5. }
    6. return $result;
    Теперь же по этому: - как проверка по мылу поспособствует правильному отображению символов на сайте?
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а чо ты дерзкий такой? это непрофессионально. критику нужно выдерживать уметь. или тебя мамка недовоспитала? и мне твои оправдания про фирму и саморазвития - вилами по воде. это интернет, детка. есть сайт на котором ты заявляешь себя мегакрутым программистом, есть сайт на котором ты весь такой крутой и со снежным членом позируешь. мы все публичные личности. привыкни. и тут вдруг вся твоя крутость разбивается о твои дебильные вопросы. и начинается обычный для интернетов троллинг человека который сам себе противоречит. а ты обидульки кидаешь и угрозами угрожаешь. ты меня снежным пенисом собрался насиловать? да? знаниями своими изнасилуй. изобрази что ты хотя бы на крупицу так крут как светишься у себя на сайте и в соц.сетях.

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

    6stPROD Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    124
    Симпатии:
    0
    Адрес:
    Тутаев, Ярославская область. Российская Федерация
    Любишь же ты потеребонькать язычком, девочка твоя наверняка в восторге...хотя откуда она у тебя, если своим умом ты сутками поражаешь форумы. Если нечего ответить - не стоит срать в теме. знаешь ответ - подскажи, нет так не вмешивайся. а критику оставь при себе, интернет-воин

    Добавлено спустя 36 секунд:
    Прошу закрыть тему. Нет смысла общаться с ишаками
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    6stPROD
    Модератор не личная собачка. Предупреждение за это и за то, что ты первый начал срач.

    Добавлено спустя 35 секунд:
    помолчит сегодня
     
Статус темы:
Закрыта.