Witam wszystkich.
Niedawno zacząłem swoją naukę php dlatego też kupiłem książkę PHP&MYSQL vademecum profesjonalisty. W jednym z działów jest opisany skrypt logowania i uwierzytelniania użytkowników. Każdy użytkownik może dodać swoje prywatne zakładki w formie adresów www. Chodzi mi o rozszerzenie tego skryptu o dodatkowe dane które użytkownik może wprowadzać np adres strony i druga komórka nazwa firmy. Zrobiłem formularz dodałem kolumnę w mysql, niby wszystko pięknie. Ale po wysyłaniu danych nie zapisuje ich w kolumnie nazwa firmy. Oto moje pliki:
dodaj_zak.php
  1. <?php
  2.  
  3. require_once('funkcje_zakladki.php');
  4.  
  5. // utworzenie krótkiej nazwy zmiennej
  6. $nowy_url = $_POST['nowy_url'];
  7. $nowa_nazwa_firmy = $_POST['nowa_nazwa_firmy'];
  8.  
  9. tworz_naglowek_html('Dodawanie zakładek');
  10.  
  11. try {
  12. sprawdz_prawid_uzyt();
  13. if (!wypelniony($_POST)) {
  14. throw new Exception('Formularz wypełniony niewłaœciwie. Proszę spróbować ponownie.');
  15. }
  16. // sprawdzenie formatu URL-a
  17. if (strstr($nowy_url, 'http://') === false) {
  18. $nowy_url = 'http://'.$nowy_url;
  19. }
  20.  
  21. // sprawdzenie prawidłowoœci URL-a
  22. if (!(@fopen($nowy_url, 'r'))) {
  23. throw new Exception('URL nieprawidłowy.');
  24. }
  25.  
  26. // próba dodania zakładki
  27. dodaj_zak($nowy_url);
  28. dodaj_za($nowa_nazwa_firmy);
  29. echo 'Zakładka dodana.';
  30.  
  31. // pobranie zakładek zapisanych przez użytkownika
  32. if ($tablica_urli = pobierz_urle_uzyt($_SESSION['prawid_uzyt'])) {
  33. wyswietl_urle_uzyt($tablica_url);
  34. }
  35. }
  36. catch (Exception $e) {
  37. echo $e->getMessage();
  38. }
  39. wyswietl_menu_uzyt();
  40. tworz_stopke_html();
  41. ?>


funkcje url . php

  1. function dodaj_zak($nowy_url) {
  2. // dodawanie nowych zakładek do bazy danych
  3.  
  4. echo "Próba dodania ".htmlspecialchars($nowy_url)."<br />";
  5. $prawid_uzyt = $_SESSION['prawid_uzyt'];
  6.  
  7. $lacz = lacz_bd();
  8.  
  9. // sprawdzenie, czy zakładka już istnieje
  10. $wynik = $lacz->query("select * from zakladka
  11. where nazwa_uz='$prawid_uz'
  12. and URL_zak='".$nowy_url."'");
  13. if ($wynik && ($wynik->num_rows>0)) {
  14. throw new Exception('Zakładka już istnieje.');
  15. }
  16.  
  17. // umieszczenie nowej zakladki
  18. if (!$lacz->query("insert into zakladka values
  19. ('".$prawid_uzyt."', '".$nowy_url."')")) {
  20. throw new Exception('Wstawienie nowej zakładki nie powiodło się');
  21. }
  22.  
  23. return true;
  24. }
  25.  
  26.  
  27. function dodaj_za($nowa_nazwa_firmy) {
  28. // dodawanie nowych zakładek do bazy danych
  29.  
  30. echo "Próba dodania ".htmlspecialchars($nowa_nazwa_firmy)."<br />";
  31. $prawid_uzyt = $_SESSION['prawid_uzyt'];
  32.  
  33. $lacz = lacz_bd();
  34.  
  35. // sprawdzenie, czy zakładka już istnieje
  36. $wynik = $lacz->query("select * from zakladka
  37. where nazwa_uz='$prawid_uz'
  38. and nazwa_firmy='".$nowa_nazwa_firmy."'");
  39. if ($wynik && ($wynik->num_rows>0)) {
  40. throw new Exception('Zakładka już istnieje.');
  41. }
  42.  
  43. // umieszczenie nowej zakladki
  44. if (!$lacz->query("insert into zakladka values
  45. ('".$prawid_uzyt."', '".$nowa_nazwa_firmy."')")) {
  46. throw new Exception('Wstawienie nowej zakładki nie powiodło się');
  47. }
  48.  
  49. return true;
  50. }


  1. function wyswietl_dodaj_zak_form() {
  2. // wyœwietlenie formularza do dodania nowych zakładek
  3. ?>
  4. <form name="tabela_zak" action="dodaj_zak.php" method="post">
  5. <table width="250" cellpadding="2" cellspacing="0" bgcolor="#cccccc">
  6. <tr><td>Nowa zakładka:</td>
  7. <td><input type="text" name="nowy_url" value="http://"
  8. size="30" maxlength="255"></td></tr>
  9. <tr><td>Nazwa firmy:</td>
  10. <td><input type="text" name="nowa_nazwa_firmy" value=""
  11. size="30" maxlength="255"></td></tr>
  12. <tr><td colspan="2" align="center"><input type="submit" value="Dodaj zakładkę"></td></tr>
  13. </table>
  14. </form>


Proszę o pomoc, bo po prostu skończyły mi się pomysły.
Pozdrawiam