2016-03-31 14 views
0

Metin belgeleri kullanarak bir kullanıcı hesabı sistemi oluşturmaya çalışıyorum. Ama benim kodumla olan mesele, belgeyi oluşturmazsa ilk önce var olup olmadığını test etmek yerine belgenin üzerine yazmasıdır. Bunun neden olduğu hakkında bir fikrin var mı?Varolan dosyayı denetlemiyor musunuz? PHP

<?php 
    if (isset($_GET['NewUsername'])){ 
     if (isset($_GET['NewPassword'])){   
      $NewPassword = $_GET['NewPassword']; 
      $NewUsername = $_GET['NewUsername']; 
      if (file_exists("USERS/".$NewUsername)) { 
       echo 'Error: User Already Exists!'; 
      } 
      else{ 
       $myFile=fopen("USERS/".$NewUsername.".txt","w") or exit("Can’t open file!"); 
       fwrite($myFile, $NewPassword); 
       fclose($myFile); 
       echo 'Account Created!'; 
      } 
     } 
    } 
?> 
+0

bu deneyin: 'if (file_exists ("KULLANICI /".$ newusername." Txt").) { ' – Jer

+1

1. Hiç düz metin parolalar, her zaman tuz saklamak asla ve 2 bunları karma Bunu web kökünde saklamamalısınız (herhangi birini açabilirsiniz mi?), 3. Bunun için GET'i kullanmamalısınız, fakat bunun için POST (değerler tarayıcının geçmişinde görünecektir ...), 4. Bkz. 1. – jeroen

+0

Ayrıca internette birinden aldığınız karakterleri içeren dosyaları oluşturmaya da dikkat edin. Bazı komut satırı araçlarıyla kullanıldığında kötü davranan çok kötü isimlere sahip dosyalar ile sonuçlanabilir. –

cevap

5

Bir .txt uzantılı bir dosyaya yazıyoruz - ama sen uzantısı olmadan bir dosyayı test etmek file_exists kullanıyor ....

Yani, hiç

if (file_exists("USERS/".$NewUsername)) { 

değiştirmek :

if (file_exists("USERS/".$NewUsername ."txt")) { 
+0

Geri dönün ve bunu farkedin, yardımlarınız için teşekkürler. –

+0

Zevkim - kene! – Stuart

1

Dosya olup olmadığını kontrol etmek için doğru dosya adını kullanmıyorsunuz zaten var. Kodu aşağıdaki ile değiştirmeyi deneyin.

if (file_exists("USERS/".$NewUsername.".txt")) { 
İlgili konular