![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Mam prośbę o wskazanie błędu w skrypcie bądź sugestię zmiany.
Naciśnięcie buttona nie powoduje wykonania kodu zawartego pomiędzy klamrami. Sprawdziłem obecność sesji oraz odczyt zmiennej $nie_chk1 i obie te zmienne są prawidłowo odczytywane. Wciśnięcie buttona nie powoduje wykonania warunku if. Świadczy o tym również fakt, że komunikaty tekstowe które występują między klamrami nie są wyświetlane. (nie zamieszczam kodu z klamr, żeby nie zaśmiecać miejsca). Jeżeli pominę kwestię buttona, czyli pozostawiam same instrukcje znajdujące się w klamrach, kod działa prawidłowo.
Powód edycji: [wookieb]:
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Czekam na pw z propozycją poprawnej nazwy tematu.
Dodatkowo proszę wstawić bbcode. Przenoszę do przedszkola
Powód edycji: [wookieb]:
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Może kilka słow wyjasnienia aby było łatwiej zrozumieć sens.
Kod odpowiedzialny jest za oddanie głosu na człowieka który wyświetla się w jakimś miejscu strony. Każdy człowiek ma w "bazie" danych swój numer, który jest w kodzie umieszczany w zmiennej q. Oddanie głosu poprzez wciśnięcie buttona ma za zadanie dopisać 1 głos do tabeli "baza" w rekordzie człowieka o nr q, w polu "nie". Na początku kodu ustawione jest wywołanie sesji, które przekazuje login użytkownika. Ograniczeniem kodu ma być możliwość oddania jednego głosu przez jednego użytkownika. Wciśnięcie buttona nie przenosi nas do żadnej strony. Przechodzi jedynie do pętli if gdzie następuje sprawdzenie czy ten login oddał już głos (dzięki zmiennej $nie_chk1) i następnie wykonuje stosowne wpisy do bazy, bądź wyświetla komunikaty. Może teraz będzie Ci łatwiej coś zasugerować. To co widzisz to kompletny kod. Pozdrawiam Jarek Kod <?php session_start(); ?> <?php include('db_fns.php'); $glos=$q; $nie_check1=mysql_query("SELECT * FROM glos_nie WHERE ip='".$glos."' AND login='".$_SESSION['login']."'"); $nie_chk1=mysql_num_rows($nie_check1); echo "$nie_chk1"; echo "'".$_SESSION['login']."'"; echo ".$glos."; ?> <a align="right"><form id="form2" name="form2" method="get"><input type="submit" style="color:#FFFFFF; background-color:#9D080D;" id="button_2" name="button_2" value=" NIE " /></form></a> <?php if(isset($_GET['button_2']) && $_SESSION['zalogowany']==1 && $nie_chk1==0) { $mod_nie=mysql_query("UPDATE baza SET `nie`=`nie`+1 WHERE id='".$glos."';"); $ip_nie=mysql_query("INSERT INTO glos_nie VALUES('".$glos."','".$_SESSION['login']."')"); echo "Głos został oddany"; } elseif(isset($_GET['button_2']) && $_SESSION['zalogowany']==1 && $nie_chk1!=0){ echo "Oddano już głos na tę osobę"; } elseif(isset($_GET['button_2']) && !isset($_SESSON['zalogowany'])){ echo "Nie jesteś zalogowany. Aby zagłosować<br>zaloguj się"; } mysql_close(); ?> Ten post edytował jerry100 16.07.2011, 22:57:31 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Ostatni raz proszę o wstawienie bbcode.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie nadal nie bardzo to rozumiem.
Spróbowałem wyrzucić z kodu cału fragment dotyczący buttona oraz pierwszy element pętli if - czyli Kod isset($_GET['button_2'] i kod działa poprawnie. Dobija do bazy głos po uruchomieniu skryptu. Natomiast kiedy pojawia się button i jego warunek w if kod nie działa. Ten post edytował jerry100 16.07.2011, 23:15:04 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Fifi przecież mysql_num_rows() zwraca liczbę wierszy w wyniku i ta liczba przypisana jest zmiennej $nie_chk1.
Właśnie dlatego jest ten zapis, aby sprawdzał w tabeli czy już istnieje wpis (tj. czy zalogowany użytkownik oddał głos na człowieka o numerze q). Ponieważ jednak uczymy się całe życie, usunąłem z if warunek sprawdzenia wpisu $nie_chk1. Niestety nadal kod nie pracuje poprawnie. Tak więc kłopot musi tkwić w innym miejscu. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Fifi przecież mysql_num_rows() zwraca liczbę wierszy w wyniku i ta liczba przypisana jest zmiennej $nie_chk1. Koniec picia wieczorami. (IMG:style_emoticons/default/biggrin.gif) Co do liczby rekordów znacznie lepiej używać count po stronie bazy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 21:39 |