Sidebar

помогите с PHP скриптом =)

LLIyruk[Khb]

Пользователь
30.01.09
690
29
помогите с PHP скриптом =)

судя по всему, здесь можно задавать вопросы о PHP

И так, во общем создал я скриптик(Ну простой такой ]]]) и во общем с ним проблемы, вот код :
Код:
<?
if (isset($_GET[menu]))
	{
	$link = $_GET[menu];
	$fname = "menu/".$link.".html";

	if (file_exists($fname)) 
		include ($fname);
	else
	echo "Простите, ссылка битая";
}
	else
include("menu/index.html");
?>
Но вот проблема в том что если я просматриваю в IE, Opera и Mazila то у меня хз какие то символы, приходится html файлы перекодить в ASPII(вроде я не помню)) это не удобно.Но после перекодировки опера и мозила еще хуже бред пишет.... помогите избавится =)
 

qpAHToMAS

Administrator
Команда форуму
Администратор
22.10.06
9 323
33
  • Золотая медаль 215
  • Золотая медаль 152
  • Серебряная медаль 136
  • Золотая медаль 221
2 LLIyruk[Khb]:
В соседней теме затронули это. Вообщем как понял, в странице не устанавливается элементарная кодировка.

Пысы: смотри настройки сервера, там ведь есть возможность ставить любую страницу при отсутствии файла на сервере (ошибка 403), если твой скрипт конечно делает такое же.

Простите, ссылка битая
Простите, не верная ссылка.
 

Gaia

Чёрный вертолёт
Спонсор
04.08.08
4 685
37
154
63
2 LLIyruk[Khb]:
Я так понимаю, ты серв у себя на компе развернул, причём под винду(Жесть :D )
Открываешь apache.conf и идёшь к строке
AddDefaultCharset UTF-8
Меняй на
AddDefaultCharset WINDOWS-1251

Post automatically merged:

2 LLIyruk[Khb]:
А что за версия ПХП? %)
 
Останнє редагування:

TwisteR

VIP
VIP
24.07.06
4 045
  • Серебряная медаль 311
  • Золотая медаль 115
  • Серебряная медаль 215
Nucleo сказав(ла):
AddDefaultCharset UTF-8
Меняй на
AddDefaultCharset WINDOWS-1251
А вот так вот лучше не делать. Юникод должен править миром.

Лучше просто явно указать кодировку в документе:
Код:
<html>
<head>
<title>Документ</title>
<meta http-equiv="Content-Type" content="text/html; [B][COLOR=Yellow]charset=utf-8[/COLOR][/B]">
...
 

TwisteR

VIP
VIP
24.07.06
4 045
  • Серебряная медаль 311
  • Золотая медаль 115
  • Серебряная медаль 215
2 Nucleo:
Просто здраво мыслю. Никому не нужен зоопарк кодировок (который, кстати, присущ не только винде), если их можно заменить одной (которая никакого отношения к юниксу не имеет). Так что хз, откуда у тебя такие ассоциации...
 

Gaia

Чёрный вертолёт
Спонсор
04.08.08
4 685
37
154
63
2 TwisteR:
Логично :)
 

Gaia

Чёрный вертолёт
Спонсор
04.08.08
4 685
37
154
63
Проблема со скриптом авторизации

Вот, столкнулся с проблемой. По идее из формы посылаются данные в скрипт, а он в свою очередь сравнивает принятые данные с базой. При введении правильных данных совпадений почему-то нет. Вот кусок кода:
Код:
if(isset($_POST['username']) && isset($_POST['passwrd'])) {
	$file=file('base.php');		
	for($i=1;$i>count($file);$i++) { // первую строку не нужно обрабатывать
		$value = explode(':::',$file[$i]);
		if($value[0]==$_POST['username'] && $value[1]==$_POST['passwrd']) {
			setcookie('logging',$file[$i]);
			print("logged in");
			define('_LOGGED_IN',true);
			}
	}
}
Помогите пожалуйста =)
 

TwisteR

VIP
VIP
24.07.06
4 045
  • Серебряная медаль 311
  • Золотая медаль 115
  • Серебряная медаль 215
2 Nucleo:
Попробуй перед сравнением удалять пробельные символы из данных, которые читаешь с файла ($value[0] и $value[1]). К примеру, ф-цией trim().

Если не поможет, выложи содержимое файла base.php, будем смотреть...
 

Gaia

Чёрный вертолёт
Спонсор
04.08.08
4 685
37
154
63
2 TwisteR:
trim() уже пробовал, не помогает. Да и пробелов не было.
Содержимое base.php примерно такое:
Код:
<?php die();?>
Username:::password:::email@mail:::userdir
...
Ума не приложу. Вроде всё правильно.
 

TwisteR

VIP
VIP
24.07.06
4 045
  • Серебряная медаль 311
  • Золотая медаль 115
  • Серебряная медаль 215
2 Nucleo:
Это, конечно, чисто предположение, но, имхо, лучше писать так:
Код:
for($i=1;$i[B][SIZE=7]<[/SIZE][/B]count($file);$i++)
:D
 

AndrewDragon

Уставший Дракон
VIP
10.01.05
5 130
24
  • Золотая медаль 152
  • Золотая медаль 141
а сделай так, чтобы в одну строчку скрипт выводил введенные данные, а во второй — из базы и на глаз сравни :)
 

Gaia

Чёрный вертолёт
Спонсор
04.08.08
4 685
37
154
63
2 TwisteR:
Ну точно! :lol:
А я то голову ломаю! Спс =)
 

TwisteR

VIP
VIP
24.07.06
4 045
  • Серебряная медаль 311
  • Золотая медаль 115
  • Серебряная медаль 215
2 AndrewDragon:
\n, \t и прочую лабуду он там не увидит, т.к. хтмл-ом это на экран не выводится. Его проблема в прогуливании уроков арифметики, где обьясняли разницу между < и > =)
 

Gaia

Чёрный вертолёт
Спонсор
04.08.08
4 685
37
154
63
2 TwisteR:
Его проблема в прогуливании уроков арифметики
Очепятка просто =) И почему нельзя увидеть \n? Можно. В этом сообщении он стоит 3 раза =)
 
Останнє редагування:

TwisteR

VIP
VIP
24.07.06
4 045
  • Серебряная медаль 311
  • Золотая медаль 115
  • Серебряная медаль 215
2 Nucleo:
Ну я условно :) Отслеживая ошибки, я бы не полагался на подсчёт пробельных символов. Если это выводится в браузере, гораздо удобнее вместо \n использовать <br>, \t заменять на _ ну и т.п. Вообщем, как то их визуализировать. Это удобнее, чем каждый раз заглядывать в исходник страницы или получать её по telnet =)
 

Gaia

Чёрный вертолёт
Спонсор
04.08.08
4 685
37
154
63
2 TwisteR:
Ну да, тем более что не каждый браузер корректно обрабатывает \n и \t :) Опера например результат выполнения print_r() выводит как одну строку с ключами и значениями. Очень не удобно при отладке, особенно если нужно вывести несколько массивов сразу. =)
 

TwisteR

VIP
VIP
24.07.06
4 045
  • Серебряная медаль 311
  • Золотая медаль 115
  • Серебряная медаль 215
2 Nucleo:
Дык это понятно, любой браузер будет так выводить текст с переносами строк, но без тегов <br>. Либо жми ctrl+u (посмотреть исходный код страницы), либо окружай вывод массива print_r() тегами <pre></pre>, чтоб браузер выводил текст между этими тегами "как есть".
 

Game Server

Доноры Красавчики

Користувачі онлайн