Jump to content

Photo
- - - - -

Pierwszy skrypt z użyciem bazy danych i PHP


7 replies to this topic
  • Please log in to reply
Tpk-Games

    Nowy użytkownik

  • 19 posts
    • Czas spędzony online: 18h 55m 3s
3
Neutralna

Posted 18 April 2015 - 20:55

#1

Siema! Ostatnio zachciało mi się robienia strony konkursowej i przy okazji podszkolenia php.

Strona ma za zadanie sprawdzić w bazie czy użytkownik istnieje i czy jest zapisany na listę konkursową - jeżeli jest w bazie i nie jest zapisany zapisuje go zmieniając jego status na 2.

Wszystko odbywa się poprzez sprawdzenie czy istnieje w bazie użytkownik o podanym nicku i następnie na podstawie weryfikacji poprawności nicku i pola status ma być wyświetlony odpowiedni komunikat.

Kod który napisałem: 

success.php - http://wklej.org/id/1691271/

index.php - http://wklej.org/id/1691269/

check.php - http://wklej.org/id/1691272/

connect.php - plik z danymi do bazy localhost

Mimo wszystko po wpisaniu jakiegokolwiek nicku pokazuje oba komunikaty: 

74653797990831925613.png

Nie zwracajcie uwagi na kolory bo to i tak trzeba jeszcze ogarnąć w bootstrap.

Staram się to robić na podstawie kursu dot. systemu logowania tylko tam jest jeszcze hasło i panel gracza a u mnie jest trochę inaczej - krótko mówiąc pogubiłem się.


Edited by Tpk-Games, 18 April 2015 - 21:14 .

  • 0

writen

    Stary wyjadacz

  • 458 posts
    • Czas spędzony online: 29d 22h 59m 44s
133
Znakomita!

Posted 19 April 2015 - 11:53

#2

Przypisanie w instrukcji warunkowe if zawsze zwróci TRUE. 

Zapamiętaj. Samo "równa się" to operator przypisania. Do porównania służy podwójny znak równa się (==).

http://phpkurs.pl/operatory/


  • 0

logo-green-dark.png


Tpk-Games

    Nowy użytkownik

  • 19 posts
    • Czas spędzony online: 18h 55m 3s
3
Neutralna

Posted 19 April 2015 - 19:31

#3

Dzięki.

Wiesz może jeszcze jak wyświetlić ostatni komunikat:
 
} if ($_SESSION['status'] == '0') {
                       
                           echo '<div class="alert alert-success" role="alert">Przepraszamy, podany nick nie istnieje!</div>';
                           
                       }
 
Bo jeżeli użytkownika nie ma w bazie to nie ma również statusu 0 - po prostu nie istnieje.
Pojawia się zatem pytanie jak zrobić aby skrypt zrozumiał, że użytkownik nie istnieje - nie ma zmiennej sesyjnej status w bazie o wartości 0.

  • 0

mkol

    Nowy użytkownik

  • 16 posts
    • Czas spędzony online: 22h 38m 7s
9
Neutralna

Posted 20 April 2015 - 00:00

#4

Przypisanie w instrukcji warunkowe if zawsze zwróci TRUE.


Zwróci to, co jest po prawej stronie znaku równości. Ta własność czasami przydaje się przy operacjach na strumieniach.
  • 0

writen

    Stary wyjadacz

  • 458 posts
    • Czas spędzony online: 29d 22h 59m 44s
133
Znakomita!

Posted 20 April 2015 - 00:47

#5

Zwróci to, co jest po prawej stronie znaku równości. Ta własność czasami przydaje się przy operacjach na strumieniach.


Racja. Źle to ująłem.

Wysłane z telefonu.
  • 0

logo-green-dark.png


Mattheo

    Nowy użytkownik

  • 38 posts
    • Czas spędzony online: 2d 8h 32m 56s
20
Bardzo dobra

Posted 25 April 2015 - 21:02

#6

Bo jeżeli użytkownika nie ma w bazie to nie ma również statusu 0 - po prostu nie istnieje.
Pojawia się zatem pytanie jak zrobić aby skrypt zrozumiał, że użytkownik nie istnieje - nie ma zmiennej sesyjnej status w bazie o wartości 0.

//pierwszy warunek
if(){

}
//drugi warunek
elseif(){

}

//wykonaj gdy powyższe warunki się nie spełniły, w tym wypadku nie ma takiego użytkownika
else{

}

Edited by Mattheo, 25 April 2015 - 21:02 .

  • 0

Yeoman

    Stary wyjadacz

  • 358 posts
    • Czas spędzony online: 6d 19h 43m 48s
169
Znakomita!
  • LocationKatowice

Posted 26 April 2015 - 01:04

#7

else w tym przypadku nie jest konieczne.


  • 0

2ed58r7.png


Mattheo

    Nowy użytkownik

  • 38 posts
    • Czas spędzony online: 2d 8h 32m 56s
20
Bardzo dobra

Posted 26 April 2015 - 13:36

#8
@up: Prawda, ale taki kod, z else jest łatwiejszy do zrozumienia dla nowicjusza.
  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users