Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wysyłanie zapytania - usuwanie zmiennych, coś w stylu "premium"
ColdFlame
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 26.12.2010

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


Witam Serdecznie

Próbuję zrobić jakby takie premium na forum i chciałbym aby po wpisaniu danego ciągu znaków w odpowiednie pole.
Skrypt wysyłał zapytanie do bazy danych, a konkretnie tabeli "kody", by sprawdzić czy dany ciąg znaków jest odpowiednim kodem.
Jeżeli tak to wywoływał by on pewną zmienną tzw. "Premium", a jeżeli nie to wyświetliłaby się informacja o błędnym kodzie.
Mam nadzieję że jakoś przejrzyście Wam to wyjaśniłem. (IMG:style_emoticons/default/smile.gif)
Nie wiem za bardzo jak się za to zabrać, więc byłbym wdzięczny za każdą, nawet najmniejszą wskazówkę.

Pozdrawiam
ColdFlame
Go to the top of the page
+Quote Post
markonix
post
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


  1. $s = mysql_query("SELECT * FROM kody WHERE kod='".$_POST['kod']."' AND aktywny='0'");
  2. // sprawdza czy podany kod jest poprawny lub jest jeszcze ważny
  3. if (mysql_num_rows($s)==0)
  4. {
  5. // błąd
  6. }
  7. else
  8. {
  9.  
  10. // jest ok, dodaj premium
  11.  
  12. }

Wcześniej kod warto zwalidować - zwykle jest po prostu alfanumeryczny więc to nie problem bo jest do tego dedykowana funkcja (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował markonix 26.12.2010, 11:48:19
Go to the top of the page
+Quote Post
toaspzoo
post
Post #3





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


plik index.html (forma)
  1. <form method=post action="2.php">
  2. <input type=text name=kod>
  3. <input type=submit value=sprawdz>
  4. </form>


plik 2.php
  1. <?php
  2. include('db.php');
  3.  
  4. if($_POST['kod'] <> '')
  5. {
  6. $kod = $_POST['kod'];
  7. $pokaz = zapytaj("SELECT * FROM `kody` WHERE `kod` = '$kod';");
  8. $kod_sql = mysql_fetch_array($pokaz);
  9.  
  10. if($kod == $kod_sql)
  11. {
  12.  
  13. echo 'dobry kod!';
  14. }
  15. else
  16. {
  17. echo 'zly kod!';
  18. }
  19. ?>


plik db.php

  1. <?php
  2. function zapytaj($sql) {
  3. $db = mysql_connect('HOST', 'USER', 'HASŁO');
  4. mysql_select_db('BAZA_DANYCH', $db);
  5. $wynik = mysql_query($sql, $db);
  6. return $wynik;
  7. }
  8. ?>


---

Mam nadzieję, że pomogłem (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
agmakonts
post
Post #4





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 20.08.2008
Skąd: Gliwice

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


Jeśli pierwsza opcja to będzie Ci potrzebny jakiś algorytm generujący numer wraz z liczbą kontrolną, tu Ci nie pomogę ale powinno być trochę tutoriali/gotowców w necie. Możesz dla przykładu zobaczyć np jak PESEL działa
Go to the top of the page
+Quote Post
ColdFlame
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 26.12.2010

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


Cytat(markonix @ 26.12.2010, 11:47:15 ) *
  1. $s = mysql_query("SELECT * FROM kody WHERE kod='".$_POST['kod']."' AND aktywny='0'");
  2. // sprawdza czy podany kod jest poprawny lub jest jeszcze ważny
  3. if (mysql_num_rows($s)==0)
  4. {
  5. // błąd
  6. }
  7. else
  8. {
  9.  
  10. // jest ok, dodaj premium
  11.  
  12. }

Wcześniej kod warto zwalidować - zwykle jest po prostu alfanumeryczny więc to nie problem bo jest do tego dedykowana funkcja (IMG:style_emoticons/default/winksmiley.jpg)


Bardzo Ci dziękuję.
Wszystko rozumiem, tylko nie wiem jeszcze jednego, albowiem:

Cytat
else
{

// jest ok, dodaj premium

}


Tzn. rozumiem o co tu chodzi, ale nie wiem jak to zdefiniować.
U mnie za premium odpowiada zmienna:
($d, $premium);

To za pomocą jakiej komendy należy ją aktywować ? (tzn. włączyć to premium). ?
Żeby wykrywał id danego usera i aktywował mu tą $premium ?

Cytat
Jeśli pierwsza opcja to będzie Ci potrzebny jakiś algorytm generujący numer wraz z liczbą kontrolną, tu Ci nie pomogę ale powinno być trochę tutoriali/gotowców w necie. Możesz dla przykładu zobaczyć np jak PESEL działa


Z pewnością poczytam, dziękuję.

Pozdrawiam
ColdFlame
Go to the top of the page
+Quote Post
markonix
post
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Dodanie premium to pewnie jakaś akcja bazodanowa (albo update typu konta albo insert do listy premium).

Za to może odpowiada już jakaś funkcja, nie zmienna (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
ColdFlame
post
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 26.12.2010

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


Cytat(toaspzoo @ 26.12.2010, 11:50:02 ) *
plik index.html (forma)
  1. <form method=post action="2.php">
  2. <input type=text name=kod>
  3. <input type=submit value=sprawdz>
  4. </form>


plik 2.php
  1. <?php
  2. include('db.php');
  3.  
  4. if($_POST['kod'] <> '')
  5. {
  6. $kod = $_POST['kod'];
  7. $pokaz = zapytaj("SELECT * FROM `kody` WHERE `kod` = '$kod';");
  8. $kod_sql = mysql_fetch_array($pokaz);
  9.  
  10. if($kod == $kod_sql)
  11. {
  12.  
  13. echo 'dobry kod!';
  14. }
  15. else
  16. {
  17. echo 'zly kod!';
  18. }
  19. ?>


plik db.php

  1. <?php
  2. function zapytaj($sql) {
  3. $db = mysql_connect('HOST', 'USER', 'HASŁO');
  4. mysql_select_db('BAZA_DANYCH', $db);
  5. $wynik = mysql_query($sql, $db);
  6. return $wynik;
  7. }
  8. ?>


---

Mam nadzieję, że pomogłem (IMG:style_emoticons/default/smile.gif)



Wszystko fajnie. Zrobiłem wg. Twoich instrukcji i teraz jeżeli wpisze dowolny ciąg znaków to przechodzę do pliku: 2.php
i widnieje mi błąd:

"Parse error: syntax error, unexpected $end in <ścieżka> 2.php on line 19 "

Czym może to być spowodowane ? ;/


Go to the top of the page
+Quote Post
toaspzoo
post
Post #8





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


no jasne, na końcu pliku 2.php dodaj przed ?> jeszcze jedną klamrę! "}"
Go to the top of the page
+Quote Post
markonix
post
Post #9





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Zwykły error składniowy, pokaż linie 19.
Coś masz pewnie niedomknięte.

Poza tym skorzystaj z mojej rady, bo przy kodzie ColdFlame to 100 userów może skorzystać z jednego kodu, a chyba nie o to chodziło.
Funkcja "zapytaj"? Po prostu umieść jej kod w pliku db i go includuj. Po co łączyć się z bazą przy każdym zapytaniu jak wystarczy raz na początku..

Jak coś napiszesz sam w/g moich wskazówek to Ci pomogę.
Go to the top of the page
+Quote Post
ColdFlame
post
Post #10





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 26.12.2010

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


Jakoś sobie poradziłem, ale teraz niestety jest kolejny problem.
Non stop wyświetla się ZLY KOD...
Moja baza danych wygląda tak:

TABELA "kody", która ma dwie kolumny: "kod" i "data"
Kod odpowiada za kod (IMG:style_emoticons/default/winksmiley.jpg) a data za aktywność kodu.

Możecie udzielić mi jakiś wskazówek do tego jak mogę zrobić by ten skrypt sprawdzał czy dany ciąg znaków jest w kodem w kolumnie kod i czy jego kolumna "data" jest aktywna ?
1 to aktywna
0 to nie aktywna

przy czym gdyby była aktywna to 1 zmieniałby na 0, a gdy byłaby nieaktywna to 0 NIE ZMIENIAŁBY na 1.

Dziękuję za wszystkie odpowiedzi.

Pozdrawiam
ColdFlame
Go to the top of the page
+Quote Post
markonix
post
Post #11





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Nazewnictwo musi mieć sens - jeżeli już tam nie wstawiasz (choć warto wstawić) daty to po co nazywasz datą kolumnę?

Nazwij ją uzyte, typ pola tiny INT (1 znak) i domyślnie 0.
0 - nieużyty
1 - użyty.

Zapytanie które sprawdza poprawność kodu i zarazem czy kod jest aktywny masz w pierwszym moim poście, w pierwszej linijce.
Go to the top of the page
+Quote Post
ColdFlame
post
Post #12





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 26.12.2010

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


Cytat(markonix @ 27.12.2010, 18:43:11 ) *
Nazewnictwo musi mieć sens - jeżeli już tam nie wstawiasz (choć warto wstawić) daty to po co nazywasz datą kolumnę?

Nazwij ją uzyte, typ pola tiny INT (1 znak) i domyślnie 0.
0 - nieużyty
1 - użyty.

Zapytanie które sprawdza poprawność kodu i zarazem czy kod jest aktywny masz w pierwszym moim poście, w pierwszej linijce.


Dobrze, dziękuję.
To jak mam zintegrować te dwa kody ?
tzn. ten Twój:
$s = mysql_query("SELECT * FROM kody WHERE kod='".$_POST['kod']."' AND aktywny='0'");
i ten 2.php ?

Wystarczy jak dodam tą linijkę ?

Dziękuję za odpowiedź i pozdrawiam
ColdFlame
Go to the top of the page
+Quote Post
markonix
post
Post #13





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Nic nie integruj tylko napisz od nowa.. Toż to kilka linijek.
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: 22.08.2025 - 22:38