Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] interface do bazy danych
Forum PHP.pl > Forum > Przedszkole
Stron: 1, 2
BraveSoul
teraz jest: No database selected

----------------------

O.K. znowu duża litera '-_-

teraz mi poprawia, tylko wyskakuje coś takiego:

Notice: Undefined index: ID_Klient in C:\Program Files\xampp\htdocs\edit.php on line 23
Dane zostały zaktualizowane


a linia 23 kodu to: $ID_Klient = trim($_GET['ID_Klient']);
r4xz
powinno być:
$ID_Klient = (int) trim($_GET['id']);

o ile zerkam na kod, który ostatecznie jest modyfikowany smile.gif
BraveSoul
nadal wyskakuje ten sam błąd. z tą samą linią kodu
nospor
A pokaż jak wygląda cały kod edycji
BraveSoul
  1. <?php
  2.  
  3.  
  4. function connection() {
  5. // serwer
  6. $mysql_server = "localhost";
  7. // admin
  8. $mysql_admin = "root";
  9. // hasło
  10. $mysql_pass = "haslo";
  11. // nazwa baza
  12. $mysql_db = "system_hotelowy";
  13. // nawiązujemy połączenie z serwerem MySQL
  14. @mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
  15. or die('Brak połączenia z serwerem MySQL.');
  16. // łączymy się z bazą danych
  17. @mysql_select_db($mysql_db)
  18. or die('Błąd wyboru bazy danych.');
  19. }
  20.  
  21.  
  22. $a = trim($_REQUEST['a']);
  23. $ID_Klient = (int) trim($_GET['ID_Klient']);
  24.  
  25. if($a == 'edit' and !empty($ID_Klient)) {
  26. /* zapytanie do tabeli */
  27. $wynik = mysql_query("SELECT * FROM system_hotelowy.klient WHERE
  28. ID_Klient='$ID_Klient'")
  29. or die(mysql_error());
  30. /*
  31.   wyświetlamy wyniki, sprawdzamy,
  32.   czy zapytanie zwróciło wartość większą od 0
  33.   */
  34. if(mysql_num_rows($wynik) > 0) {
  35. /* odczytujemy zawartość wiersza z tabeli */
  36. $r = mysql_fetch_assoc($wynik);
  37. /* wczytujemy dane do formularza */
  38. /*
  39.   w formularz znajdują się ukryte pola "a"
  40.   z wartością "save" i pole "ID_Klient" z wartością
  41.   zmiennej ID_Klient
  42.   */
  43. echo '<form action="edit.php" method="post">
  44. <input type="hidden" name="a" value="save" />
  45. <input type="hidden" name="ID_Klient" value="'.$ID_Klient.'" />
  46. Imie:<br />
  47. <input type="text" name="Imie"
  48. value="'.$r['Imie'].'" /><br />
  49. Nazwisko:<br />
  50. <input type="text" name="Nazwisko"
  51. value="'.$r['Nazwisko'].'" /><br />
  52. <input type="submit" value="popraw" />
  53. </form>';
  54. }
  55. }
  56. elseif($a == 'save') {
  57. /* odbieramy zmienne z formularza */
  58. $ID_Klient = $_POST['ID_Klient'];
  59. $Imie = trim($_POST['Imie']);
  60. $Nazwisko = trim($_POST['Nazwisko']);
  61. /* uaktualniamy tabelę system_hotelowy.klient */
  62. mysql_query("UPDATE system_hotelowy.klient SET Imie='$Imie',
  63. Nazwisko='$Nazwisko' WHERE ID_Klient='$ID_Klient'")
  64. echo 'Dane zostały zaktualizowane';
  65. }
  66. ?>


nie jest jeszcze tylko uzupełniony..
ale poprawia imie i nazwisko
nospor
$ID_Klient = (int) trim($_GET['ID_Klient']);
zamien na
$ID_Klient = (int) trim($_REQUEST['ID_Klient']);
No i zakładam, że link do edycji zawiera ID_Klient
BraveSoul
nospor KOCHAM CIĘ biggrin.gif biggrin.gif biggrin.gif

teraz mi wszyściutko działa.. dzięki Tobie zaoszczędziłam pełno kasy, którą wydałabym na powtarzanie semestru smile.gif

normalnie Dzięki.
nospor
Proszę smile.gif
BraveSoul
hej - jeszcze jedno.
jak się klika pomógł?
bo mi błąd wyskakuje..
nospor
Hm... klikasz guzik POMOGŁ i już. Pierwszy raz słyszę by przy tym był jakiś błąd

Wróćmy na chwilę do kodu. NIe wiem co prowadzący będzie oceniał, ale teraz kod jest podany na ataki SQLInjection.

Poprawka jest prosta.
NIe: $Nazwisko = $_POST['Nazwisko'];
a: $Nazwisko = mysql_escape_string($_POST['Nazwisko']);
A jeśli masz pole liczbowe to wystarczy:

nie: $Numer_Domu = $_POST['Numer_Domu'];
a: $Numer_Domu = (int)$_POST['Numer_Domu'];
Analogicznie z każdymi innymi danymi które idą POSTem lub GETem
BraveSoul
dobra, poprawię to.
nie wiem, co prowadzący będzie oceniał, ale powiedział, że będzie patrzył łaskawym okiem, bo jesteśmy na grafice i nie musimy idealnie tego potrafić.
powiedział tylko, że żeby w ogóle to obejrzał to baza MUSI działać.

jak naciskam pomógł to wyskakuje mi komunikat: "czy jesteś pewien, że wiesz jak używać tej funkcji" czy jakoś tak.. - ale będę klikać aż się uda smile.gif


offtopic.gif w ogóle to net mi znowu zamula i będę musiała znów resetować router.. chyba czas na nowy..
nospor
Cytat
czy jesteś pewien, że wiesz jak używać tej funkcj
A jestes pewna że wiesz? wink.gif
I co, nie ma potem żadnego TAK/NIE? Dziwne smile.gif

SKoro prowadzący będzie patrzył łaskawym okiem, to może nie będzie patrzył na podatność na ataki. No ale nie jestem prowadzącym więc nie wiem smile.gif
BraveSoul
w razie czego i tak poprawię, na pewno nie zaszkodzi smile.gif

Cytat
A jestes pewna że wiesz?

no właśnie nie smile.gif
ale chyba zadziałało, masz punkcik więcej?
nospor
Cytat
ale chyba zadziałało, masz punkcik więcej
Kliknąłem za Ciebie to zadziałało smile.gif No ale że Ty nie możesz to bardzo dziwne.

Hehe, już wiem czemu nie możesz dawać POMOGŁ.
Spojrzałem na pierwszy post a tam.... a tam nie Ty a gość. Z racji, że nie jesteś autorem tego wątku, nie możesz przyznawać POMOGŁ smile.gif
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.