Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Nieprawidłowe przekierowanie


bnmbb

Rekomendowane odpowiedzi

Opublikowano

Witam ! Mam niewiadomo czemu problem z plikiem gry - game.php .

Gdy do niego przekierowywuje (po zalogowaniu przekierowuje do niego) mam błąd :

 

Nieprawidłowe przekierowanie

Firefox wykrył, że serwer przekierowuje żądanie tego zasobu w sposób uniemożliwiający jego ukończenie.

Problem ten może się pojawić w wyniku zablokowania lub odrzucenia ciasteczek.

 

Jedyny dołączany do niego plik to Layout.php - ale on działa dobrze bo sprawdzałem i wczytywało.

 

Kod game.php :

 

 

<?php
session_start();
require_once("Layout.php");
mysql_select_db("kongo96lbn_wov");
$czymawioske = mysql_query("SELECT * FROM s1 WHERE Owner=".$uzytkownik['Id']);
$ile = mysql_num_rows($czymawioske);
if($ile <= 0) {
header("Location: create_village.php");
} else {
?>
<div style="top: 70px; height: 60px; left: 250px; width: 30px;" class="news">

<div class="news_g">

<div class="news_s">  <br />
<?php
if(empty($_GET['village'])) {
$bezpieczenstwo = mysql_fetch_array($czymawioske);
header("Location: game.php?village=".$bezpieczenstwo['Id']."&screen=przeglad");
}
switch($_GET['screen']){
   case 'przeglad':
 echo'<h2>Wybierz wioskę :</h2><br />
   <table border="1" align="center" style="text-align: center;">
 <tr><td>Nazwa<td>Współrzędne<td colspan="3">Surowce<td>Ludność';
 while($wioski = mysql_fetch_array($czymawioske)) {
 echo '<tr><td><a href="game.php?village='.$wioski['Id'].'&screen=wioska">'.$wioski['Name'].'</a><td>'.$wioski['x'].'|'.$wioski['y'].'<td>'.$wioski['Drewno'].'<td>' .$wioski['Glina'].'<td>' .$wioski['Zelazo'].'<td>'.$wioski['ludnosc_uzyta'].'/'.$wioski['ludnosc_ogol'];
 }
 echo'</table>';
 break;

 case'wioska':
   echo'<h2>Przegląd wioski :</h2>';
 if($_GET['look'] = "classic") {
 $wioska = mysql_query("SELECT * FROM s1 WHERE Id=".$_GET['village']);
 $test = mysql_num_rows($wioska);
 if($test >= 1) {
 while($budynki = mysql_fetch_array($wioska)) {
 echo'<a href="budynek.php?name=Zamek&village='.$_GET['village'].'">Zamek (poziom '.$budynki['Zamek'].')</a><br />';
 if($budynki['Koszary'] > 0) {
 echo'<a href="budynek.php?name=Koszary&village='.$_GET['village'].'">Koszary (poziom '.$budynki['Koszary'].')</a><br />';
 }
   if($budynki['Rynek'] > 0) {
 echo'<a href="budynek.php?name=Rynek&village='.$_GET['village'].'">Rynek (poziom '.$budynki['Rynek'].')</a><br />';
 }
  if($budynki['spichlerz'] > 0) {
 echo'<a href="budynek.php?name=Spichlerz&village='.$_GET['village'].'">Spichlerz (poziom '.$budynki['spichlerz'].')</a><br />';
 }
 if($budynki['Dwor'] > 0) {
 echo'<a href="budynek.php?name=Dwor&village='.$_GET['village'].'">Dwór (poziom '.$budynki['Dwor'].')</a><br />';
 }
 if($budynki['Stajnia'] > 0) {
 echo'<a href="budynek.php?name=Stajnia&village='.$_GET['village'].'">Stajnia (poziom '.$budynki['Stajnia'].')</a><br />';
 }
 if($budynki['Kuzna'] > 0) {
 echo'<a href="budynek.php?name=Kuzna&village='.$_GET['village'].'">Kuźnia (poziom '.$budynki['Kuzna'].')</a><br />';
 }
 if($budynki['Mur'] > 0) {
 echo'<a href="budynek.php?name=Mur&village='.$_GET['village'].'">Mur (poziom '.$budynki['Mur'].')</a><br />';
 }
 if($budynki['Pomnik'] > 0) {
 echo'<a href="budynek.php?name=Pomnik&village='.$_GET['village'].'">Pomnik</a><br />';
}

   }

 }
 if($test <= 0) {
 echo "Błąd !";
 }

 }
 }

}
?>
</div>
</div>

 

 

 

Pomoże ktoś by niepokazywało tego błędu ? ;)

Opublikowano

Dobra. Dam go tak jak jest napisany + funkcje :

logowanie.php :

 

 

<?php
require_once("../_AppStart.php"); //Połączenie + funkcje
$LoginMsg = '';
if(!empty($_POST)){
 if (!empty($_POST['login']) && !empty($_POST['haslo'])) {
   $_login = $_POST['login'];
   $_haslo = $_POST['haslo'];
   $db = $WebSecurity->DatabaseInstance(); //Połączenie z bazą
   $db->Open('kongo96lbn_wov'); //Wybranie bazy

## Attempt to login to the Security object using provided creds
   if ($WebSecurity->Login($_login, $_haslo)) { //Patrz niżej - opisana funkcja
  $gracz = $db->Query("SELECT * FROM Users WHERE Name = '%s'", $_login ); //Po prostu zapytanie
  $login = $gracz['Name'];
  $IP = $_SERVER['REMOTE_ADDR'];
  mysql_query("INSERT INTO Logs (Konto, Serwer, Kiedy, IP, Udane) VALUES ('$login', 's1', NOW(), '$IP', 'Tak')");
## jeżeli pobrano dane to przeczyść sesję
  $_SESSION = array();

## ustaw numer gracza jako wskaźnik w sesji
    $_SESSION['user'] = $gracz['Id'];
    $_SESSION['timeGame'] = 0;
    $_SESSION['timeStart'] = time();
    $uzytkownik = $gracz;
## przenieś do strony konta gracza
    header('Location: http://worldofvillages.tk/s1/game.php?village=&screen=przeglad');
  }
   } else {
	  $login = $gracz['Name'];
  $IP = $_SERVER['REMOTE_ADDR'];
//Zalogowało ? No to zapiszmy Log
  mysql_query("INSERT INTO Logs (Konto, Serwer, Kiedy, IP, Udane) VALUES ('$_login', 's1', NOW(), '$IP', 'Nie')");
  $LoginMsg = "<p class='error'>Podano nieprawidłowe dane</p><br class='clear'>";
   }
 } else {
## jeżeli nie podano wszystkich danych
   $LoginMsg = "<p class='error'>Wypełnij wszystkie pola poprawnie</p><br class='clear'>";
 }

## włączamy bufor
 ob_start();

?>

<h2>Zaloguj się :</h2>
<form action="" method="POST">
Login :<input type="text" name="login" value="<?php $login ?>"><br>
Hasło :<input type="password" name="haslo" value="<?php $haslo ?>"><br>
<input type="submit" value="Zaloguj">
</form>

 

 

 

Funkcja Login (Niewiem czy coś zrozumiecie. Pisane przez naprawdę doświadczonego programistę WWW :

 

 

public static bool Login(string userName, string password, [bool persistCookie = false])
   Member of WebMatrix.WebData.WebSecurity

Summary:
Logs the user in.

Parameters:
userName: The user name.
password: The password for a user.
persistCookie: (Optional) true to specify that the authentication token in the cookie should be persisted beyond the current session; otherwise false. The default is false.

Returns:
true if the user was logged in; otherwise false.
------------- */
 public function Login( $userName, $userPassword, $persistCookie = false ) {

   if (self::UserExists($userName)) { //Sprawdza czy User istnieje
  $userId = self::GetUserId($userName); //Pobiera jego ID

  $query = "SELECT * FROM WebPages__Membership WHERE UserId = %d AND Password = '%s'"; //Poszukuje hasła.
  $db = self::DatabaseInstance();//Połączenie
  $WebUser = $db->Query( $query, self::GetUserId($userName), md5($userPassword) ); //Hasłą są w MD5. Nierozumiem troche tego
  $CurrentUser = self::GetUser($userId);
   }

   if( isset($WebUser) ) {
  $query = "UPDATE WebPages__Membership SET PasswordFailuresSinceLastSuccess = 0 WHERE UserId = %d AND Password = '%s'";
  $db->Execute($query, $userId, md5($userPassword));
  //if(!isset($WebUser['ConfirmationToken'])) { //Token potwierdzenia 
    $_SESSION['IsAuthenticated'] = true;
    $_SESSION['CurrentUserId'] = $userId;
    $_SESSION['CurrentUserName'] = $userName;
    if($persistCookie) {
	  setcookie("CurrentUserId", $userId, time()+5270400, "/" );
	  setcookie("CurrentUserName", $userName, time()+5270400, "/" );
    }
    $this->IsAuthenticated = true;
    $this->CurrentUserEmail = $userName;
    $this->CurrentUserName = $userName;
    $this->CurrentUserId = $userId;
    return true;
  //}
   } else {
  self::SetLastPasswordFailure($userName);
  unset( $_SESSION['IsAuthenticated'],
		 $_SESSION['CurrentUserId'],
		 $_SESSION['CurrentUserName'] );
   }
   return false;
 }

 

 

Opublikowano

A jakbyś to

http://worldofvillages.tk/s1/game.php?village=&screen=przeglad

zmienił na:

http://worldofvillages.tk/s1/game.php
bez tego ?village=&screen=przeglad

a7a3b8122182356e.png.8036b3d7be84292c9ea465f2360fa784.png

Opublikowano

Albo to co krycha pokazał zmienił na

http://worldofvillages.tk/s1/ game.php?village&screen=przeglad //to ma być połączone razem

oprócz tego dalej mi nie napisałeś co chcesz zrobić pętlą while, bo zazwyczaj z jej powodu są takie błędy

Opublikowano

Niechce mi się bawic teraz w wasze rozwiązania bo znalazłem przyczynę :)

w kodzie game.php (WIEDZIAŁEM że to ten plik !)

Miałem kod :

if($ile <= 0) {
header("Location: create_village.php");
}

 

Zmieniłem go na :

 

if($ile <= 0) {?>
<script type="text/javascript">
location.href = "create_village.php";
</script>
<?php

 

Otóż jak do niego doszedłem ?

Wywaliłem wszystkie zabezpieczenia z Layoutu oprócz testu zalogowanego.

Patrzę na inny plik też z whil'em - działa

Wchodzę na game.php - niedziała. No to z waszą radą ukryłem wszystkie whil'e i przekierowanie - działa.

 

Myślę :

Dobrze a teraz powolutku. Wywaliłem 1 whil'a - działa, 2- działa. Uruchomiłem przekierowanie - AAAA to tu niedziała !

Zmieniłem go na przekierowanie JS i śmiga. Ale mimo to +'y dla was.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...