Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Katalog osób php + baza mysql
PHPmar
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.02.2013

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


Witam serdecznie,

Panowie poratujcie. Z góry przepraszam, że tak prosto z mostu ale goni mnie czas a php dla mnie to coś z rodzaju czarów. Niemniej, serwer lokalnie i bazę mysql postawiłem a więc środowisko jest. Muszę zrobić takie cudo. Mianowicie, poprzez panel logowania dostajemy się do stronki gdzie są takie 4 okienka w których można zarejestrować osobę czyli:
1. Imię
2. Nazwisko
3. Pesel
4. Dodatkowe informacje
Poniżej żeby także było okienko z wyszukiwaniem tych osób które już wcześniej zostały zarejestrowane.
Dodatkowo potrzebuje aby była możliwość edycji tych osób z informacjami kto i kiedy coś do dodatkowych informacji później dopisał.
To chyba wszystko. Nie wiem czy to coś trudnego czy nie, a może taki katalog jest gdzieś do pobrania? Gdybym miał więcej czasu to oczywiście coś bym kombinował no ale ten czas....
Z góry dziękuje za poświęconą pracę i pomoc.

Ten post edytował PHPmar 15.02.2013, 07:58:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Michasko
post
Post #2





Grupa: Zarejestrowani
Postów: 283
Pomógł: 31
Dołączył: 10.01.2006
Skąd: Działoszyn

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


Jeśli chodzi o Twoje logowanie, to nie zadziała ono w ogóle - tam jest sam HTML, więc jedyne co robisz to wyświetlasz formularz, który i tak będzie można ominąć.

Twój katalog:
plik osoba.php (odpowiedzialny za...wszystko (IMG:style_emoticons/default/tongue.gif) ):
  1. //laczymy sie z baza
  2. $polaczenie = mysql_connect('serwer_bazy', 'uzytkownik', 'haslo'); //podstaw swoje dane;
  3. if($polaczenie) // jesli udalo sie polaczyc z mysql
  4. mysql_select_db('Twoja_baza'); //wybieramy baze danych
  5. else // w przeciwnym razie
  6. {
  7. echo "Blad polaczenia: ".mysql_error();
  8. }
  9.  
  10. if($_SERVER['REQUEST_METHOD'] === 'POST') // jeśli dostaliśmy się tutaj za pomocą przycisku 'submit' formularza
  11. {
  12. if(isset($_GET['akcja']))
  13. {
  14. switch($_GET['akcja'])
  15. {
  16. case 'dodaj':
  17. {
  18. //prosta walidacja danych, 'dodatkowe informacje' są opcjonalne
  19. if(!empty($_POST['imie']) && !empty($_POST['nazwisko']) && !empty($_POST['pesel']))
  20. {
  21. $dodatkowe = (!empty($_POST['dodatkowe']) ? ($_POST['dodatkowe']) : ('NULL'));
  22. $wynik = mysql_query('INSERT INTO osoby (imie, nazwisko, pesel, dodatkowe) VALUES ("'.$_POST['imie'].'", "'.$_POST['nazwisko'].'", "'.$_POST['pesel'].'", "'.$dodatkowe.'");');
  23. if($wynik)
  24. echo ('Pomyślnie dodano tą osobę!<br/><a href="osoba.php">powrót do listy</a>');
  25. else
  26. echo ('Nie udało się dodać osoby<br/>:'.mysql_error());
  27. }
  28. else
  29. echo ('Nie podano wszystkich wymaganych danych!');
  30. }
  31. break;
  32.  
  33. case 'edytuj':
  34. {
  35. if(isset($_GET['id'])) // jeśli jest podane ID osoby do edycji
  36. {
  37. //prosta walidacja danych, 'dodatkowe informacje' są opcjonalne
  38. if(!empty($_POST['imie']) && !empty($_POST['nazwisko']) && !empty($_POST['pesel']))
  39. {
  40. $dodatkowe = (!empty($_POST['dodatkowe']) ? ($_POST['dodatkowe']) : ('NULL'));
  41. $wynik = mysql_query('UPDATE osoby SET imie = "'.$_POST['imie'].'",
  42. nazwisko = "'.$_POST['nazwisko'].'",
  43. pesel = "'.$_POST['pesel'].'",
  44. dodatkowe = "'.$dodatkowe.'"
  45. WHERE id = "'.$_GET['id'].'";');
  46.  
  47. if(mysql_affect_rows($wynik) > 0) //jeśli edytowano jaką osobę
  48. echo ('Pomyślnie dodano tą osobę!<br/><a href="osoba.php">powrót do listy</a>');
  49. else
  50. echo ('Nie udało się dodać osoby<br/>:'.mysql_error());
  51. }
  52. else
  53. echo ('Nie podano wszystkich wymaganych danych!');
  54. }
  55. else
  56. echo ('Nie podano ID osoby!');
  57. }
  58. break;
  59.  
  60. default:
  61. echo ('Brak takiej akcji!');
  62. break;
  63. }
  64. }
  65. else
  66. echo ('Brak takiej akcji!');
  67. }
  68. else //jeśli za pomocą jakiegoś zwykłego odnośnika
  69. {
  70. if(isset($_GET['akcja']))
  71. {
  72. switch($_GET['akcja'])
  73. {
  74. case 'dodaj': //dodajemy osobe
  75. {
  76. // tworzymy czysty formularz
  77. echo ('<form method="post" action="osoba.php?akcja=dodaj">
  78. Imię: <input type="text" name="imie" /> <br/>
  79. Nazwisko: <input type="text" name="nazwisko" /> <br/>
  80. Pesel: <input type="text" name="pesel" /> <br/>
  81. Dodatkowe informacje: <input type="text" name="dodatkowe" /> <br/>
  82. <input type="submit" value="Dodaj osobe" />
  83. </form><br/><a href="osoba.php">powrót do listy</a>');
  84. }
  85. break;
  86.  
  87. case 'edytuj': //dodajemy osobe
  88. {
  89. if(isset($_GET['id'])) //jeśli w adresie jest podane ID osoby
  90. {
  91. // wyciagamy jej dane z bazy
  92.  
  93. $osoba = mysql_query('SELECT * FROM osoby WHERE id = "'.$_GET['id'].'";');
  94. if(mysql_num_rows($osoba) > 0 ) // jeśli znaleziono osobę o danym ID
  95. {
  96. $dane = mysql_fetch_assoc($osoba, MYSQL_ASSOC); //przypisujemy wyciągnięte dane do tablicy asocjacyjnej
  97.  
  98. // i tworzymy formularz z jej danymi
  99. echo ('<form method="post" action="osoba.php?akcja=edytuj&id='.$dane['ID'].'">
  100. Imię: <input type="text" name="imie" value="'.$dane['imie'].'" /> <br/>
  101. Nazwisko: <input type="text" name="nazwisko" value="'.$dane['nazwisko'].'" /> <br/>
  102. Pesel: <input type="text" name="pesel" value="'.$dane['pesel'].'" /> <br/>
  103. Dodatkowe informacje: <input type="text" name="dodatkowe" value="'.$dane['dodatkowe'].'" /> <br/>
  104. <input type="submit" value="Zapisz dane" />
  105. </form><br/><a href="osoba.php">powrót do listy</a>');
  106. }
  107. else //jeśli nie znaleziono osoby o takim ID
  108. echo 'Nie znaleziono takiej osoby!';
  109. }
  110. else // jeśli w adresie nie ma ID osoby
  111. echo 'Podaj ID osoby do edycji';
  112. }
  113. break;
  114.  
  115. case 'usun':
  116. {
  117. if(isset($_GET['id'])) //jeśli w adresie jest podane ID osoby
  118. {
  119. // to ją usuwamy
  120.  
  121. $usuwam = mysql_query('DELETE FROM osoby WHERE id = "'.$_GET['id'].'";');
  122. if(mysql_affected_rows($usuwam ) > 0 ) // jeśli udało się usunąć taki rekord
  123. {
  124. echo ('Pomyślnie usunięto osobę o ID '.$_GET['id']);
  125. echo ('<br/><a href="osoba.php">powrót do listy</a>');
  126. }
  127. else //jeśli nie znaleziono osoby o takim ID
  128. echo 'Nie znaleziono takiej osoby!<br/><a href="osoba.php">powrót do listy</a>';
  129. }
  130. else // jeśli w adresie nie ma ID osoby
  131. echo 'Podaj ID osoby do usunięcia<br/><a href="osoba.php">powrót do listy</a>';
  132. }
  133. break;
  134.  
  135. default:
  136. echo ('Brak takiej akcji<br/><a href="osoba.php">powrót do listy</a>');
  137. break;
  138. }
  139. }
  140. else //strona główna, czyli jeśli brak parametru 'akcja' w adresie strony
  141. {
  142. $osoby = mysql_query('SELECT * FROM osoby');
  143.  
  144. if(mysql_num_rows($osoby) > 0) //jeśli w bazie istnieje >0 osób
  145. {
  146. echo ('<a href="osoba.php?akcja=dodaj">DODAJ NOWĄ OSOBĘ</a><br/>');
  147. echo ('<h1>Lista osób</h1><table><thead><tr><td>ID</td><td>Imię</td><td>Nazwisko</td><td>PESEL</td><td>Dodatkowe informacje</td><td>Opcje</td></tr></thead><tbody>');
  148.  
  149. while($osoba = mysql_fetch_array($osoby, MYSQL_ASSOC))
  150. {
  151. echo ('<tr><td>'.$osoba['ID'].'</td><td>'.$osoba['imie'].'</td><td>'.$osoba['nazwisko'].'</td><td>'.$osoba['pesel'].'</td><td>'.$osoba['dodatkowe'].'</td>
  152. <td><a href="osoba.php?akcja=edytuj&id='.$osoba['ID'].'">Edycja</a> | <a href="osoba.php?akcja=usun&id='.$osoba['ID'].'">Usuń</a></td></tr>');
  153. }
  154. echo ('</tbody></table>');
  155. echo ('<br/><a href="osoba.php?akcja=dodaj">DODAJ NOWĄ OSOBĘ</a><br/>');
  156. }
  157. else //jeśli w bazie nie ma osób
  158. {
  159. echo ('<h2>W bazie danych nie widnieją żadne osoby!</h2>');
  160. echo ('<a href="osoba.php?akcja=dodaj">DODAJ NOWĄ OSOBĘ</a><br/>');
  161. }
  162. }
  163. }
Miej na uwadze, że nie ma tutaj prawie żadnych zabezpieczeń przed SQL injection, więc można w łatwy sposób usunąć wszystkie dane.
No ale miało być na szybko:) jeśli będą jakieś problemy to melduj.

Ten post edytował Michasko 15.02.2013, 10:07:26
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 12:16