Autor Zpráva
Zoomer
Profil *
Zdravím,

potřeboval bych poradit - dělám pro vlastní účely takový menší flat file cms - jak se říká v jednoduchosti síla, a bude to používat maximálně pár lidí z týmu.

Nejjednodušší registrace, ovšem u ní mám problém

Kód který mi přidá do souboru user.txt na nový řádek každého zaregistrovaného uživatele, jenže takhle se mi pod danou přezdívkou nebo e-mailem může zaregistrovat 100 lidí a já neumím udělat ten proces, který by zahulákal, že přezdívku nebo e-mail už někdo používá
Nepomohl by někdo ?

Kód zpracování:

$jmeno = $_POST['jmeno'];
$email = $_POST['email'];
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];

if($pass1==$pass2){$new_pass = md5($pass1);}

if($jmeno!="" and $email!="" and $pass1!="" and $pass2!="" and $pass1==$pass2){

$soubor = fopen("data/user.txt","a");
fwrite($soubor, "$jmeno||$new_pass||$email\n");
fclose($soubor);

echo '<p>'.$lang['reg_uspech'].'</p>';

}
else{
echo '<h1>'.$lang['reg_neuspech'].'</h1>';
if(empty($jmeno)){echo '<p>'.$lang['reg_err_jmeno'].'</p>';}
if(empty($email)){echo '<p>'.$lang['reg_err_email'].'</p>';}
if(empty($pass1)){echo '<p>'.$lang['reg_err_heslo'].'</p>';}
if(empty($pass2)){echo '<p>'.$lang['reg_err_repheslo'].'</p>';}
if($pass1!=$pass2){echo '<p>'.$lang['reg_err_neshoda'].'</p>';}
echo '<p>'.$lang['reg_pokracovat'].'</p>';
}
AM_
Profil
Poradím ti naučit se s mysql. To se dá zvládnout za jedno odpoledne, kdežto při práci se soubory budeš narážet znovu a znovu na problémy, které už někdo dávno vyřešil tím, že vymyslel databáze, tak proč znova vynalézat kolo.
Na tvůj problém nevím o lepším řešení, než projít všechny zaregistrované uživatele a zjistit, jestli už stejný neexistuje. Samozřejmě pak budeš narážet na ošetření kritických sekcí, kdy se dva uživatelé registrují v jednu chvíli se stejnou přezdívkou a program tomu nezabrání (a stavět si na to semafor v PHP taky není legrace), to je nad databázemi také vyřešené, atd...
DJ Miky
Profil
A když už chceš použít soubory, tak jednodušší řešení bude ukládat serializované pole (viz funkce serialize() a unserialize()). Pak už můžeš jednodušeji hledat, jestli je jméno již zabrané.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0