Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Get String? Profil użytkownika w poszczególnym linku
Forum PHP.pl > Forum > Przedszkole
masterbeat
Witajcie,

Otóż niedawno zaczełem pisaćtakie początkujące 'kodziki' w PHP. Mój kod polega na wyciągnieciu danych z bazy danych z tabelki 'SavePlayer'. Zrobiłem że po wpisaniu nicku użytkownika w pole input przekierowuje do podstrony z jego informacjami lecz działą to w ten sposób że po odswieżeniu już jakby 'sesja wygasła' i wyskakuje puste pole bez żadnego profilu. Chciałbym zeby działało to na podstawie http://link.com/users.php?nick={NICK UŻytkownika} i tam wyświetlało dane wybranego użytkownika.

Tak wygląda mój kod:

display.php:
  1. <form method="post" name="display" action="users.php" />
  2. Wyszukaj Gracza:<br>
  3. <input type="text" name="Nick" />
  4. <input type="submit" name="Submit" value="display" />
  5. </form>
  6. </html>


users.php:
  1. <?php
  2. include('conf.php');
  3.  
  4.  
  5. $Nick = $_POST['Nick'];
  6. $query = "select * from SavePlayer where Nick = '$Nick'";
  7. $result = mysql_query($query);
  8. while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
  9.  
  10.  
  11.  
  12.  
  13. echo "<div style='float: left;margin-top: 15px;margin-left: 2px;'>";
  14. echo '<img src="Skins/Skin_'.$line['Skin'].'.png" />';
  15. echo "<br>\n";
  16. echo "<br>\n";
  17. echo "</div>";
  18.  
  19. <div style='float: left; margin-top: 15px; margin-left: 10px;'>
  20. <span style='font-family: Oswald; font-size: 15px;'>Ogólne:</span><table>";
  21.  
  22. echo "<table style='float:left;'";
  23.  
  24. echo "<tbody><tr style='height: 27px'><td><b>Nick:</b>";
  25. echo $line['Nick'];
  26.  
  27.  
  28. echo "<tr style='height: 27px'><td><b>Zabójstwa:</b>";
  29. echo $line['Kills'];
  30.  
  31.  
  32. echo "<tr style='height: 27px'><td><b>Śmierći:</b>";
  33. echo $line['Deaths'];
  34.  
  35.  
  36. echo "<tr style='height: 27px'><td><b>Exp:</b>";
  37. echo $line['Exp'];
  38.  
  39.  
  40. echo "<tr style='height: 27px'><td><b>Stan konta:</b>";
  41. echo $line['BankMoney'];
  42. echo "$";
  43.  
  44. echo "<tr style='height: 27px'><td><b>Czas gry:</b>";
  45. echo $line['PlayingTime'];
  46.  
  47.  
  48. echo "<tr style='height: 27px'><td><b>Punkty driftu:</b>";
  49. echo $line['DriftPkt'];
  50.  
  51. echo "<tr style='height: 27px'><td><b>Warny:</b>";
  52. echo $line['Warns'];
  53.  
  54.  
  55. echo " </table> ";
  56.  
  57.  
  58.  
  59. echo " <div style='float: left;margin-top: -26px;margin-left: 130px;'><span style='font-family: Oswald; font-size: 15px;'>Areny DM:</span><table>";
  60.  
  61. echo "<tr style='height: 27px'><td><b>Fragi DE:</b>";
  62. echo $line['FrgDe'];
  63.  
  64.  
  65. echo "<tr style='height: 27px'><td><b>Fragi WA:</b>";
  66. echo $line['FrgWA'];
  67.  
  68.  
  69. echo "<tr style='height: 27px'><td><b>Fragi MI:</b>";
  70. echo $line['FrgMI'];
  71.  
  72.  
  73. echo "<tr style='height: 27px'><td><b>Fragi SN:</b>";
  74. echo $line['FrgSN'];
  75.  
  76.  
  77. echo "<tr style='height: 27px'><td><b>Fragi SO:</b>";
  78. echo $line['FrgSO'];
  79.  
  80.  
  81. echo "<tr style='height: 27px'><td><b>Fragi RPG:</b>";
  82. echo $line['FrgRpg'];
  83.  
  84.  
  85. echo "<tr style='height: 27px'><td><b>Fragi DM:</b>";
  86. echo $line['FrgDM'];
  87.  
  88.  
  89. echo "<tr style='height: 27px'><td><b>Fragi SH:</b>";
  90. echo $line['FrgSH'];
  91.  
  92.  
  93. echo "<tr style='height: 27px'><td><b>Fragi HE:</b>";
  94. echo $line['FrgHE'];
  95.  
  96.  
  97.  
  98.  
  99. echo " </tbody></table></div><br /> <br/>";
  100.  
  101. echo '<iframe src="http://bepowerserver.tk/sygna/signature.php?player_name='.$line['Nick'].' " width="500px" height="150px" ></iframe>';
  102.  
  103.  
  104. }
  105. ?>


Mógłby ktośpomóc zrobić te linki i zapowiedz tzw 'sql injection' (troche czytałem lecz żaden tutek nie pomógł)

Z góry bardzo dziękuje smile.gif


PS: Przykład o co mi chodzi znajduje się w tym iframe podanym w users.php
viking
Nie używaj już mysql_* tylko PDO albo mysqli. Jeśli chcesz żeby nick był widoczny w adresie zmień metodę na GET. Natomiast jeżeli chcesz koniecznie zostać przy starym mysql to przepuść $Nick przez mysql_real_escape_string()
masterbeat
Cytat(viking @ 28.09.2014, 16:01:34 ) *
Nie używaj już mysql_* tylko PDO albo mysqli. Jeśli chcesz żeby nick był widoczny w adresie zmień metodę na GET. Natomiast jeżeli chcesz koniecznie zostać przy starym mysql to przepuść $Nick przez mysql_real_escape_string()


Przepraszam ale ja jestem totalnym noobem w php (Od niedawna zaczełem)

  1.  
  2.  
  3. $Nick = $_POST['Nick'];
  4. $query = "select * from SavePlayer where Nick = '$Nick'";
  5. $result = mysql_query($query);
  6. while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
  7. $Nick = mysql_real_escape_string($Nick);
  8.  


O to chodziło ? ;/
viking
Nie, mysql_real_escape_string odpowiednio dla silnika mysql przygotowuje string aby nie narobił szkody. Dlatego musisz go użyć w linii 3, przed zapytaniem. Jeśli tez wiesz że np nick zawiera tylko znaki a-z0-9 itp to możesz to wcześniej sprawdzić.
by_ikar
Jak jesteś "noobem" jak to określiłeś, to na przyszłość, jeżeli nie znasz działania jakiejś funkcji, to jest jedno miejsce gdzie to działanie w zdecydowanej większości jest przedstawione: w dokumentacji mysql_real_escape_string, w niektórych dokumentacjach są też komentarze, a jak tam nie będzie info to raczej na pewno ktoś w necie coś na ten temat napisał.. Jak myślisz skąd większość z nas dowiaduje się jak działają poszczególne funkcje z różnych języków/bibliotek?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.