Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Глюк функции explode()!
 
 автор: Gerat   (24.03.2006 в 19:00)   письмо автору
 
 

Function logins($login,$pw){
$f = fopen ("logins.php" ,"r");
$data = fread($f,1024);
$loginname = explode("\n",$data);
$m=count($loginname);
for ($n=0;$n<$m;$n++){
$names = explode("|",$loginname[$n]);
If ($login==$names[0]and$pw==$names[1]){
setcookie("login",$login,time()+86400); setcookie("pw",$pw,time()+86400);
echo $login.'<img src="gif/infa.gif"border="0">'; $p=1;
};
};
if(!$p==1){echo 'Не верный логин или пароль!'.$form;};
fclose($f);
};
Есть вот такая функция. Ошибку она не выдаёт, но почему то переменная $loginname равна array. Я не могу понять почему! Подскажите выход.

   
 
 автор: Trianon   (24.03.2006 в 19:09)   письмо автору
 
   для: Gerat   (24.03.2006 в 19:00)
 

explode() по определению возвращает массив. А что Вы ждете от этого кода?

   
 
 автор: 1999   (24.03.2006 в 19:09)   письмо автору
 
   для: Gerat   (24.03.2006 в 19:00)
 

ну ясен пень равна array
вы ж сами пишите

$loginname = explode("\n",$data);

логиннэйм по вашему это сборище строк в logins.php
а потом вы эту переменную делите по значку "|" на логин и пароль
кстати имхо плохой вариант - вдруг у меня будет логин или пароль состоять из этого значка?

   
 
 автор: Gerat   (25.03.2006 в 12:29)   письмо автору
 
   для: 1999   (24.03.2006 в 19:09)
 

Значка не будет все предусмотренно.
Я не очень понял что вы предлогаете. Поменять переменные местами? Это не помогает.
Он все равно выводит только array. Он только объявляет массив, но не заносит туда данные!

   
 
 автор: Gerat   (25.03.2006 в 13:51)   письмо автору
 
   для: Gerat   (25.03.2006 в 12:29)
 

ап

   
 
 автор: Alexx   (25.03.2006 в 13:54)   письмо автору
 
   для: Gerat   (25.03.2006 в 13:51)
 

http://www.softtime.ru/dic/id_dic=21&id_group=1

   
 
 автор: Gerat   (25.03.2006 в 13:56)   письмо автору
 
   для: Alexx   (25.03.2006 в 13:54)
 

Не боись, я уже читал. ты лучше скажи что не так!

   
 
 автор: cheops   (25.03.2006 в 14:05)   письмо автору
 
   для: Gerat   (24.03.2006 в 19:00)
 

Не понятно что вызывает затруднения, если вы хотите просмотреть содержимое массива $loginname, то вместо кода
<?php
  
echo $loginname;
?>

необходимо воспользоваться
<?php
  
echo "<pre>";
  
print_r($loginname);
  echo 
"</pre>";
?>

или вопрос в другом?

   
 
 автор: Gerat   (25.03.2006 в 14:13)   письмо автору
 
   для: cheops   (25.03.2006 в 14:05)
 

Да, вопрос в другом.
Функция explode должна разбивать данные из фаила на строки но она не работает. Когда я попытался вывести $loginname он выдал: ARRAY и все, а должен: ARRAY(0=>строка,1=>строка)

   
 
 автор: cheops   (25.03.2006 в 14:19)   письмо автору
 
   для: Gerat   (25.03.2006 в 14:13)
 

Понятно, это связано с тем, что fread() читает только до первого перевода строки, поэтому её обычно используют в цикле while(), в вашем случае лучше воспользоваться функцией file_get_contents(), которая извлекает всё содержимое файла.
<?php
$data 
file_get_contents("logins.php");
?>

   
 
 автор: Gerat   (25.03.2006 в 14:29)   письмо автору
 
   для: cheops   (25.03.2006 в 14:19)
 

все равно не работает. Я посмотрел он полностью считывает из файла и при первоначальном варианте.
Но даже если он считывает только до перевода строки должно получиться: ARRAY(0=>1-ая строка) а такого нет(

   
 
 автор: Gerat   (25.03.2006 в 14:40)   письмо автору
 
   для: Gerat   (25.03.2006 в 14:29)
 

Ой, простите за беспокойство, я использовал для вывода массива функцию echo, вот я дурак). большое спасибо за помощь(кстати отличный сайт,а главное полезный)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования