• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przypisanie postaci do konta

Object Storage Arubacloud
0 głosów
178 wizyt
pytanie zadane 24 kwietnia 2017 w PHP przez LeeVay Użytkownik (740 p.)
Witam mam stworzony sytem logowania i rejestracji, po zalogowaniu if sprawdza czy jest stworzona postać jeśli nie to przechodzi do kreatora, który dodaje postać do bazy wtedy if się zgadza i wpuszcza do "gry", ale po przelogowaniu tej postaci nie pamięta, mimo że jest ona w bazie :(. Jak przypisać postać do użytkownika? ( 2 tabele - użytkownicy i postacie ).
komentarz 24 kwietnia 2017 przez Chess Szeryf (76,710 p.)
Czy mógłbyś podać kod?
komentarz 24 kwietnia 2017 przez LeeVay Użytkownik (740 p.)
Wszystko mam w kilku plikach... Możesz określić którą część / za co odpowiadającą mam wkleić?
komentarz 24 kwietnia 2017 przez Chess Szeryf (76,710 p.)
Podaj tą część kodu odpowiadający za przelogowanie. Nie wiem, użyłeś sesji czy ciasteczek, czy tego i tego?
komentarz 24 kwietnia 2017 przez LeeVay Użytkownik (740 p.)

Przez pzelogowanie rozumiem wylogowanie i zalogowanie ponowne 

<?php

	session_start();
	
	session_unset();
	
	header('Location: index.php');

?>

 

komentarz 24 kwietnia 2017 przez Chess Szeryf (76,710 p.)
edycja 24 kwietnia 2017 przez Chess

Masz mniej więcej taki kod, czy inny:

<form method="get" action="">
   <input type="login" name="login"/>
   <input type="password" name="password"/>
   <input type="submit" name="submit" value="zaloguj"/>
   <input type="submit" name="unsubmit" value="wyloguj"/>
</form>
<?php 
session_start();

$connect=new mysqli('localhost','root','','leevay2');

$query="select * from `leevay2`";

if($result=$connect->query($query)){
   while($row=$result->fetch_assoc()){
      if(isset($_GET['submit']) && $_GET['login']=="{$row['login']}" && $_GET['password']=="{$row['password']}"){
         $_SESSION['avatar']=1;
      }elseif(isset($_GET['unsubmit'])){
         $_SESSION['avatar']=0;
      }
   }
}
$result->free();

echo $_SESSION['avatar'];

$connect->close();

?>
id login password
1 Wojownik fajny
2 Mag super
3 lucznik mega

Jak inny to podaj swój kod!

komentarz 24 kwietnia 2017 przez LeeVay Użytkownik (740 p.)

Jedyne czym się różni w html to metoda - post i brak unsumbit a w php

<?php

	session_start();
	
	if((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
	{
		header('location: index.php');
		exit();
	}

	require_once"connect.php";
	
	$polaczenie = @new mysqli($host,$db_user,$db_password,$db_name);
	
	if($polaczenie->connect_errno!=0)
	{
		echo"Error:".$polaczenie->connect_errno;
	}
	else
	{
		$login = $_POST['login'];
		$haslo = $_POST['haslo'];
		
		$login = htmlentities($login, ENT_QUOTES, "UTF-8");
		
		
		
		if($rezultat = @$polaczenie->query(sprintf("SELECT * FROM uzytkownicy WHERE login='%s'",mysqli_real_escape_string($polaczenie,$login))))
		{
			$ilu_userow = $rezultat->num_rows;
			if($ilu_userow>0)
			{
				$wiersz = $rezultat->fetch_assoc();
				
				if(password_verify($haslo,$wiersz['haslo']))
				{
				
					$_SESSION['zalogowany']=true;
					
				
					
					
					unset($_SESSION['blad']);
					$rezultat->close();
					header('Location: gra.php');
				}
				else{
				
					$_SESSION['blad']='<span style="color:red; font-size:30px;"> Nieprawidłowy login lub hasło </span>';
					header('Location: index.php');
				
				}
				
			}else{
				
				$_SESSION['blad']='<span style="color:red; font-size:30px;"> Nieprawidłowy login lub hasło </span>';
				header('Location: index.php');
				
			}
		}
		
		
		$polaczenie->close();
	}
?>

 

 

komentarz 24 kwietnia 2017 przez Chess Szeryf (76,710 p.)
edycja 24 kwietnia 2017 przez Chess

Jak wylogujesz się z gry, to zmienna globalna $_SESSION['zalogowany']=false. Masz np.:

Posiadasz 10. użytkowników i 10 postaci. Gdy użytkownik dajmy na to Kowalski5 zaloguje się to wybierana jest jego postać: Wojownik, którą wcześniej utworzył. Zmienna sesyjna $_SESSION['wojownik'] powinna być przypisana  dla użytkownika Kowalski5 i na tej podstawie powinno być dalsze wczytywanie gry. Czy może źle rozumuję?

Może powinno to tak wyglądać:
 

$query2="SELECT `login` from `uzytkownicy` where `login`='Kowalski5'";
echo "<pre>";
$_SESSION['wojownik']=$connect->query($query2);
$profesja=$_SESSION['wojownik']->fetch_assoc();
print_r($profesja);
echo $profesja['login'];

Może coś w ten deseń?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 161 wizyt
pytanie zadane 30 sierpnia 2017 w Java przez fipooo Bywalec (2,880 p.)
0 głosów
1 odpowiedź 128 wizyt
pytanie zadane 14 lutego 2020 w PHP przez adikpl Użytkownik (660 p.)
–1 głos
0 odpowiedzi 60 wizyt
pytanie zadane 14 stycznia 2020 w PHP przez Maciek Zębala Nowicjusz (140 p.)

92,555 zapytań

141,404 odpowiedzi

319,560 komentarzy

61,941 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...