|
|
|
| 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. Я не могу понять почему! Подскажите выход. | |
|
|
|
|
|
|
|
для: Gerat
(24.03.2006 в 19:00)
| | explode() по определению возвращает массив. А что Вы ждете от этого кода? | |
|
|
|
|
|
|
|
для: Gerat
(24.03.2006 в 19:00)
| | ну ясен пень равна array
вы ж сами пишите
$loginname = explode("\n",$data);
|
логиннэйм по вашему это сборище строк в logins.php
а потом вы эту переменную делите по значку "|" на логин и пароль
кстати имхо плохой вариант - вдруг у меня будет логин или пароль состоять из этого значка? | |
|
|
|
|
|
|
|
для: 1999
(24.03.2006 в 19:09)
| | Значка не будет все предусмотренно.
Я не очень понял что вы предлогаете. Поменять переменные местами? Это не помогает.
Он все равно выводит только array. Он только объявляет массив, но не заносит туда данные! | |
|
|
|
|
|
|
|
для: Gerat
(25.03.2006 в 12:29)
| | ап | |
|
|
|
|
|
|
|
|
для: Alexx
(25.03.2006 в 13:54)
| | Не боись, я уже читал. ты лучше скажи что не так! | |
|
|
|
|
|
|
|
для: Gerat
(24.03.2006 в 19:00)
| | Не понятно что вызывает затруднения, если вы хотите просмотреть содержимое массива $loginname, то вместо кода
<?php
echo $loginname;
?>
|
необходимо воспользоваться
<?php
echo "<pre>";
print_r($loginname);
echo "</pre>";
?>
|
или вопрос в другом? | |
|
|
|
|
|
|
|
для: cheops
(25.03.2006 в 14:05)
| | Да, вопрос в другом.
Функция explode должна разбивать данные из фаила на строки но она не работает. Когда я попытался вывести $loginname он выдал: ARRAY и все, а должен: ARRAY(0=>строка,1=>строка) | |
|
|
|
|
|
|
|
для: Gerat
(25.03.2006 в 14:13)
| | Понятно, это связано с тем, что fread() читает только до первого перевода строки, поэтому её обычно используют в цикле while(), в вашем случае лучше воспользоваться функцией file_get_contents(), которая извлекает всё содержимое файла.
<?php
$data = file_get_contents("logins.php");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(25.03.2006 в 14:19)
| | все равно не работает. Я посмотрел он полностью считывает из файла и при первоначальном варианте.
Но даже если он считывает только до перевода строки должно получиться: ARRAY(0=>1-ая строка) а такого нет( | |
|
|
|
|
|
|
|
для: Gerat
(25.03.2006 в 14:29)
| | Ой, простите за беспокойство, я использовал для вывода массива функцию echo, вот я дурак). большое спасибо за помощь(кстати отличный сайт,а главное полезный) | |
|
|
|