Выводит иероглифы

Сюда сваливаются темы, которые признаны не содержащими интересной информации...

Модератор: TRAHOMOTO

Выводит иероглифы

Сообщение Cashman » 19 янв 2011, 03:21

Сервер выводит иероглифы (вот ошибка: Invalid JSON: ��� ���������� ) вместо того, чтоб вывести {"ok":"Авторизация прошла успешно"}.
index.php
Код: выделить все
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css" media="all">@import url(/instruction/base.css);</style>
</head>
<script type="text/javascript" src="/jquery-1.4.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$('#login_form').submit(function(evObj)
{
evObj.preventDefault();
var log  = function(msg){
   console.log ? console.log(msg) : alert(msg);}
var login = $("#login").val(); 
var password = $("#password").val();
var dataString = 'login='+login+'&password='+password;
$.ajax
({
url         : 'obrobotka.php',
type        : 'POST',
cache       : false,
data        : dataString,
dataType    : 'json',
beforeSend  : function(){
                    $('#status_border').css('display','block');
                    $('#hide_status').show();
                    $('#fild').hide();
                    $('#proces').fadeIn('slow',function(){
                       $('#proces').html('<b>Идет авторизация...</b>');
                    })               
              },
success     : function(data, textStatus, xhr){
                    $('#proces').html('<b>Завершено</b>');
                    $('#status').fadeIn('slow',function(){
                       $('#status').html('<b>'+data.ok+'</b>');
                    })                   
              },
error       : function(xhr, textStatus, errorObj){
                    log('произошла ошибка. сообщение не было отправлено.'+errorObj);
              },    
});
});
});
</script>
<body>
<form action="obrobotka.php" name="login_form" id="login_form">
   <div id="fild">
   <input type="login" name="login" id="login" /><br>
   <input type="password" name="password" id="password" /><br>
   <input type="submit" id="enter" name="enter" value="login"/>
   </div>
   <div id="proces"></div>
   <div id="hide_status"><font color="red"><b>Статус:</b></font></div>
   <div id="status_border"><div id="status"></div></div>
</form>
</body>
</html>



obrobotka.php
Код: выделить все
<?php
mysql_connect("localhost", "root", "") or die('нет соединения');
mysql_select_db('base');
$login1='111';
$login2='123';
$password1='111';
$password2='123';
sleep(3);
if($_POST['login']==$login1 && $_POST['password']==$password1){
echo '{"ok":"Авторизация прошла успешно"}';
}
else if($_POST['login']==$login2 && $_POST['password']==$password2){
echo '{"ok":"Авторизация прошла успешно"}';
}
else {
     if (!empty($_POST['login']) && empty($_POST['password'])){
   echo '{"ok":"Введите пароль"}';
       }
     else if(empty($_POST['login']) && !empty($_POST['password'])){
   echo '{"ok":"Введите логин"}';
       }
     else if(empty($_POST['login']) && empty($_POST['password'])){
   echo '{"ok":"Введите логин и пароль"}';
       }
     else if(($_POST['login']!=$login1) || ($_POST['login']!=$login2)){
   echo '{"ok":"Не правельные данные"}';
       }
     else if($_POST['login']=$login1 && $_POST['password']!=$password1){
   echo '{"ok":"Не правельные данные"}';
       }
     else if($_POST['login']=$login2 && $_POST['password']!=$password2){
   echo '{"ok":"Не правельные данные"}';
       }
}
?>
Cashman
 
Сообщений: 55
Зарегистрирован: 07 янв 2011, 21:15

Re: Выводит иероглифы

Сообщение Kink » 19 янв 2011, 08:58

Кодировку нужно прописать в обоих файлах для начала.
Скорей всего этого будет и достаточно.
Kink
 
Сообщений: 29
Зарегистрирован: 03 дек 2010, 21:10

Re: Выводит иероглифы

Сообщение Cashman » 19 янв 2011, 13:28

Поставил я в самом начале файла header('Content-Type: text/html; charset=Windows-1251'); Текст нормально отобразился. Но не понимаю зачем писать этот заголовок, видел много рабочих кодов где заголовок не писался и все нормально работало...
Cashman
 
Сообщений: 55
Зарегистрирован: 07 янв 2011, 21:15

Re: Выводит иероглифы

Сообщение zandroid » 19 янв 2011, 14:41

И работало оно, потому что везде используют UTF-8, принятый в ajax по умолчанию, а у вас win-1251.
Аватар пользователя
zandroid
Модератор
 
Сообщений: 1164
Зарегистрирован: 21 янв 2010, 22:16
Откуда: Нижний Новгород

Re: Выводит иероглифы

Сообщение Cashman » 19 янв 2011, 17:19

Так без этого заголовка не работало...
Cashman
 
Сообщений: 55
Зарегистрирован: 07 янв 2011, 21:15

Re: Выводит иероглифы

Сообщение zandroid » 19 янв 2011, 17:53

Перечитай внимательно предыдущие посты...
Я ж написал, что по умолчанию браузер использует utf-8, а у тебя win-1251, поэтому и выводятся иероглифы, поэтому и требуется указывать кодировку. А вот если б сервер всё возвращал в utf-8, то явно кодировку указывать не обязательно.
Аватар пользователя
zandroid
Модератор
 
Сообщений: 1164
Зарегистрирован: 21 янв 2010, 22:16
Откуда: Нижний Новгород

Re: Выводит иероглифы

Сообщение Cashman » 19 янв 2011, 18:04

Подскажите как мне сделать редирект если data.succes =1 на одну страницу и если data.succes=0 на другую...
Cashman
 
Сообщений: 55
Зарегистрирован: 07 янв 2011, 21:15

Re: Выводит иероглифы

Сообщение Cashman » 19 янв 2011, 18:27

в succes у меня уже есть
Код: выделить все
function(data, textStatus, xhr){
                    $('#proces').html('<b>Завершено</b>');
                    log(data.message);
                    $('#status').fadeIn('slow',function(){
                       $('#status').html('<b>'+data.message+'</b>');
                    });
                                                         
              }
Cashman
 
Сообщений: 55
Зарегистрирован: 07 янв 2011, 21:15

Re: Выводит иероглифы

Сообщение zandroid » 19 янв 2011, 19:22

http://javascript.ru/window.location

Тема конструктива касаемо jQuery не несет, поэтому переношу в мусорку.
ввгнг вес - подробное описание на нашем сайте

Тема конструктива касаемо jQuery не несет, поэтому переношу в мусорку.
Картинки для дітей

Тема конструктива касаемо jQuery не несет, поэтому переношу в мусорку.
сайт общение - смотрите на сайте

Тема конструктива касаемо jQuery не несет, поэтому переношу в мусорку.
Аватар пользователя
zandroid
Модератор
 
Сообщений: 1164
Зарегистрирован: 21 янв 2010, 22:16
Откуда: Нижний Новгород

Re: Выводит иероглифы

Сообщение Cashman » 19 янв 2011, 19:45

Вот ещё вопросик: есть форма, есть для неё обработчик obrobotchik.php. Как мне отправить переменную в другой php файл?
Cashman
 
Сообщений: 55
Зарегистрирован: 07 янв 2011, 21:15

След.

Вернуться в Мусорка

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2