Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Zapis danych - fromularz
Crovean
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.11.2009

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


Mam problem z zapisem danych do bazy oto mój plik php, który loguje danego usera ale jak już chcę aby na tym danym loginie można było by wpisać dane np. nazwefirmy czy nip odrazu wylogowuje mnie.
Wyskakują mi również komunikaty takie jak "Undefined index: nazwafirmy , czy Undefined index: NIP "
Również prosił bym o pomoc przy odpowiednim zakomentowaniu zapytania:

$queryA = "UPDATE uzytkownicy SET nazwafirmy='".$nazwafirmy."' and NIP='".$NIP."' where login=questionmark.gifquestionmark.gif";

I już ostatnie pytanie. Co wpisywać na kolejnych plikach php aby uzytkownicy tylko zalogowani mogli je odczytywać...

ps. W miejscach gdzie wyskakuje mi błąd zakomentowałem i opisałem błąd na kodzie po niżej...

Dziękuję z góry za wszelką pomoc... wstydnis.gif

  1.  
  2. <?php
  3. header('Content-type: text/html; charset=UTF-8');
  4.  
  5.  
  6. $action = isset($_GET['action']) ? $_GET['action'] : null;
  7. switch($action)
  8. {
  9. case 'error':
  10. echo 'Wystąpił błąd';
  11. break;
  12. case 'logout':
  13. echo 'Wylogowano';
  14. break;
  15. default:
  16. }
  17.  
  18.  
  19. $salt = '1234';
  20. $_SESSION['login'] = $_POST['login'];
  21. $_SESSION['haslo'] = $_POST['haslo'];
  22.  
  23.  
  24. $nazwafirmy=$_POST['nazwafirmy']; // tutaj wyswietla mi bląd Undefined index: nazwafirmy
  25. $NIP=$_POST['NIP']; // tutaj wyswietla mi bląd Undefined index: NIP
  26.  
  27. $haslo = hash('sha1', $_SESSION['haslo'].$salt);
  28.  
  29. mysql_connect('localhost', 'uzytkosta', 'haslo'); // logowanie
  30. mysql_select_db('uzytkownik');
  31.  
  32. $query = mysql_query("SELECT login, haslo, nazwafirmy, NIP FROM uzytkownicy WHERE login = '" . mysql_escape_string($_SESSION['login']) . "' AND haslo = '". mysql_escape_string($_SESSION['haslo']) . "'");
  33.  
  34. if (mysql_num_rows($query) == 1) {
  35. echo 'Witaj ' . $_SESSION['login'] . '!<br>';
  36. echo '<a href="zalogowany.php?action=logout">Wyloguj się</a>';
  37.  
  38.  
  39. $queryA = "UPDATE uzytkownicy SET nazwafirmy='".$nazwafirmy."' and NIP='".$NIP."' where login=? ? ? ?"; // prosze o pomoc w okresleniu where tak aby mozna bylo zmienic dane zalogowanego uzytkownika
  40. $result = @mysql_query($queryA);
  41.  
  42.  
  43. echo '<div><form action="" method="post">';
  44. echo 'Nazwa Firmy : <input name='.$nazwafirmy.' type="text"/>';
  45. echo '<br />';
  46. echo 'NIP : <input name='.$NIP.' type="text"/>';
  47. echo '<br />';
  48. echo ' <input type="submit" value="Zmień"/>'; // Klikajac wylogowuje mnie a nie zmienia... jak to rozgraniczyc
  49. echo '</form></div>';
  50.  
  51.  
  52. } else {
  53.  
  54. header('Location: logowanie.php');
  55. echo 'Błedny login lub hasło.';
  56. }
  57. ?>


Ten post edytował Crovean 28.11.2009, 02:27:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
piotr94
post
Post #2





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


do logowania użytkowników źle używasz sesji, powinno być to tak:
  1. if(isset($_POST['login'])&&isset($_POST['haslo'])){
  2. $_SESSION['login'] = $_POST['login'];
  3. $_SESSION['haslo'] = $_POST['haslo'];
  4. }

i potem tak samo co do nazwafirmy:
  1. if(isset($_POST['nazwafirmy'])) $nazwafirmy=$_POST['nazwafirmy'];
  2. if(isset($_POST['NIP'])) $NIP=$_POST['NIP'];

co do błędów z linijek 25 26 - przez $_POST nie jest najwidoczniej przesyłana zmienna NIP i nazwafirmy, ponieważ masz błąd w linijkach 45 47, powinny one wyglądać tak:
  1. echo '<div><form action="nazwa_pliku.php" method="post">';
  2. echo 'Nazwa Firmy : <input name="nazwafirmy" value="'.$nazwafirmy.'" type="text"/>';
  3. echo '<br />';
  4. echo 'NIP : <input name="NIP" value="'.$NIP.'" type="text"/>';
  5. echo '<br />';
  6. echo ' <input type="submit" value="Zmień"/>'; // Klikajac wylogowuje mnie a nie zmienia... jak to rozgraniczyc
  7. echo '</form></div>';
  8.  

i jeszcze linijki 16 nn:
  1. switch($action)
  2. {
  3. case 'error':
  4. echo 'Wystąpił błąd';
  5. break;
  6. case 'logout':
  7. echo 'Wylogowano';
  8. break;
  9. default:
  10. break;
  11. }
  12.  

i życzę więcej uwagi w dalszej pracy


--------------------
http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;)
Go to the top of the page
+Quote Post
Crovean
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.11.2009

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


O dzięki za pomoc... staram się na bierząco zmieniać i poprawiać...
Po modyfikacji wyświetla mi błędy przy:
1.
echo 'Nazwa Firmy : <input name="nazwafirmy" value="'.$nazwafirmy.'" type="text"/>'; // BŁAD: Undefined variable: nazwafirmy in
echo 'NIP : <input name="NIP" value="'.$NIP.'" type="text"/>'; // BŁAD: Undefined variable: NIP in

2.
$queryA = "UPDATE uzytkownicy SET nazwafirmy='".$nazwafirmy."' and NIP='".$NIP."' where login='". $_SESSION['login'] ."'";
// BŁAD: Undefined variable: nazwafirmy in
// BŁAD: Undefined variable: NIP in

3.
echo ' <input type="submit" value="Zmień"/>'; // Klikajac wylogowuje mnie, a powinno tylko zapisac dane do bazy i pozostac dalej zalogowanym

4.
echo '<a href="zalogowany.php?action=logout">Wyloguj się</a>'; // kilkając nie wylogowuje mnie do strony z logowanie...

  1. <?php
  2. header('Content-type: text/html; charset=UTF-8');
  3.  
  4. $action = isset($_GET['action']) ? $_GET['action'] : null;
  5. switch($action)
  6. {
  7. case 'error':
  8. echo 'Wyst&plusmn;pił bł&plusmn;d';
  9. break;
  10. case 'logout':
  11. echo 'Wylogowano';
  12. break;
  13. default:
  14. break;
  15. }
  16.  
  17.  
  18. $salt = '1234';
  19.  
  20. if(isset($_POST['login'])&&isset($_POST['haslo'])){
  21. $_SESSION['login'] = $_POST['login'];
  22. $_SESSION['haslo'] = $_POST['haslo'];
  23. }
  24.  
  25. if(isset($_POST['nazwafirmy'])) $nazwafirmy=$_POST['nazwafirmy'];
  26. if(isset($_POST['NIP'])) $NIP=$_POST['NIP'];
  27.  
  28.  
  29. $haslo = hash('sha1', $_SESSION['haslo'].$salt);
  30.  
  31. mysql_connect('localhost', 'uzyt_zak', 'haslo'); // logowanie
  32. mysql_select_db('uzytkownik');
  33.  
  34. $query = mysql_query("SELECT login, haslo, nazwafirmy, NIP FROM uzytkownicy WHERE login = '" . mysql_escape_string($_SESSION['login']) . "' AND haslo = '". mysql_escape_string($_SESSION['haslo']) . "'");
  35.  
  36. if (mysql_num_rows($query) == 1) {
  37. echo 'Witaj ' . $_SESSION['login'] . '!<br>';
  38. echo '<a href="zalogowany.php?action=logout">Wyloguj się</a>'; // kilkając nie wylogowuje mnie do strony z logowanie...
  39.  
  40.  
  41. $queryA = "UPDATE uzytkownicy SET nazwafirmy='".$nazwafirmy."' and NIP='".$NIP."' where login='". $_SESSION['login'] ."'"; // Błąd : Undefined variable: nazwafirmy in / oraz Undefined variable: NIP in
  42. $result = @mysql_query($queryA);
  43.  
  44. // tylko że to jest w tym samym pliku tzn. zalogowany.php
  45. echo '<div><form action="zalogowany.php" method="post">';
  46. echo 'Nazwa Firmy : <input name="nazwafirmy" value="'.$nazwafirmy.'" type="text"/>'; // BŁAD: Undefined variable: nazwafirmy in
  47. echo '<br />';
  48. echo 'NIP : <input name="NIP" value="'.$NIP.'" type="text"/>'; // BŁAD: Undefined variable: NIP in
  49. echo '<br />';
  50. echo ' <input type="submit" value="Zmień"/>'; // Klikajac wylogowuje mnie, a powinno tylko zapisac dane do bazy i pozostac dalej zalogowanym rozgraniczyc
  51. echo '</form></div>';
  52.  
  53.  
  54. } else {
  55.  
  56. header('Location: logowanie.php');
  57. echo 'Błedny login lub hasło.';
  58. }
  59. ?>
Go to the top of the page
+Quote Post
piotr94
post
Post #4





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


  1. <?php
  2. header('Content-type: text/html; charset=UTF-8');
  3.  
  4. $action = isset($_GET['action']) ? $_GET['action'] : null;
  5. switch($action)
  6. {
  7. case 'error':
  8. echo 'Wystąpił błąd';
  9. break;
  10. case 'logout':
  11. $_SESSION['login']='';
  12. $_SESSION['haslo']='';
  13. unset($_SESSION['login']);
  14. unset($_SESSION['haslo']);
  15. echo 'Wylogowano';
  16. break;
  17. default:
  18. break;
  19. }
  20.  
  21.  
  22. $salt = '1234';
  23.  
  24. if(isset($_POST['login'])&&isset($_POST['haslo'])){
  25. $_SESSION['login'] = $_POST['login'];
  26. $_SESSION['haslo'] = $_POST['haslo'];
  27. }
  28.  
  29. if(isset($_POST['nazwafirmy'])){
  30. $nazwafirmy=$_POST['nazwafirmy'];
  31. }else{
  32. $nazwafirmy='';
  33. }
  34. if(isset($_POST['NIP'])){
  35. $NIP=$_POST['NIP'];
  36. }else{
  37. $NIP='';
  38. }
  39.  
  40.  
  41. $haslo = hash('sha1', $_SESSION['haslo'].$salt);
  42.  
  43. mysql_connect('localhost', 'uzyt_zak', 'haslo'); // logowanie
  44. mysql_select_db('uzytkownik');
  45.  
  46. $query = mysql_query("SELECT login, haslo, nazwafirmy, NIP FROM uzytkownicy WHERE login = '" . mysql_escape_string($_SESSION['login']) . "' AND haslo = '". mysql_escape_string($_SESSION['haslo']) . "'");
  47.  
  48. if (mysql_num_rows($query) == 1) {
  49. echo 'Witaj ' . $_SESSION['login'] . '!<br>';
  50. echo '<a href="zalogowany.php?action=logout">Wyloguj się</a>';
  51.  
  52. if($_POST['form_submited']==1){
  53. $queryA = "UPDATE uzytkownicy SET nazwafirmy='".$nazwafirmy."' and NIP='".$NIP."' where login='". $_SESSION['login'] ."'";
  54. $result = @mysql_query($queryA);
  55. }
  56.  
  57.  
  58. echo '<div><form action="zalogowany.php" method="post">
  59. <input type="hidden" name="form_submited" value="1"/>
  60. Nazwa Firmy : <input name="nazwafirmy" value="'.$nazwafirmy.'" type="text"/>
  61. <br />
  62. NIP : <input name="NIP" value="'.$NIP.'" type="text"/>
  63. <br />
  64. <input type="submit" value="Zmień"/>
  65. </form></div>';
  66.  
  67.  
  68. } else {
  69.  
  70. header('Location: logowanie.php');
  71. echo 'Błedny login lub hasło.';
  72. }
  73. ?>
  74.  

teraz powinno być ok ;-)
staraj się jednak na przyszłość zwracać uwagę na szczegóły.

PS, dziwne, mnie serwer nie wyrzuca błędu jak jakaś zmienna nie została wcześniej zadeklarowana i ma być użyta jako pusta...


--------------------
http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;)
Go to the top of the page
+Quote Post
Crovean
post
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.11.2009

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


Wszystko super wielkie dzięki tylko coś mi niezapisuje do bazy... hmmm czy coś w tym zapytaniu jest nie tak ?
  1. $queryA = "UPDATE uzytkownicy SET nazwafirmy='".$nazwafirmy."' and NIP='".$NIP."' where login='". $_SESSION['login'] ."'";


Ten post edytował Crovean 28.11.2009, 20:37:26
Go to the top of the page
+Quote Post
Blame
post
Post #6





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


Tu chyba wszystko jest ok ale wyechuj sobie $_SESSION['login'].
@\/ Słuszna uwaga, zauważyłem to na początku tematu a tu już nie sleep.gif

Ten post edytował Blame 28.11.2009, 21:45:35


--------------------
Go to the top of the page
+Quote Post
darko
post
Post #7





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Czy zamiast AND nie powinno być przecinka i spacji?


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Crovean
post
Post #8





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.11.2009

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


Heh jesteś wielki smile.gif działa dobrze zapisuje do bazy

Teraz tylko mam bład w: ale już coś kąbinuje z tym...
Undefined index: form_submited

  1. if($_POST['form_submited']==1){ // BŁAD : Undefined index: form_submited
  2. $queryA = "UPDATE uzytkownicy SET nazwafirmy='".$nazwafirmy."', NIP='".$NIP."' where login='". $_SESSION['login'] ."'";
  3. $result = @mysql_query($queryA);
  4. }
  5.  
Go to the top of the page
+Quote Post
darko
post
Post #9





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


pokaż kod formularza po modyfikacjach. Zamieniłbym:

  1. echo '<div><form action="zalogowany.php" method="post">
  2. <input type="hidden" name="form_submited" value="1"/>
  3. Nazwa Firmy : <input name="nazwafirmy" value="'.$nazwafirmy.'" type="text"/>
  4. <br />
  5. NIP : <input name="NIP" value="'.$NIP.'" type="text"/>
  6. <br />
  7. <input type="submit" value="Zmień"/>
  8. </form></div>';


na

  1. echo '<div><form action="zalogowany.php" method="post">
  2. Nazwa Firmy : <input name="nazwafirmy" value="'.$nazwafirmy.'" type="text" />
  3. <br />
  4. NIP : <input name="NIP" value="'.$NIP.'" type="text" />
  5. <input type="hidden" name="form_submited" value="1" />
  6. <br />
  7. <input type="submit" value="Zmień" />
  8. </form></div>';


w skrypcie docelowym dla formularza daj jeszcze
  1. print_r($_POST['form_submited']);


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Crovean
post
Post #10





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.11.2009

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


Obecny kod to:

Teraz myślę nad tym aby odczytywało mi dane z bazy jeśli są...

Tzn. w polu nazwafirmy jak jest w bazie to wyswietla i jak klikam zmien to zmienia mi...

  1. <?php
  2. header('Content-type: text/html; charset=UTF-8');
  3.  
  4. $action = isset($_GET['action']) ? $_GET['action'] : null;
  5. switch($action)
  6. {
  7. case 'error':
  8. echo 'Wyst?pił bł?d';
  9. break;
  10. case 'logout':
  11. $_SESSION['login']='';
  12. $_SESSION['haslo']='';
  13. unset($_SESSION['login']);
  14. unset($_SESSION['haslo']);
  15. echo 'Wylogowano';
  16. break;
  17. default:
  18. break;
  19. }
  20.  
  21.  
  22. $salt = '1234';
  23.  
  24. if(isset($_POST['login'])&&isset($_POST['haslo'])){
  25. $_SESSION['login'] = $_POST['login'];
  26. $_SESSION['haslo'] = $_POST['haslo'];
  27. }
  28.  
  29. if(isset($_POST['nazwafirmy'])){
  30. //$nazwafirmy=addslashes($_POST['nazwafirmy']);
  31. $nazwafirmy=$_POST['nazwafirmy'];
  32. }else{
  33. $nazwafirmy='';
  34. }
  35. if(isset($_POST['NIP'])){
  36. $NIP=$_POST['NIP'];
  37. //$NIP=addslashes($_POST['NIP']);
  38. }else{
  39. $NIP='';
  40. }
  41.  
  42.  
  43. $haslo = hash('sha1', $_SESSION['haslo'].$salt);
  44.  
  45. mysql_connect('localhost', 'uzyt_zak', 'haslo'); // logowanie
  46. mysql_select_db('uzytkownik');
  47.  
  48. $query = mysql_query("SELECT login, haslo, nazwafirmy, NIP FROM uzytkownicy WHERE login = '" . mysql_escape_string($_SESSION['login']) . "' AND haslo = '". mysql_escape_string($_SESSION['haslo']) . "'");
  49.  
  50. if (mysql_num_rows($query) == 1) {
  51. echo 'Witaj ' . $_SESSION['login'] . '!<br>';
  52. echo '<a href="zalogowany.php?action=logout">Wyloguj się</a>';
  53.  
  54.  
  55. //if($_POST['form_submited']==1){
  56. $queryA = "UPDATE uzytkownicy SET nazwafirmy='".$nazwafirmy."', NIP='".$NIP."' where login='". $_SESSION['login'] ."'";
  57. $result = @mysql_query($queryA);
  58. //}
  59.  
  60. echo '<div><form action="zalogowany.php" method="post">
  61. <input type="hidden" name="form_submited" value="1"/>
  62. Nazwa Firmy : <input name="nazwafirmy" value="'.$nazwafirmy.'" type="text"/>
  63. <br />
  64. NIP : <input name="NIP" value="'.$NIP.'" type="text"/>
  65. <br />
  66. <input type="submit" value="Zmień"/>
  67. </form></div>';
  68.  
  69.  
  70. } else {
  71.  
  72. header('Location: logowanie.php');
  73. echo 'Błedny login lub hasło.';
  74. }
  75. ?>



Ten post edytował Crovean 29.11.2009, 00:10:36
Go to the top of the page
+Quote Post

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: 22.08.2025 - 09:02