Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Kod sms - jak to połączyć z bazą?
Forum PHP.pl > Forum > Przedszkole
Mody23
Witam!

Jak mogę zrobić coś takiego, że przykładowo będę przetrzymywał w jakimś pliku kody sms, np.:
FH674FG
UET678H
OHUD75
HGDHUD


i teraz miałbym zwykłe pole tekstowe w HTMLu, ustawiłbym do tego action="wyslij.php" i w wyslij.php właśnie pobierałoby z tego pliku dane, czyli jeśli user wpisze: blabla to zwróci komunikat:
Podałeś nieprawidłowy kod SMS!
lub jeśli będzie poprawny, to wykona pewną czynność i dodatkowo zapobiegnie ponownemu użyciu tego samego kodu! usunie go czy coś.

Z kodem php sobie raczej poradze, stworze warunki, ale z MySQL i tym plikiem miałbym problem, więc pytam was.

Pozdrawiam!
sadistic_son
Musialbys najpierw wprowadzic kody z pliku do bazy. Czyli z pola typu file wczytujesz plik do tablicy, a nastepnie petla foreach wrzucasz oddzielnymi zapytaniami INSERT kazdy kod jako oddzielny rekord.

User wpisuje kod, szukasz czy taki kod jest w bazie:
  1. SELECT * FROM kody WHERE kod = 'blablabla'
. Potem jesli mysql_num_rows zwroci > 0 to kod poprawny czyli zezwala na ta Twoja pewna czynnosc a przy pomocy pobranego ID wywala z bazy ten kod. Jesli zwroci co innego to niepoprawny kod.

Generalnie to za bardzo ogolnikowo opisales swoj problem. Ciezko bedzie podsunac Ci jakies dokladniejsze rozwiazanie. Dzialaj, koduj, pokaz efekty i wtedy pomyslimy dalej.
Mody23
Dobra, sprecyzuje o co mi chodzi. Może wtedy podasz mi jakiś konkretniejszy przykład bo niestety bazy danych to moja słaba strona.

Więc jest strona zwykła HTML, gdzie można kupić VIPa. User wysyła SMSa i wpisuje kod. System sprawdza, czy kod istnieje, jeśli nie = error. Jeśli tak, zapobiega temu aby kod nie mógł zostać użyty drugi raz oraz dodaje usera do pewnej grupy. To jest związane z phpbb by przemo, ale to jest nie wazne, bo z PHP sobie poradze, tylko właśnie chciałbym prosić o rozwiązanie dotyczące MySQLa.
jackraymund
no to stwórz baze
dodaj do niej kody
może być jedna tabela lub 2
i teraz
sprawdzenie czy jest w bazie ten kod
jeżeli jest to albo usunie wpis albo doda do 2 tabeli jakąś wartość przy której 1 zapytanie mysql bedzie pomijało ten wpis
z dodaniem kodów do bazy możesz się posłużyć przykładem z helpa
  1. <?php
  2. $plik = file('plik.txt');
  3.  
  4. echo '<ul>';
  5. for($i = 0, $x = count($plik); $i < $x; $i++)
  6. {
  7. echo '<li>'.trim($plik[$i]).'</li>';
  8. }
  9. echo '</ul>';
  10. ?>
sadistic_son
No dobra, pytanie brzmi w takim razie skad te kody bierzesz. Mowisz ze otrzymujesz je w pliku tekstowym tak? Czym kody sa porozdzielane? Enterami? Musisz wczytac je z pliku i wrzucic do tablicy:
  1. $plik=file("sciezka/do/pliku/kody.txt");

Potem musisz wrzucic kazdy kod do oddzielnego rekordu w bazie. Sadze ze tabela z dwoma polami: ID, kod powinna wystarczyc. Nazwijmy ja kody:
  1. foreach($plik as $p){
  2. mysql_query("INSERT INTO kody VALUES (NULL, $p)");
  3. }
Teraz mamy kazdy kod w oddzielnym rekordzie. Dalej, user wpisuje kod w pole o nazwie wpisz_kod i klika przycisk o nazwie wyslij:
  1. if(isset($_POST['wyslij']) && !empty($_POST['wpisz_kod'])){
  2. $userkod=$_POST['wpisz_kod'];
  3. $sql=mysql_query("SELECT id FROM kody WHERE kod = '$userkod' LIMIT 1");
  4. $num=mysql_num_rows($sql);
  5. if($num>0){
  6. //dodanie do grupy czy cokolwiek innego dla poprawnego kodu
  7. $id=mysql_result($sql,0);
  8. mysql_query("DELETE FROM kody WHERE id=$id");
  9. }else{
  10. echo 'zly kod!!!!!!!';
  11. }
  12.  
  13. }
Ot cala filozofia smile.gif Dzialaj i pokazuj efekty.
Mody23
sadistic_son, do tego trzeba jeszcze dodać tabelę w bazie, prawda? Mógłbyś mnie jeszcze w tym nakierować jak powinno to wyglądać?
sadistic_son
W SQLu to taką komendę:
  1. CREATE TABLE kody (
  2. id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  3. kod VARCHAR(20)
  4. );
A jeśli masz phpmyadmina to w interface graficznym musisz to zrobic.

Tutaj masz podstawy.
markonix
Kody masz pewnie z jakieś operatora płatności SMS, a tam już dawno większość ma kody bezobsługowe - czyli sprawdzane po stronie ich serwisu www więc niepotrzebnie się męczysz (musisz dodawać, uzupełniać kodu, pisać swoje weryfikatory).
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.