Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MSSQL][PHP]Przekazanie zmiennej do zapytania SQL
eurosoft
post
Post #1





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


Witam,
jakiś czas nic nie pisałem bo jakoś nie trafiałem na problemy, ale teraz mam następujący:
Mam panel logowania - stardard Login oraz Hasło, po zalogowaniu zostaje user przekierowany na właściwą stronę php, tam wykonuje się zapytanie sql i pojawia się tablica z danymi. W tejże tablicy jest pole nr_obw ('1' lub '2'), chciałbym aby podczas logowania user poprzez wybór pola radio został przekierowany do właściwej strony gdzie zostanie wykonane zapytanie z warunkiem nr_obw=1.
na dzień dzisijeszy mam taki formularz w pliku z logowaniem:
  1. <form name="logowanie" form action="logowanie.php" method="post">
  2. <input type="hidden" name="wyslane" value="TRUE" />
  3. <p>Login: <input type="text" name="login" value="" title="Podaj swój LOGIN"/></p>
  4. <p>Hasło: <input type="password" name="haslo" title="Podaj swoje HASŁO"/></p>
  5. <p>Wybierz Nr Obwodu:<br>
  6. <input type="radio" name="nr_obw[]" value="1" />1
  7. <input type="radio" name="nr_obw[]" value="2" />2
  8. <p><input type="submit" value="Zaloguj" /></p>


oraz zapytanie w pliku pokazującym tabelę:
  1. $sql1 = "SELECT
  2. $tabela.id_book,
  3. $tabela.imie_nazwisko,
  4. $tabela.start_pol,
  5. $tabela1.animals,
  6. $tabela1.animals1,
  7. $tabela1.animals2,
  8. $tabela1.ilosc,
  9. $tabela1.ilosc1,
  10. $tabela1.ilosc2,
  11. $tabela1.ilosc_shot,
  12. $tabela1.login
  13. FROM $tabela LEFT JOIN shot ON $tabela.id_book=$tabela1.id_book where nr_obw='{$_POST['nr_obw']}' AND $tabela.id_book>$from";
  14. $result1 = mysql_query($sql1) OR die('Queryproblem: '.mysql_error());



Prosze o pomoc.
Go to the top of the page
+Quote Post
grzemach
post
Post #2





Grupa: Zarejestrowani
Postów: 121
Pomógł: 4
Dołączył: 9.06.2007
Skąd: Kielce

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


podejrzewam, że będzie kilka rozwiązań Twojego problemu. Co zaproponuję, nie koniecznie jest najlepszym z nich (IMG:style_emoticons/default/smile.gif)

Podejrzewam, że wartość z _POST['nr_obw'] będzie Ci jeszcze potrzebna w kilku miejscach?

Dodaj w opcjach logowania, jeśli jest poprawne, przed przekierowaniem na stronę (bo rozumiem, ze jest tam header("location: ...." ) ):
Kod
$_SESSION['nr_obw'] = $_POST['nr_obw'] +0;


+0, abyś miał pewność że jest tam wartość numeryczna. (poszukaj o sql incjection)

teraz zapytanie SQL:
Kod
FROM $tabela LEFT JOIN shot ON $tabela.id_book=$tabela1.id_book where nr_obw='{$_SESSION['nr_obw']}' AND $tabela.id_book>$from";
Go to the top of the page
+Quote Post
eurosoft
post
Post #3





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


Niestety nie działa:
Jeśli wstawię Twój kod:
  1. session_register("zalogowany");
  2. $_SESSION['nr_obw'] = $_POST['nr_obw'] +0;
  3.  
  4. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  5.  
  6. if (!isset($_SESSION['login'])) {
  7.  
  8. if ($_POST['wyslane']) {
  9.  
  10. include 'config.php';
  11. $tabela = 'user';
  12. ...
  13. <form name="logowanie" form action="logowanie.php" method="post">
  14. <input type="hidden" name="wyslane" value="TRUE" />
  15. <p>Login: <input type="text" name="login" value="" title="Podaj swój LOGIN"/></p>
  16. <p>Hasło: <input type="password" name="haslo" title="Podaj swoje HASŁO"/></p>
  17. <p>Wybierz Nr Obwodu:<br>
  18. <input type="radio" name="nr_obw[]" value="1" />1&nbsp;&nbsp;
  19. <input type="radio" name="nr_obw[]" value="2" />2&nbsp;&nbsp;
  20. <p><input type="submit" value="Zaloguj" /></p>


to przeszkadzają skryptowi znaczniki nawaiasów w pola "radio" - po usunięciu nawiasów [] prawidłowo loguję się do strony jednak wartość $_SESSION['nr_obw'] równa się zawsze zero, bez względu na to co wybiorę.
Gdzie robię błąd?
Go to the top of the page
+Quote Post
grzemach
post
Post #4





Grupa: Zarejestrowani
Postów: 121
Pomógł: 4
Dołączył: 9.06.2007
Skąd: Kielce

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


w innym miejscu powinieneś to wstawić. tam gdzie jest użytkownik logowany czyli, sprawdzany login i hasło, czyli w miejscu:
gdzie $_SESSION["zalogowany"] jest ustawiane.

Tak jak wstawiłeś, to przecież, przy każdym przeładowaniu strony będzie przypisywana wartość $_POST'a, a przy każdy przeładowaniu jest ta co chcesz?
Go to the top of the page
+Quote Post
eurosoft
post
Post #5





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


Cytat(grzemach @ 1.12.2010, 09:32:25 ) *
w innym miejscu powinieneś to wstawić. tam gdzie jest użytkownik logowany czyli, sprawdzany login i hasło, czyli w miejscu:
gdzie $_SESSION["zalogowany"] jest ustawiane.

Tak jak wstawiłeś, to przecież, przy każdym przeładowaniu strony będzie przypisywana wartość $_POST'a, a przy każdy przeładowaniu jest ta co chcesz?



Tak masz rację, dziękuje za pomoc, ale to jakaś pomroczność jasna mnie dopadła... Mam jeszcze jedno pytanie, w jaki sposób sprawdzić czy user wybrał jakiekolwiek pole radio? jeśli nie wybrał nie pozwolić się zaloogować?

Ten post edytował eurosoft 1.12.2010, 17:50:44
Go to the top of the page
+Quote Post
grzemach
post
Post #6





Grupa: Zarejestrowani
Postów: 121
Pomógł: 4
Dołączył: 9.06.2007
Skąd: Kielce

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


cieszę się że mogłem pomóc.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 21:27