Fazer php checar se existe linha em um arquivo [RESOLVIDO]

1. Fazer php checar se existe linha em um arquivo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/10/2013 - 17:00h

Olá! Tudo bom, galera? Então.. Estou fazendo um sistema de registro para um game online e estou com um problema...

O game não usa database mysql, o 'banco de dados' dele é um arquivo dentro da pasta do servidor. O cadastro está funcionando perfeitamente, apenas preciso que o script cheque se aquele nome de usuário já existe e negue o registro.

O script é:

<html>
<head>
<title>Conta Criada com sucesso!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
a:link {
text-decoration: none;
color: #000000;
}
a:visited {
text-decoration: none;
color: #333333;
}
a:hover {
text-decoration: none;
color: #000000;
}
a:active {
text-decoration: none;
color: #000000;
}
-->
</style></head>
<h2>Conta criada com sucesso!</h2>
<p><a href="../../../index.php">Clique aqui para voltar para a pagina inicial!</a></p>


<?php
$usuario = $_POST["usuario"];
if($file['../SRegisteredUsers.dat'] == $usuario){
echo ("Nome de usuário ja existe!");
}else{
echo ("Conta Criada com sucesso!");
$usuario = $_POST["usuario"];
$senha = $_POST["senha"];
$fp = fopen("../SRegisteredUsers.dat", "a");
$escreve = fwrite($fp, "$usuario|$senha|standard|");
}
?>


O padrão de registro é: usuario|senha|grupo|
Separados pelo | , sem quebra de linha.

No caso, o exemplo do arquivo que deve estar escrito tem que ficar assim:

[Security]
RegUsers=admin|admin|admin|

Neste padrão.

Como eu faço para checar se o nome de usuário já existe e negar o cadastro?


  


2. tenta isso

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/10/2013 - 09:07h

tenta isso, feito na pressa, não testei

<?php

$usuario = $_POST["usuario"];
$senha = $_POST["senha"];
$existe = 0;


$fp = fopen("../SRegisteredUsers.dat", "r");
while(!feof($fp)) {
$linha = explode("|",fgets($fp,4096));;
if ($linha[0]==$usuario) $existe++;
}
fclose($fp);


if($existe==0){
$fp = fopen("../SRegisteredUsers.dat", "a");
$escreve = fwrite($fp, "$usuario|$senha|standard|");
fclose($fp);
echo ("Conta Criada com sucesso!");


}else{
echo ("Nome de usuário ja existe!");
}



?>




3. Re: Fazer php checar se existe linha em um arquivo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/10/2013 - 15:01h

Não funcionou :/


4. erro

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/10/2013 - 22:57h

Qual foi a mensagem de erro? Aonde deu erro?


5. Re: Fazer php checar se existe linha em um arquivo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/10/2013 - 16:52h

não deu mensagem de erro, apenas consegui me cadastrar 3 vezes com o mesmo login :/


6. testa

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/10/2013 - 18:35h

testa esse trecho:

$fp = fopen("../SRegisteredUsers.dat", "r");
while(!feof($fp)) {
$linha = explode("|",fgets($fp,4096));
if ($linha[0]==$usuario) $existe++;
}
fclose($fp);

ele busca e faz a comparação pra saber se existe, eu retirei um ponto e virgula a mais que tinha nessa linha:

$linha = explode("|",fgets($fp,4096));

coloque um echo logo depois dela pra ver a variavel $linha[0] e $usuario.

posta o que apareceu







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts