login problem

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

login problem

Δημοσίευση από txc » 11 Φεβ 2008 11:56

καλησπέρα παιδιά...να κάνω μια ερώτηση...έχω μια βάση στην οποία έχω δύο πίνακες, ο κάθε πίνακας κρατάει στοιχεία για ξεχωριστού τύπου ομάδες μελών...δηλαδή ο πίνακας 1 κάνει login για τη σελίδα 1.php και ο πίνακας 2 για τη σελίδα 2.php
δηλαδή υπάρχουν διαφορετικά username και password

ο κώδικας που έχω στην αρχή της κάθε σελίδας είναι αυτός :

Κώδικας: Επιλογή όλων

<?php
//initialize the session
if &#40;!isset&#40;$_SESSION&#41;&#41; &#123;
  session_start&#40;&#41;;
&#125;

// ** Logout the current user. **
$logoutAction = $_SERVER&#91;'PHP_SELF'&#93;."?doLogout=true";
if &#40;&#40;isset&#40;$_SERVER&#91;'QUERY_STRING'&#93;&#41;&#41; && &#40;$_SERVER&#91;'QUERY_STRING'&#93; != ""&#41;&#41;&#123;
  $logoutAction .="&". htmlentities&#40;$_SERVER&#91;'QUERY_STRING'&#93;&#41;;
&#125;

if &#40;&#40;isset&#40;$_GET&#91;'doLogout'&#93;&#41;&#41; &&&#40;$_GET&#91;'doLogout'&#93;=="true"&#41;&#41;&#123;
  //to fully log out a visitor we need to clear the session varialbles
  $_SESSION&#91;'MM_Username'&#93; = NULL;
  $_SESSION&#91;'MM_UserGroup'&#93; = NULL;
  $_SESSION&#91;'PrevUrl'&#93; = NULL;
  unset&#40;$_SESSION&#91;'MM_Username'&#93;&#41;;
  unset&#40;$_SESSION&#91;'MM_UserGroup'&#93;&#41;;
  unset&#40;$_SESSION&#91;'PrevUrl'&#93;&#41;;
	
  $logoutGoTo = "members_opel1.php";
  if &#40;$logoutGoTo&#41; &#123;
    header&#40;"Location&#58; $logoutGoTo"&#41;;
    exit;
  &#125;
&#125;
?>
<?php
if &#40;!isset&#40;$_SESSION&#41;&#41; &#123;
  session_start&#40;&#41;;
&#125;
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";

// *** Restrict Access To Page&#58; Grant or deny access to this page
function isAuthorized&#40;$strUsers, $strGroups, $UserName, $UserGroup&#41; &#123; 
  // For security, start by assuming the visitor is NOT authorized. 
  $isValid = False; 

  // When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
  // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
  if &#40;!empty&#40;$UserName&#41;&#41; &#123; 
    // Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
    // Parse the strings into arrays. 
    $arrUsers = Explode&#40;",", $strUsers&#41;; 
    $arrGroups = Explode&#40;",", $strGroups&#41;; 
    if &#40;in_array&#40;$UserName, $arrUsers&#41;&#41; &#123; 
      $isValid = true; 
    &#125; 
    // Or, you may restrict access to only certain users based on their username. 
    if &#40;in_array&#40;$UserGroup, $arrGroups&#41;&#41; &#123; 
      $isValid = true; 
    &#125; 
    if &#40;&#40;$strUsers == ""&#41; && true&#41; &#123; 
      $isValid = true; 
    &#125; 
  &#125; 
  return $isValid; 
&#125;

$MM_restrictGoTo = "members_opel1.php";
if &#40;!&#40;&#40;isset&#40;$_SESSION&#91;'MM_Username'&#93;&#41;&#41; && &#40;isAuthorized&#40;"",$MM_authorizedUsers, $_SESSION&#91;'MM_Username'&#93;, $_SESSION&#91;'MM_UserGroup'&#93;&#41;&#41;&#41;&#41; &#123;   
  $MM_qsChar = "?";
  $MM_referrer = $_SERVER&#91;'PHP_SELF'&#93;;
  if &#40;strpos&#40;$MM_restrictGoTo, "?"&#41;&#41; $MM_qsChar = "&";
  if &#40;isset&#40;$QUERY_STRING&#41; && strlen&#40;$QUERY_STRING&#41; > 0&#41; 
  $MM_referrer .= "?" . $QUERY_STRING;
  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode&#40;$MM_referrer&#41;;
  header&#40;"Location&#58; ". $MM_restrictGoTo&#41;; 
  exit;
&#125;
?>
το θεμα είναι όταν κάνει επιτυχημένο login ο χρήστης στην πρώτη σελίδα , μένοντας στον browser και βάζοντας στην address bar το 2.php τότε μπαίνει και εκεί
άρα χωρίς να έχει κάνει Login μπαίνει και στη δεύτερη σελίδα ενώ δεν έπρεπε

αν κλείσω τον browser Και πάω να μπω στη δεύτερη σελίδα τότε ζητάει σωστά να κάνω login

καμιά βοήθεια?
ευχαριστώ

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

login problem

Δημοσίευση από Banavas » 11 Φεβ 2008 12:20

Στη θέση σου θα έκανα το εξής:
Θα έβαζα όλους τους χρήστες σε ένα πίνακα με ένα επιπλέον πεδίο το level. Στο πεδίο αυτό καταχωρείς το επίπεδο του χρήστη όπου μπορείς να έχεις όσα επίπεδα θέλεις.
Σε κάθε σελίδα προσθέτεις έναν έλεγχο του επιπέδου (ένα if δηλαδή) και αν ο χρήστης έχει το απαιτούμενο επίπεδο βλέπει την σελίδα αλοιώς τον κάνεις redirect στην αρχική ή άλλη σελίδα. Έτσι μπορείς να κάνεις και συνδυασμούς για το ποιος θα βλέπει την σελίδα όπως π.χ. αυτή την σελίδα να την βλέπουν όσοι έχουν επίπεδο μεγαλύτερο από 3 (if (level < 4 { exit; } )
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

login problem

Δημοσίευση από vassilism » 11 Φεβ 2008 15:16

Όντως αυτό που σου λέει ο Μάρκος είναι καλύτερο.
Επίσης κοίτα και λίγο εδώ, είναι ένα έτοιμο script που κάνει αυτή την δουλειά.
http://www.eboxnet.gr/index.php/2007/08 ... gin_script

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

login problem

Δημοσίευση από txc » 11 Φεβ 2008 17:11

thank u guys για την βοήθεια, τη βρήκα την άκρη

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

login problem

Δημοσίευση από txc » 13 Φεβ 2008 15:26

κάτι ακόμα παιδιά, λοιπόν με if ελέγχω ένα πεδίο του πίνακα που έχω,
αν είναι η τιμή 2 του εμφανίζω με μήνυμα να πατήσει εδώ για να πάει σε κάποιο Link
αν είναι 3 του εμφανίζω μήνυμα για άλλη σελίδα

πως μπορώ όταν γίνεται ο έλεγχος του if να μην πατάει σε κάποιο Link για να συνδεθεί στη σελίδα αλλά να πηγαίνει αυτόματα από μόνη της?

ευχαριστώ

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

login problem

Δημοσίευση από Banavas » 13 Φεβ 2008 16:41

Κώδικας: Επιλογή όλων

<?php
if &#40;$row&#91;'level'&#93;==1&#41; &#123;
?>		
    <SCRIPT language="JavaScript1.1">
	<!--
	location.replace&#40;"page1.php"&#41;;
	//-->
	</SCRIPT>
<?	
&#125;elseif &#40;$row&#91;'level'&#93;==2&#41; &#123;
?>		
    <SCRIPT language="JavaScript1.1">
	<!--
	location.replace&#40;"page2.php"&#41;;
	//-->
	</SCRIPT>
<?	
&#125;else&#123;

?>		
    <SCRIPT language="JavaScript1.1">
	<!--
	location.replace&#40;"TON_POULO.php"&#41;;
	//-->
	</SCRIPT>
<? &#125; ?>
Happy coding....
Μάρκος
http://lasernet.gr

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

login problem

Δημοσίευση από txc » 13 Φεβ 2008 17:05

αρχηγός

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

login problem

Δημοσίευση από vassilism » 13 Φεβ 2008 17:52

Μια ερώτηση που κολάει λίγο με αυτό.
Έστω ότι έχω:

Κώδικας: Επιλογή όλων

if&#40;isset&#40;$_POST&#91;'submit'&#93;&#41;&#41;
  &#123;
  $name=$_POST&#91;'name'&#93;;
  $query = "UPDATE users SET username='$name' WHERE username='$username'";
  $result = mysql_query&#40;$query&#41; or die&#40;mysql_error&#40;&#41;&#41;; 
&#125;
Πως θα μπορούσε όταν εκτελείτε η if να με πάει στην σελίδα logout.php εκτός της header ("Location: logout.php");
Υπάρχει κάποιος άλλος τρόπος?

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

login problem

Δημοσίευση από Banavas » 13 Φεβ 2008 17:58

Διάβασε δύο μηνύματα παραπάνω......
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

login problem

Δημοσίευση από vassilism » 13 Φεβ 2008 18:05

Sory Μάρκο το είχα διαβάσει αλλά είχα κάνει βλακεία.
Εντάξει τώρα λύθηκε. :victory:

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες