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 26.12.2010, 11:30:15
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. 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 26.12.2010, 11:47:15
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 winksmiley.jpg

Ten post edytował markonix 26.12.2010, 11:48:19


--------------------
Go to the top of the page
+Quote Post
toaspzoo
post 26.12.2010, 11:50:02
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 smile.gif


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

LS Easter egg <
Go to the top of the page
+Quote Post
agmakonts
post 26.12.2010, 11:50:51
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


--------------------
Folio :: Blog
Go to the top of the page
+Quote Post
ColdFlame
post 26.12.2010, 12:51:09
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 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 26.12.2010, 12:54:00
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 winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
ColdFlame
post 26.12.2010, 21:00:24
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 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 26.12.2010, 21:14:32
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ę! "}"


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

LS Easter egg <
Go to the top of the page
+Quote Post
markonix
post 26.12.2010, 23:05:18
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 27.12.2010, 16:07:42
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 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 27.12.2010, 18:43:11
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 27.12.2010, 22:11:45
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 28.12.2010, 01:28:18
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 14:47