сравнение строк при авторизации

UmJammer

Новичок
сравнение строк при авторизации

Подскажите пожалуйста, как сравнить например введенное имя с именем в файле. Вот у меня есть файл users.db, в него записывается информация при регистрации. Никак не могу сделать форму входа, точнее сверку введенных данных, помогите плиз...
 

Delph

Новичок
Получаешь запрос из формы авторизации. Делаешь запрос к своей БД. Сравниваешь полученные значения. В чем проблема? :)
 

UmJammer

Новичок
Проблема в том, что не получается сравнить, введенную инфу и инфу из файла.
 

Solid

Drosera anglica
Во первых, давай с начала разберёмся каким образом ты хранишь данные. Т.е. какие разделители.. да и вообще, как организованна база?
Во вторых, не легче ли использовать базу данных MySQL или ей подобную?
 

UmJammer

Новичок
Solid с мусклом я еще незнаком, так как еще начинающий. А насчет разделителей:
Структура: username|password|info_o_sebe
 

Solid

Drosera anglica
В MySQL это делается намного проще:
PHP:
list($count) = mysql_fetch_row(mysql_query(sprintf("SELECT COUNT(*) FROM users WHERE username='%s' AND password='%s' LIMIT 1", mysql_escape_string($_GET['username']), mysql_escape_string($_POST['password']))));

if($count>0) {
 // вход в систему прошёл благополучно ;)
} else {
 // не правильный пароль или юзернэйм
}
:D
 

UmJammer

Новичок
Delph
инфу достать могу.
Solid
Возможно и проще,но я незнаю как создавать саму таблицу.
 

Solid

Drosera anglica
PHP:
function get_data() {
$data = file_get_contents('database.db');
$array = explode("\n", $data);
for($i=0, $count=count($array); $i<$count; $i++) {
 $array[$i] = explode("|", $array[$i]);
}
return $array;
}

print_r(get_data());
 

Solid

Drosera anglica
Так а в чём тогда проблема? Берёшь и просто через:
PHP:
$array = get_data();
$flag = false;
for($i=0, $count=count($array); $i<$count; $i++) {
 if($array[$i][0]==$_POST['username'] && $array[$i][1]==$_POST['password']) {
   $flag = true;
 }
}

if($flag) {
// ok
} else {
// bad
}
-~{}~ 03.02.06 16:22:

Я уже за тебя весь код написал.. :D
 

UmJammer

Новичок
Solid спасибо конечно, но все равно не получается, пишу любое имя и пароль и он благополучно входит
 

UmJammer

Новичок
PHP:
<?
function get_data() { 
$data = file_get_contents('files/users.db'); 
$array = explode("\n", $data); 
for($i=0, $count=count($array); $i<$count; $i++) { 
 $array[$i] = explode("|", $array[$i]); 
} 
return $array; 
} 


$array = get_data(); 
$flag = false; 
for($i=0, $count=count($array); $i<$count; $i++) { 
 if($array[$i][0]==$_POST['name'] && $array[$i][1]==$_POST['pass']) { 
   $flag = true; 
 } 
} 

if($flag) { 
// ok 
} else { 
// bad 
}
function err()
{
echo"
<h2>Вход в систему</h2>
<form action='enter.php' method='post'>
Имя пользователя:<br>
<input type=text name=name maxlength=20><br>
Пароль пользователя:<br>
<input type=password name=pass maxlength=20><br>
<input type=submit value=Войти><input type=reset value=сброс>
</form>";
}
$users="files/users.db";
$error=0;
if(empty($name)){
echo"Вы не ввели имя";$error=1;err();exit;
	          }
if(empty($pass)){
echo"Вы не ввели ваш пароль";$error=2;err();exit;
	          }



if($error==0){
echo"Вы вошли как $name. Вы можете <a 

href=enter.php?do=exit>выйти</a>";
	    }
?>
 
Сверху