Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MSSQL][PHP]przekazywanie danych
Forum PHP.pl > Forum > Przedszkole
tr86
Witam, mam problem z przekazywaniem danych z bazy


  1. if ($co == 'panel')
  2. {
  3. include ("baza.php");
  4.  
  5. $login=$_POST['login'];
  6. $haslo=$_POST['haslo'];
  7.  
  8.  
  9. $zapytanie = mysql_query ("select * from users where id='2'")
  10. or die('błąd: '.mysql_error());
  11.  
  12. $wynik = mysql_fetch_array($zapytanie);
  13.  
  14. if ($_POST['login'] == $wynik[1] && $_POST['haslo'] == $wynik[2])
  15. {
  16. echo('<div id="logo">
  17. <font size="2">PANEL ADMINISTRACYJNY</font>
  18. <br><br><br>
  19. </div>
  20. <br><br>');
  21.  
  22. $zapytanie = mysql_query("select * from applications")
  23. or die('błąd: '.mysql_error());
  24.  
  25. $ile = mysql_num_rows($zapytanie);
  26.  
  27. if($ile > 0)
  28. {
  29. echo ('<table width="2800px;" border="1">
  30. <tr>
  31. <td colspan="13" bgcolor="#000066"><center><b>LISTA KLIENTÓW</b></center></td>
  32. </tr>
  33. <tr>
  34. <td colspan="8"></td>
  35. <td colspan="2" bgcolor="#000066"><center><b>Adres dostawy</b></center></td>
  36. <td colspan="3" bgcolor="#000066"><center><b>Przydzielanie loginu i hasła</b></center></td>
  37. </tr>
  38. <td style="width: 30px" bgcolor="#000066"><center><b>ID</b></center></td>
  39. <td style="width: 150px" bgcolor="#000066"><center><b>Firma</b></center></td>
  40. <td style="width: 150px" bgcolor="#000066"><center><b>Imię i nazwisko</b></center></td>
  41. <td style="width: 150px" bgcolor="#000066"><center><b>Ulica i nr domu</b></center></td>
  42. <td style="width: 150px" bgcolor="#000066"><center><b>Kod i miasto</b></center></td>
  43. <td style="width: 100px" bgcolor="#000066"><center><b>Telefon</b></center></td>
  44. <td style="width: 150px" bgcolor="#000066"><center><b>Email</b></center></td>
  45. <td style="width: 80px" bgcolor="#000066"><center><b>NIP</b></center></td>
  46. <td style="width: 150px" bgcolor="#000066"><center><b>Ulica i nr domu</b></center></td>
  47. <td style="width: 150px" bgcolor="#000066"><center><b>Kod i miasto</b></center></td>
  48. <td style="width: 150px" bgcolor="#000066"><center><b>Login</b></center></td>
  49. <td style="width: 150px" bgcolor="#000066"><center><b>Hasło</b></center></td>
  50. <td style="width: 90px" bgcolor="#000066"><center><b>Zatwierdź</b></center></td>
  51. ');
  52.  
  53. while ($wynik = mysql_fetch_array($zapytanie, MYSQL_NUM))
  54. {
  55. echo ('<table width="2800px;" border="1">
  56. <tr>
  57. <td style="width: 30px" bgcolor="#0066CC">'.$wynik[0].'</td>
  58. <td style="width: 150px" bgcolor="#0066CC">'.$wynik[1].'</td>
  59. <td style="width: 150px" bgcolor="#0066CC">'.$wynik[2].'</td>
  60. <td style="width: 150px" bgcolor="#0066CC">'.$wynik[3].'</td>
  61. <td style="width: 150px" bgcolor="#0066CC">'.$wynik[4].'</td>
  62. <td style="width: 100px" bgcolor="#0066CC">'.$wynik[5].'</td>
  63. <td style="width: 150px" bgcolor="#0066CC">'.$wynik[6].'</td>
  64. <td style="width: 80px" bgcolor="#0066CC">'.$wynik[7].'</td>
  65. <td style="width: 150px" bgcolor="#0066CC">'.$wynik[8].'</td>
  66. <td style="width: 150px" bgcolor="#0066CC">'.$wynik[9].'</td>
  67. <td style="width: 150px" bgcolor="#0066CC"><form method=post action="index.php?co=panel=login&user='.$wynik[0].'" target="_blank">
  68. <input type="text" name="login2" maxlength="32"></td>
  69. <td style="width: 150px" bgcolor="#0066CC">
  70. <input type="text" name="haslo2" maxlength="32"></td>
  71. <td style="width: 90px" bgcolor="#0066CC"><center>
  72. <input type="submit" value="Zatwierdź"></center></td>
  73. </form>
  74. </tr></table>');
  75. }
  76. }


Chodzi o ten link, który przechodzi do drugiej strony: <form method=post action="index.php?co=panel=login&user='.$wynik[0].'" target="_blank">

Link przechodzi do strony z odpowiednim id usera, ale wysyłając login i hasło które przydzielam za każdym razem zapisuje się w bazie danych do usera o id=1...coś chyba nie przekazuje danych z zapytania z 1 strony do drugiej, wiecie jak to rozwiązac questionmark.gif

tutaj 2 strona:

  1. if ($co == 'panel=login')
  2. {
  3. include ("baza.php");
  4.  
  5. $login2=$_POST['login2'];
  6. $haslo2=$_POST['haslo2'];
  7.  
  8. $zapytanie = mysql_query("select id, login2, haslo2 from applications")
  9. or die('błąd: '.mysql_error());
  10.  
  11. $wynik = mysql_fetch_array($zapytanie, MYSQL_NUM);
  12.  
  13.  
  14. if (empty($_POST['login2']) or empty($_POST['haslo2']))
  15. {
  16. echo('<font color="red">Uzupełnij pola "login" i "hasło".</font>');
  17. }
  18.  
  19. if (!$db_lnk = mysql_connect("localhost", "root", ""))
  20. {
  21. echo('Wystąpił błąd podczas próby połączenia z serwerem MySQL...<br>');
  22. return;
  23. }
  24.  
  25. if(!mysql_select_db('sklep'))
  26. {
  27. echo('Wystąpił błąd podczas wyboru bazy danych.<br>');
  28. return;
  29. }
  30.  
  31. $query = "UPDATE applications SET
  32. login2='$login2',
  33. haslo2='$haslo2'
  34. WHERE id='".$wynik[0]."'";
  35.  
  36. if(!mysql_query($query, $db_lnk))
  37. {
  38. echo("Wystąpił błąd. Zapytanie zostało odrzucone.<br>");
  39. return;
  40. }
  41.  
  42. {
  43. echo("Wystąpił błąd podczas zamykania połączenia z serwerem MySQL...<br>");
  44. }
  45.  
  46. echo '<b>Przydzieliłeś klientowi o numerze id='.$wynik[0].' następujące dane:</b><br>
  47. <b><b><font color="yellow">Login: </font></b>'.$login2.'<br>
  48. <b><b><font color="yellow">Hasło: </font></b>'.$haslo2.'<br>';
  49. }
Ghost_78
Jesli chcesz przeniesc sobie jakies dane za pomoca formularza to nie pisz ich w parametrze taga:
  1. index.php?co=panel=login&user='.$wynik[0].'

tylko przekaz jako inputy typu hidden:
  1. <form action="index.php" method="post">
  2. <input type="hidden" name="panel" value="login">
  3. <input type="hidden" name="user" value=".$wynik[0].'">
  4. </form>

potem wyciagasz te dane w taki sposob:
  1. $panel=$_POST['panel'];
  2. $user=$_POST['user'];


poza tym nie za bardzo rozumiem o co tu mialo choidzic: "co=panel=login"
tr86
1. Właśnie, że nie chce jako hidden, bo chciałbym normalnie wpisywac login i hasło (dla kazdego usera inne) do bazy przez formularz.

2. Tak też próbowałem:
  1. $zapytanie = mysql_query("select id, login2, haslo2 from applications where id='".$wynik[0]."'")
  2. or die('błąd: '.mysql_error());

ale w ten sytuacji nie wskazuje nawet żadnego id usera...

3.
  1. $co == 'panel=login'
<-- jest to u mnie przejście do drugiej strony
ciekawskiii
if ($co == 'panel=login') a co to ma byc?
Ghost_78
ale te pola hidden wcale nie spowoduja ze nie beda mogli wpisywac swoich danych.
poza tym tag <form> wyciagnij poza <table>
tr86
Cytat(ciekawskiii @ 8.11.2010, 12:59:04 ) *
if ($co == 'panel=login') a co to ma byc?



<form method=post action="index.php?co=panel=login&user='.$wynik[0].'" target="_blank">

Przejście do 2 strony

  1. if ($co == 'panel=login')

Ghost_78
Cytat(tr86 @ 8.11.2010, 13:10:26 ) *
<form method=post action="index.php?co=panel=login&user='.$wynik[0].'" target="_blank">

Przejście do 2 strony

  1. if ($co == 'panel=login')


a nie lepiej przejsc do osobnego skryptu z validacja?
ciekawskiii
Cytat(tr86 @ 8.11.2010, 13:10:26 ) *
<form method=post action="index.php?co=panel=login&user='.$wynik[0].'" target="_blank">

Przejście do 2 strony

  1. if ($co == 'panel=login')


swietne:D

formularz przesylasz POST ale w formularzu przesylasz tez zmienna GET wiec dodaj $_GET do drugiej strony i zadziala
tr86
Cytat(Ghost_78 @ 8.11.2010, 13:03:43 ) *
ale te pola hidden wcale nie spowoduja ze nie beda mogli wpisywac swoich danych.
poza tym tag <form> wyciagnij poza <table>



Tu nie chodzi o to, że użytkownicy mają wpisywac swoj login i haslo, tylko administrator ma przydzielac, tak na marginesie te dane beda potrzebne w dalszym etapie...

Wydaje mi się, że błąd jest tutaj:

  1. $zapytanie = mysql_query("select id, login2, haslo2 from applications where id='".$wynik[0]."'")
  2. or die('błąd: '.mysql_error());
  3.  
  4. $wynik = mysql_fetch_array($zapytanie, MYSQL_NUM);


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

  1. $query = "UPDATE applications SET
  2. login2='$login2',
  3. haslo2='$haslo2'
  4. WHERE id='".$wynik[0]."'";


Próbowałem robic test np WHERE id='14' i działało...ale chciałbym żeby skrypt sam rozpoznawał nr id...
Ghost_78
Cytat(ciekawskiii @ 8.11.2010, 13:18:18 ) *
swietne:D

formularz przesylasz POST ale w formularzu przesylasz tez zmienna GET wiec dodaj $_GET do drugiej strony i zadziala


masakra winksmiley.jpg
tylko moze nie podpowiadajmy takich rozwiazan bo moze to komus w krew wejsc biggrin.gif

jezeli chcesz miedzy stronami przekazywac sobie jakies dane - ktorych bedziesz potrzebowal wielokrotnie to zainteresuj sie zmienna $_SESSION - ulatwisz sobie zycie
ciekawskiii
Cytat(Ghost_78 @ 8.11.2010, 13:22:46 ) *
masakra winksmiley.jpg
tylko moze nie podpowiadajmy takich rozwiazan bo moze to komus w krew wejsc biggrin.gif


jakich rozwiazan?
nie moja wina ze przesyla tu
  1. <form method=post action="index.php?co=panel=login&user='.$wynik[0].'" target="_blank">
zmienna, ja bym calos zrobil inaczej a teraz zeby to dzialalo, rozwiazaniem jest dodanie
  1. $_GET['user'];
a sie pytal dlaczego nie dziala wiec udzielilem odpowiedzi
tr86
Cytat(ciekawskiii @ 8.11.2010, 13:28:10 ) *
jakich rozwiazan?
nie moja wina ze przesyla tu
  1. <form method=post action="index.php?co=panel=login&user='.$wynik[0].'" target="_blank">
zmienna, ja bym calos zrobil inaczej a teraz zeby to dzialalo, a teraz rozwiazaniem jest dodanie
  1. $_GET['user'];
a sie pytal dlaczego nie dziala wiec udzielilem odpowiedzi



Dzięki ciekawskiii, o to mi chodziło, już działa smile.gif
Pozdrawiam.
Ghost_78
Cytat(ciekawskiii @ 8.11.2010, 13:28:10 ) *
jakich rozwiazan?
nie moja wina ze przesyla tu
  1. <form method=post action="index.php?co=panel=login&user='.$wynik[0].'" target="_blank">
zmienna, ja bym calos zrobil inaczej a teraz zeby to dzialalo, a teraz rozwiazaniem jest dodanie
  1. $_GET['user'];
a sie pytal dlaczego nie dziala wiec udzielilem odpowiedzi

alez ja przeciez do Ciebie nie pisalem w zlym kontekscie smile.gif rozsmieszylo mnie tylko rozwiazanie
sam powiedz czy to nie jest zabawnie zagmatwane (oczywiscie ze strony autora kodu)

nie gniewaj sie na mnie i postarajmy mu sie pomoc smile.gif

P.S.
nie bierzmy wszystkiego tak powaznie
ciekawskiii
jest conajmniej dziwne bo ja bym to zrobil na sesjach tak jak pisales lub tez jeszcze inaczej ale on nie chcial innego rozwiazania tylko pytal jak rozwiazac ten problem i odpowiedz dostal
tr86
Cytat(ciekawskiii @ 8.11.2010, 13:41:06 ) *
jest conajmniej dziwne bo ja bym to zrobil na sesjach tak jak pisales lub tez jeszcze inaczej ale on nie chcial innego rozwiazania tylko pytal jak rozwiazac ten problem i odpowiedz dostal



Zgadzam się z tym, że jest dziwnie (pewnie niektorym by ręce opadły smile.gif), ale każdy ma swój sposób pisania...naprawdę cięzko napisac wszystko optymalnie (przynajmniej dla mnie, jako że mam mały staż w pehapie), ale wszystkiego się można nauczyc i jeszcze raz dziękuję za pomoc.
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.