Wpis z mikrobloga

Siemka

Nie znam się mocno na PHP i SQL ale na tyle co mi to potrzebne to mi wystarczy, mam tylko jedną wątpliwość odnośnie skryptu PHP. Czy jeśli mam taki skrypt jak niżej, w którym zapytuję sobie o listę wyników i w nim muszę podac login i hasło do bazy danych to cały ten skrypt jest tylko po stronie serwera, tak? Nikt obcy nie może podejrzeć jego kodu (hasła) bo poza serwer wychodzi tylko wynik tego skryptu. Tylko ja bezpośrednio wchodząc na serwer mogę podejrzeć kod (hasło), tak?

php
$database = mysql_connect('mysql_host', 'mysql_user', 'mysql_password') or die('Could not connect: ' . mysql_error());
mysql_select_db('my_database') or die('Could not select database');

$query = "SELECT * FROM
scores ORDER by score DESC LIMIT 5";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

$num_results = mysql_num_rows($result);

for($i = 0; $i < $num_results; $i++)
{
$row = mysql_fetch_array($result);
echo $row['name'] . "\t" . $row['score'] . "\n";
}
?

#internet #backend #webdev
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Curry_: Skrypt jest po stronie serwera, przeglądarka , kiedy próbujesz pobrać stronę wpisując jej adres w przeglądarce, poprosi webserver o wyrenderowanie odpowiedzi i jeśli ten webserver ma skonfigurowaną w jakikolwiek sposób obsługę phpa, to zostanie on przetworzony, a co wyjdzie na wyjściu to to wróci do usera
  • Odpowiedz
@Jurigag: A czemu nie? Pewnie masz na myśli te PDO?

To ma być prosty skrypt który bedzie mi przesyłał z gry z Edytora Leveli level w ciągu base64 przy zapisywaniu i potem pobierał ewentualnie. Nie jestem Webdesignerem, etc. skrypt będę oglądał tylko ja, nie musi być piękny, zgodny z najnowszymi trendami, ma po prostu działać. Co jest złego w tej metodzie żebym musiał się douczać jakiejś innej metody, żeby zrobić
  • Odpowiedz
@Jurigag: Ale o co chodzi? Czy w tamtej metodzie jest coś źle że jak jej użyję to załamie się czasoprzestrzeń czy po prostu są jakieś nowsze metody, ładniejszy kod, czytelniejszy, etc. i to się obecnie stosuje ale tamta metoda tez będzie działać prawidłowo?

Bo nie będę teraz studiował PHP i SQLa żeby zrobić raz na ileś lat ładniejszy kod który tylko ja będę oglądał? Co jest złego w tej metodzie?
  • Odpowiedz
@Curry_:

level w ciągu base64


Jeżeli tych leveli nie masz 10.000 to w ogóle nie baw się w bazy danych tylko zapisuj je do pliku - chyba, że to gracze sobie będą tworzyć levele i stąd ten pomysł.
  • Odpowiedz
@rezoner: Ale to ma być level editor, że ktoś tworzy jakiś level i wysyła na serwer i inni mogą w to grać. Czyli ktoś inny uruchomi grę, wchodzi w "extra levels" i mu wyrzuca co stronę 20 stworzonych przez innych leveli posortowanych według popularności/daty/oceny.

A leveli nie wiem ile będzie bo to dla ludzi do tworzenia. Ale na 10.000 tak czy inaczej nie przewiduję :D

@kowalzki: @Jurigag: mam jeszcze
  • Odpowiedz
@Curry_: W skrócie - escapowanie zamienia " na \" - dzięki temu nikt ci nie przerwie zapytania i nie wsadzi tam swojego kodu.

Np zobacz - gdybym jako $name wysłał ci apostrof ' to całe zapytanie by się posypało. A gdybym był niemiły to przerwał bym twoje zapytania i wstawił tam DELETE ;)

Reszta dobrze, jak to ma robić proste rzeczy też bym nie inwestował w żadną wydumaną architekturę (no
  • Odpowiedz
@Curry_: i właśnie wrzuciłeś przykład dla czego powinno się korzystać z pdo, czy chociaż mysqli, korzystając z nich o te linijki:

$level = mysqlrealescapestring($GET['level'], $db);
$name = mysqlrealescapestring($GET['name'], $db);

są zbędne
  • Odpowiedz