Ik zou graag een login maken die in iedere site toepasbaar is;
het moet zo worden zoals je een Joomla template maakt, dat het door een include kan ingevoegd worden, en het moet flexibel zijn.
Nu ben ik bezig met mn database in te stellen, maar nu zit ik bij het probleem dat ik users, moderators, admins, superadmins wil
nu heb ik een tabel authorization, maar ik denk dat naar veiligheid toe die auth niet zomaar kan meegezonden worden op de manier van: ... .php?authorization=1
mn passwords worden met MD5 ge-encript, maar voor zoiets als ik wil is 32 tekens toch wel te lang.
Mijn vraag is: welke functie moet ik gebruiken om leden op een veilige manier een auth. mee te geven zodat er bepaalde delen per pagina extra worden geïnclude?
Het keyword public mag alleen binnen een class voorkomen.
hoe moet ik het dan doen dat het werkt? Het is mij onduidelijk
als ik nu

<?php
class MyDB {
	protected $dbh; //connection
	protected $query; //query result
		public function db_connect() {
			$this -> dbh = mysql_connect(HOST, USERNAME, PASSWORD) or die(mysql_error());
			mysql_selest_db(DATABASE) or die(mysql_error());
			return "nice!";
		}
		
		public function db_close() {
			mysql_close($this->dbh);
		}
}
?>

komt er weer een fout:
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in
Wat doe ik nu weer verkeerd?
Luister je wel je mag het woord public nog niet gebruiken dus niet: public function maar gewoon function gebruiken.
Ik wil niet zeveren, maar:
Jan Koehoorn schreef op 27.06.2007 15:12
Het keyword public mag alleen binnen een class voorkomen.

Dit staat in een klas...

maar laat ook maar... Ik heb een scriptje gevonden op het internet maar op de een of andere manier werkt het niet zoals ik het wil, als je nu probeert in te loggen op http://www.onlinetutorials.be dan keert het login-formpje gewoon terug

login.php:

<?
class login {
               
        var $ingelogd;
     	/*login functie*/
        function login() { 
            $this->ingelogd = false; //default uitgelogd
            session_start(); //start een sessie
			if(isset($_POST['loguit'])) $this->loguit();
       
			elseif(isset($_SESSION['count'])&&isset($_SESSION['user_ID'])&&isset($_SESSION['username'])) {
        		$_SESSION['count']++; //als sessie al bestaat, tel aantal pagina's +1
        		$this->ingelogd = true; //ingelogd
			} 

   			elseif(isset($_COOKIE['user_ID'])&&isset($_COOKIE['pass_hash'])) {
        		$sql = "id = ".(int)$_COOKIE['user_ID']."  AND password = '".addslashes($_COOKIE['pass_hash'])."'";
         		$controle = $this->controleer_paswoord($sql);
         		$this->ingelogd = $controle;
   			} 
		
		  	if(isset($_POST['username'])&&isset($_POST['password'])&&!$this->ingelogd) {   //geen elseif, wordt dan sobieso uitgevoerd, ook als je last hebt met verkeerde info in cookies en via form wilt inloggen
     			$sql = "username = '".addslashes($_POST['username'])."' AND password = '".md5(addslashes($_POST['password']))."'";
     			$controle = $this->controleer_paswoord($sql);
     			$this->ingelogd = $controle;
		  	}

          	if($this->ingelogd) {
              	setcookie ("user_ID",$_SESSION['member_id'],time() + 3600*24*30,'/','http://www.onlinetutorials.be');
             	setcookie ("pass_hash",md5($_POST['pass']),time() + 3600*24*30,'/','http://www.onlinetutorials.be');
          	}    
		}
        /*controleert het wachtwoord*/   
		function controleer_paswoord($sql2) {
          require('db_connect.php'); //script voor databaseconnect ( mysql_connect en mysql_select_db)
          $sql = "SELECT username,user_ID FROM user WHERE ".$sql2; //nu volledige query
          $result = mysql_query($sql) or die (mysql_error());
            if($row = mysql_fetch_object($result)) {
               $_SESSION['count']=1;
               $_SESSION['user_ID']=$row->user_ID;
               $_SESSION['username']=$row->username;
               return true; //ingelogd
               }
            else return false; //niet ingelogd
       }//end function                    
           
        function is_ingelogd() {        
			return $this->ingelogd;
        }//end function
       
        function get_output() {
            if($this->is_ingelogd) return 'U bent ingelogd!';
            else include ('includes/login/login_form.php');
        }//end function
           
  		function loguit() {
     		session_unset();
     		session_destroy();
     		setcookie ("user_ID", "", time() - 3600,"/", "jouw_domein.be");
     		setcookie ("pass_hash", "", time() - 3600,"/", "jouw_domein.be");
     		$this->ingelogd = false;
  		} //end function 
      
}//end class

$bezoeker = new login();

?>
Ik weet niet of het de oorzaak is, maar er staat wel een aantal fouten in dit script. Overal waar nu een enkele & staat, hoort && te staan.
heb ik aangepast, maar is nog steeds hetzelfde...

Reageren