Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Pomoc w skrypcie
Forum PHP.pl > Forum > Przedszkole
CryWolf
Witam, dzisiaj przeglądałem sobie kod mojego silnika gry via www, który zrobiłem w zeszłe wakacje i który używałem do teraz. Popawiłem dużo niedociągniec ale mam maly problem z logowaniem. Stary kod wyglądał tak:

  1. <?php
  2. function wy_form_logo() {
  3.  
  4. echo '
  5. <form action="index.php" method="POST">
  6. Login: <input type="text" name="login"><br>
  7. Hasło: <input type="password" name="haslo"><br><br>
  8. <input type="submit" value="Zaloguj">
  9. </form>';
  10.  
  11.  
  12. $login = $_POST['login'];
  13. $haslo = $_POST['haslo'];
  14.  
  15.  
  16. $pokazpieniadze = "SELECT login, haslo FROM users WHERE login='$login'";
  17. $wykonaj = mysql_query($pokazpieniadze);
  18. $found = false;
  19. while($wiersz = mysql_fetch_assoc($wykonaj)) {
  20. if ($haslo == $wiersz['haslo'] && $login == $wiersz['login']) {
  21. $_SESSION['user'] = $login;
  22. $_SESSION['pass'] = $haslo;
  23. echo '<big><b>Zalogowany!</big></b>';
  24. echo '<META HTTP-EQUIV="Refresh" CONTENT="1;URL=start.php">';
  25. $found = true;
  26. break;  }
  27. }
  28. if(!$found) echo '<b><big>Chcesz doł?czyć do reszty osób?</b></big><br><a href="rejestracja.php"><b>Rejestracja</b></a>';
  29. }
  30. ?>






Troszkę biednie ten skrypt działa w rzeczywistości, więc postanowiłem napisac go od nowa.
Nowy kod wygląda tak:

  1. <?php
  2. //LOGOWANIE
  3. echo ' <table border=1><td width=165 height=160>';
  4.  
  5.  
  6.  
  7. if ($_POST['potwierdzone'] == '1' && $_POST['login'] == NULL && $_POST['haslo'] == NULL) { echo '<center>Wypełnij cały formularz!'; }
  8. elseif ($_POST['potwierdzone'] == '1' && $_POST['login'] == NULL) { echo '<center>Wypełnij cały formularz!'; }
  9. elseif ($_POST['potwierdzone'] == '1' && $_POST['haslo'] == NULL) { echo '<center>Wypełnij cały formularz!'; }
  10. elseif ( $_POST['potwierdzone'] == '1' && !empty($_POST['login']) && !empty($_POST['haslo']) ) 
  11.  
  12.  {
  13. $wplogin = $_POST['login'];  
  14. $wphaslo = $_POST['haslo'];  
  15.  
  16. $findl = "SELECT login, haslo FROM users WHERE login = '$wplogin' AND haslo = '$wphaslo'";
  17. $find2 = mysql_num_rows($findl); 
  18. echo "$find2";
  19.  
  20. (JEŻELI == 1 to loguje, jak 0 to złe dane)
  21.  
  22.  } 
  23.  
  24.  
  25. else {
  26. echo '<form action="index.php" method="POST">
  27. Login: <input type="text" name="login"><br>
  28. Hasło: <input type="password" name="haslo"><br><br>
  29. <input type="hidden" name="potwierdzone" value="1">
  30. <input type="submit" value="Zaloguj">
  31. </form>'; }
  32.  
  33. echo '</td><tr>';
  34. echo '<td width=165 height=30><center><a href="rpass.php">PRZYPOMNIJ HASŁO</a></center></td></table>';
  35.  
  36. //KONIEC LOGOWANIE
  37. ?>


W srodku kodu napisałem co powinno się dziac, a nie udaje mi się to. Wyskakuje błąd sql.
Coś jest z argumentami mysql_num_rows ale nie wiem co. Chodzi mi o wyświetlenie $find2. Pozdrawiam
ARJ
źle używasz mysql_num_rows -> http://pl.php.net/manual/pl/function.mysql-num-rows.php
poza tym przemyśl ten skrypt bo zestaw elseif odpowiadają za to samo.
Ociu
  1. <?php
  2. $find2 = mysql_num_rows(mysql_query($findl));
  3. if($find2 <> 0) {
  4. //user istnieje
  5. } else {
  6. //user nie istnieje - formularz
  7. }
  8. ?>
CryWolf
Czesc, chyba juz kompletnie sie pogrążyłem :| czy ktoś może mi wyjaśnic czemu skrypt poniżej nie działa? Zawsze pracował jak trzeba... Nawet zwykłe echo bez zmiennej nie działa pomiędzy nawiasami klamrowymi.

  1. <?php
  2. $pokaz1 = "SELECT * FROM users WHERE login = '". $_SESSION['user'] ."'";
  3. $wykonaj = mysql_query($pokaz1);
  4. while($wiersz = mysql_fetch_array($wykonaj))
  5. { $aaa = $wiersz['login']; echo "$aaa"; }
  6. ?>
Ociu
$wiersz['login'] to tablica , a Ty próbujesz przypisać jeden element z tablicy zmiennej.

  1. <?php
  2. $pokaz1 = "SELECT * FROM users WHERE login = '". $_SESSION['user'] ."'";
  3. $wykonaj = mysql_query($pokaz1);
  4. $aaa=array();
  5. while($wiersz = mysql_fetch_array($wykonaj))
  6. { $aaa[] = $wiersz['login']; }
  7. print_r($aaa);
  8. ?>
CryWolf
Czesc! Mam kolejne pytanko. Czy istnieje jakaś funkcją w PHP lub w javie, że jest całkowity zakaz cofania strony wstecz? W sensie, że ktoś kliknie "Wstecz" i wyświetli się w ogóle inna strona z napisem "Całkowity zakaz cofania! Wroc tam gdzie byłeś: LINK" ?
Z góry dziękuję
potreb
Jak już to lepiej zrobic przekierowania, jeżeli został zalogowany:
  1. <?php
  2. header('location: index.php');
  3. ?>
CryWolf
w sensie
if ($_SESSION['user']) { header('location: index.php'); } i to sie przeniesie? I co się wtedy stanie jak się da "wstecz". Przepraszam, że wpierw nie sprawdzę tego sam ale mam jeszcze tylko 10minut.

Mam pytanie z innej beczki, czy jeżeli wrzucę swój silnik gry na serwer, to czy jest możliwosc, że ktoś zdobędzie pliki które są na serwerze? W sensie, że ja się namęczyłem a ktoś sobie zrobi kopię bez mojej zgody? A co do mojej gry to oczywiście jeszcze jej nie ukończyłem. Planuję jej koniec na początku wakacji. To tak na dodatek smile.gif Może dziwne pytanie, ale chciałbym się upewnic.
erix
Cytat
że jest całkowity zakaz cofania strony wstecz?

Chcesz przejąć władzę nad przeglądarką użytkownika?! ohmy.gif

Jedyne, co możesz zrobić, to zablokować trzymanie stron w cache'u. Przejście na każdą stronę by zmieniało pewną wartość w sesji, np. coś takiego:

strona1
  1. <?php
  2. if($_SESSION['krok']>1){
  3. die('już tu byłeś!');
  4. }else{
  5. $_SESSION['krok'] = 1;
  6. }
  7. ?>


strona2
  1. <?php
  2. if($_SESSION['krok']>2){
  3. die('już tu byłeś!');
  4. }else{
  5. $_SESSION['krok'] = 2;
  6. }
  7. ?>


i tak dalej, i tak dalej...
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.