Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [INCLUDE]PINI - PHP INI FILE PROCESSOR V1.1, support dla plikow .ini oraz jego tworzenie za pomoca tego include-a&#
grasmanek94
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 24.05.2010

Ostrzeżenie: (0%)
-----


PINI - Include dla funkcji obslugiwania plikow INI.
Latwe w uzyciu oraz wlasne funkcje FTP!

Funkcje:
Kod
//----PHP_INI_FUNCTIONS----//
pini_Exists($filename) <- Sprawdza czy plik o danej nazwie istnieje
pini_Remove($filename)<- Usuwa plik o danej nazwie
pini_Create($filename) <- Tworzy plik o danej nazwie
pini_Get($filename,$key) <- Pobiera $key= z pliku INI jako string
pini_IntGet($filename,$key) <- Pobiera $key= z pliku INI jako int
pini_Set($filename,$key,$value) <- Ustawia $key= w pliku INI na $value
pini_IntSet($filename,$key,$value)  <- Ustawia $key= w pliku INI na $value
//----FTP_PHP_INI_FUNCTIONS----//
FTP_pini_Exists($filename,$host,$user,$password,$path)
FTP_pini_Remove($filename,$host,$user,$password,$path)
FTP_pini_Create($filename,$host,$user,$password,$path)
FTP_pini_Get($filename,$key,$host,$user,$password,$path)
FTP_pini_IntGet($filename,$key,$host,$user,$password,$path)
FTP_pini_Set($filename,$key,$value,$host,$user,$password,$path)
FTP_pini_IntSet($filename,$key,$value,$host,$user,$password,$path)
//----PHP_UDB_FUNCTIONS----//
udb_hash($buf)// hashuje STRING
udb_encode($nickname)//koduje string
udb_decode($nickname)//odkoduje string


Maly przyklad uzycia:
  1. <?php
  2. include('pini.php');
  3.  
  4. $promote = $_POST['kodpremium'];
  5. $nickname = $_POST['uzytkownik'];
  6. $pass = $_POST['haslo'];
  7. $usg = $_POST['promocja'];
  8.  
  9. $host = "127.0.0.1";
  10. $user = "admin";
  11. $password = "admin";
  12. $path = "samp/scriptfiles/";
  13. $pname = udb_encode($nickname);
  14.  
  15. $userpass = FTP_pini_Get($pname,"password",$host,$user,$password,$path);
  16. $newpass = udb_hash($pass);
  17.  
  18. $lines = file("uzytekodykupna2.txt");
  19. foreach ($lines as $line) {
  20. $line = rtrim($line);
  21. if($promote == $line){
  22. printf("ERROR:0x4B44555A!(KOD JUZ ZOSTAL ZUZYTY)<BR>");
  23. exit();
  24. }
  25. }
  26.  
  27. $found = 0;
  28. $lines = file("kodykupna2.txt");
  29. foreach ($lines as $line) {
  30. $line = rtrim($line);
  31. $line = str_replace("sha1('","",$line);
  32. $line = str_replace("');","",$line);
  33. if($promote == $line){
  34. $found = 1;
  35. }
  36. }
  37.  
  38. if($found == 0){
  39. echo("ERROR:0x5A4C4B44!(KOD NIEPOPRAWNY)<BR>");
  40. exit();
  41. }
  42.  
  43. if($userpass != $newpass){
  44. echo("ERROR:0x42444C47!(ZLE HASLO LUB LOGIN)<BR>");
  45. exit();
  46. }
  47.  
  48. if($usg == "Paczka1"){
  49. FTP_pini_Set($pname,"Testowy2","UdaloSie2",$host,$user,$password,$path);
  50. }
  51.  
  52. $f=fopen("uzytekodykupna2.txt","a+");
  53. fwrite($f,$promote);
  54. fwrite($f,"\r\n");
  55. fclose($f);
  56.  
  57. print("Zakup Udany!");
  58.  
  59. ?>


Zapraszam do sciagania:

Mirror1
Mirror2

Ten post edytował grasmanek94 24.05.2010, 06:26:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Nie wiem czy znasz manuala, nie wiem, ile programujesz w PHP. Widzę, że napisałeś skrypt, w którym popełniłeś mnóstwo poważnych błędów. Aczkolwiek patrząc po tym, ile razy wynajdujesz w nim koło na nowo, śmiem twierdzić, że jednak nie znasz go tak dobrze, jak twierdzisz. Do parsowania plików INI jest gotowa funkcja i pisanie własnego parsera, w dodatku okrojonego, nie ma najmniejszego sensu - nawet jeśli potrzebowałeś "lepsze" API, wystarczyło w nim użyć gotowego parsera. Do tworzenia plików jest osobna funkcja, a nie kombinacja fopen()+fclose(). str_replace() nie trzeba wywoływać 15 razy na tym samym ciągu, by zamienić 15 sekwencji, bo funkcja ta może przyjąć tablicę. Przy modyfikacji zrzucasz wszystko do pliku tymczasowego, a później podmieniasz, mimo iż nie jest Ci on do niczego potrzebny, bo dotychczasową zawartość masz już przecież w pamięci, a nawet gdyby to miało służyć zabezpieczeniu przed przypadkowym odczytem, to od tego jest blokowanie plików. Stworzyłeś różne funkcje w stylu udb_decode() i udb_encode() podczas gdy PHP ma wbudowanych od cholery funkcji generujących hasze, konwertujących ciąg na tekst bezpieczny i nie wiadomo, co jeszcze.

Kolejna rzecz to kwiatki w stylu:

  1. $lines = file("$filename");


Zastanowiłeś się chociaż, co robi zapis "$zmienna"?

A największy zarzut jest taki, że wczytujesz te same rzeczy po 1000 razy, zamiast je sobie wczytać raz, a dobrze, zapamiętać w jakimś miejscu i wykorzystywać.

Ad. podanego przykładu - od tego są bazy danych.

Cytat
moze i jest to wymagajacy script ale coz, jesli ty masz kompa 266MHz z 312MB ramu i karta graficzna 4MB to zyjesz w przeszlosci a nie dzisiejszych czasach, spojz na wymagania 'standardowej' dzisiejszej gry. Takie cos to nic na dzisiejsze potezne serwery.


Zanim zaczniesz wypowiadać się w taki arbitralny sposób o wydajności, napisz sobie jakiś serwis, który ma więcej niż jedno wejście na dobę, a najlepiej przemnóż sobie te "wymagania standardowej gry, które są niczym na dzisiejsze potężne serwery" przez np. 10 wejść na sekundę i oblicz, przy jakim ruchu te "potężne serwery" padną. Bo jeśli chcesz dołączać do grona kolejnych pseudoprogramistów, którzy nie mają pojęcia o podstawach algorytmiki i twierdzą, że wydajność to przeżytek, naprawdę daruj sobie programowanie. Sprzątanie bałaganu informatycznego po takich ludziach to nic przyjemnego.

PS. Polecam lekturę podstawowych zasad netykiety. Nikt Cię na tym forum nie będzie głaskać po główce i mówić, jaki to jesteś fajny tylko dlatego, że Ci się samodzielnie skrypt udało napisać i obrażanie się w niczym nie pomoże.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 01:32