Problem z logowaniem w php

0

Witam, od jakiegoś czasu piszę taki minicms z tutoriala przepisując go a nie copy paste.
Wszystko dobrze działa na tutorialu a u mnie nie. Wyświetla że jest błąd w 3 linijce oraz błąd w tej składni <?php echo $msg; ?>
Błąd do 3 linijki:
Undefined index: logged_in in C:\Program Files\VertrigoServ\www\Members System\login.php on line 3
a do linii z $msg to taki:
Notice: Undefined variable: msg in C:\Program Files\VertrigoServ\www\Members System\login.php on line 55

a kod daje poniżej:

 
session_start();
if($_SESSION['logged_in']===true){
  $username = $_SESSION['username'];
  header("Location: profile.php?username=$username");
  exit();
}
if(isset($_POST['submit'])){
  $username = $_POST['username'];
  $password = $_POST['password'];
  if(empty($username)||empty($password)){
     $msg ="Błędna nazwa użytkownika lub hasło";
  }else {
     include('db_conn.php');
	  $username = trim($username);
	  $username = stripcslashes($username);
	  $username = strip_tags($username);
	  $username = $db->real_escape_string($username);
      
	  $password = trim($password);
	  $password = stripcslashes($password);
	  $password = strip_tags($password);
	  $password = $db->real_escape_string($password);
	  $password = md5($password);
	  
	  $query = $db->query("SELECT * FROM members WHERE username='".$username."' AND password='".$password."'");
      if($query->num_rows === 1){
	     $_SESSION['logged_in'] = true;
		 $_SESSION['username'] = $username;
		 header("Location: profile.php?username=$username");
		 exit(); 
      }else{
	    $msg = "Błędna nazwa użytkownika lub hasło";
      }
  }
}


?>

Nie wiem czemu nie przekierowuje mnie na profile.php mimo, że odchaczę 4 linijki od góry i tak działało w tutorialu.
A może nie działa jak należy bo tutorial jest na xammp a ja mam na vertrigo?

0

Może pokaż ten plik w którym są te błedy. Ponieważ w tym co podałeś nawet nie ma takiego wiersza: <?php echo $msg; ?>

0

Ok to wkleję cały kod login.php , dodam że zmieniłem z $password na $pwrd jak było na tutorialu i nadal nic.

 
<?php
session_start();
if($_SESSION['logged_in']===true){
    $username = $_SESSION['username'];
    header("Location: profile.php?username=$username");
    exit();
}
if(isset($_POST['submit'])){
  $username = $_POST['username'];
  $pwrd = $_POST['pwrd'];
  if(empty($username)||empty($pwrd)){
     $msg = "Błędna nazwa użytkownika lub hasło";
  }else {
     include('db_conn.php');
	  $username = trim($username);
	  $username = stripcslashes($username);
	  $username = strip_tags($username);
	  $username = $db->real_escape_string($username);
      
	  $pwrd = trim($pwrd);
	  $pwrd = stripcslashes($pwrd);
	  $pwrd = strip_tags($pwrd);
	  $pwrd = $db->real_escape_string($pwrd);
	  $pwrd = md5($pwrd);
	  
	  $query = $db->query("SELECT * FROM members WHERE username='".$username."' AND password='".$password."'");
      if($query->num_rows === 1){
	     $_SESSION['logged_in'] = true;
		 $_SESSION['username'] = $username;
		 header("Location: profile.php?username=$username");
		 exit(); 
      }else{
	    $msg = "Błędna nazwa użytkownika lub hasło";
      }
  }
}


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
  <meta http-equiv="Content-type" content="application/xhtml+xml; charset=utf-8" />
  <meta name="Author" content="Radosław Piskorz" />
  <meta name="Description" content=" " />
  <meta name="Keywords" content=" " />
  <meta name="Robots" content="all" />
  <title>Members system - logowanie</title>
  <link rel="stylesheet" href=" css/style.css " type="text/css" />
  <link rel="stylesheet" href=" css/style1.css " type="text/css" />
  
</head>
<body>
<?php if(isset($msg));?>
<?php echo $msg; ?>

<div id="flogowanie">
  <div id="formlog">
  <h2>Logowanie</h2>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="POST" >
 <div><div class="name">Username:</div><input class="btn" type="text" id="username" name="username" ></input><label for="username"></label></div>
 <div><div class="name">Password:</div><input class="btn" type="password" id="pwrd" name="pwrd" ></input><label for="password"></label></div>
 <div><input type="submit"  id="submit" value="Zaloguj się" ></input></div>
</form>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
       $(function() {
	       $('#submit').click(function() {
		      $('.error').remove();
			  var username = $('#username').val();			 
			  var password = $('#password').val();		     
		      var errors = false;
			   
			   if(username == "") {
			   errors = true;
			   $('label[for=username]').after('<span class="error">Podaj nazwę użytkownika!</span>');  
		       }
			   
			   if(password == "") {
			   errors = true;
			   $('label[for=password]').after('<span class="error">Wprowadź hasło!</span>');  
		       }
			   
			   else if(password == username) {
			   errors = true;
			   $('label[for=password]').after('<span class="error">Wypełnij pole!</span>');  
		       }
			   
			   if(errors ==false) {
			      return true;
			   }
	        return false;
	    });
	   
      });
  
  </script>
  </div>
</div>









</body>
</html>

0

Na tutorialu było ===1 więc tak napisałem, ale u niego działało a u mnie nie.

0

z echo powinno być tak: <?php if(isset($msg)) echo $msg; ?>
Natomiast z nieprzekierowaniem - sprawdź wielkść liter w nazwie pliku.

0

Plik profile.php mam z małej litery ale zaraz, gościu na tutorialu tworzył plik .htacces i przepisałem linia w linię i to tak wygląda:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^(.*)$ ./profile.php?username=$1
0

wiersz 3: if(if(isset($_SESSION['logged_in'])) && $_SESSION['logged_in']===true)

0

To jak zadziała, to pytanie, czemu jak przepisałem kod z tutoriala to działa na filmie a u mnie nie?
Dokładnie z tego tutoriala przepisałem:

0

nie działało, musiałem jednego if usunąc i bład zniknął ale przekierowywanie nie działa:(

0

Spróbuj usunąć pierwszy wiersz, przed <?php

0

Działa, okazało się, że w formularzu nie było name="submit" i teraz jak wcześniej napisałem, działa:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1