Hoe maak ik dit script sneller???

Status
Niet open voor verdere reacties.
PHP:
if((isset($_COOKIE['adminin']) == FALSE) || (isset($_SESSION['adminin']) == FALSE)) // Kijken of de varablen $_SESSION['adminin'] en $_COOKIE['adminin'] gezet zijn
{
  @header("Location: login.php"); // Doorsturen naar login.php als de waarden niet gezet zijn
  die(); // drop dead
}

if($_COOKIE['adminin'] != "Yes" || $_SESSION['adminin'] != "Yes") // Bekijkt of de waarde van de variable hetzelfde is als 'Yes'
{
  header("login.php"); // Doorsturen naar login.php als de waarden van de variablen niet overeen komen
  die(); // val dood
}

Probeer dat 's :o
 
...SIM-PEL... :)

ik d8 weer eens te moeilijk:p

wat is trouwens het verschil tussen die() en exit() ???
 
Laatst bewerkt:
Tip zodat je niet weer zulke vragen hoeft te stellen: kijk eerst op www.php.net ;)
Uit de functielijst:
die -- Alias of exit()
Description
This function is an alias of exit().
't Zelfde dus, alleen ander naampje :)
 
Ow, ok....thx:o

volgende probleem:

Notice: Undefined index: adminin in /var/www/knkprivate/@test/admin/login.php on line 8

in het volgende script(login.php):

PHP:
<?

error_reporting(E_ALL); 

require("config.php");

@session_start();
if($_COOKIE["adminin"] == "Yes" || $_SESSION["adminin"] == "Yes"){
@header('Location: ./index.php?table=Leden_A');
exit(); 
}

if($_POST["Submit"]){

if($_POST["username"] == $gebruikersnaam && $_POST["password"] == $wachtwoord){
setcookie ("adminin", "Yes",time()+3600);
$_SESSION["adminin"] = "Yes";

if($_SERVER["HTTP_REFERRER"] != NULL){
header("Location: " . $_SERVER["HTTP_REFERRER"]);
exit();
} 

else {
header("Location: ./index.php?table=Leden_A");
exit();
}
} 

else {
$error = "Wachtwoord of Gebruikersnaam onjuist, probeer opnieuw!";
}
}
?>
		
<html>
<head>
<title>Admin Login</title>
</head>
<body>
<form action="<? echo $_SERVER["PHP_SELF"];?>" method="POST" name="adminlogin" id="adminlogin">
<table width="250" border="1" bordercolor="#000000" align="center" cellpadding="0" cellspacing="0">
<tr bgcolor="#000000"> 
<td colspan="2"><div align="center"><font color="#FFFFFF"><strong>Aanmelden:</strong></font></div></td>
</tr>
<tr> 
<td width="45%"><font face="Times New Roman, Times, serif"><strong>Gebruikersnaam:</strong></font></td>
<td width="55%"><input name="username" type="text"  class="input" id="username" size="25"></td>
</tr>
<tr> 
<td><font face="Times New Roman, Times, serif"><strong>Wachtwoord:</strong></font></td>
<td><input name="password" type="password" id="password" size="25"></td>
</tr>
<tr> 
<td colspan="2"><div align="right"><font face="Times New Roman, Times, serif"><strong><input name="Submit" type="submit" id="Submit"  value="Aanmelden"></strong></font> </div></td>
</tr>
</table>
<table width="250" border="0">
<tr>
<td><div align="center"><strong><font color="#FF0000"><? echo $error; ?></font></strong></div></td>
</tr>
</table>
</form>
</html>
</body>

:8-0:


hierbij ook de nieuwe URL...
http://test.whatz.nl/ledenlijst.php?table=Leden_A
Deze server is wat sneller... ;)
 
Laatst bewerkt:
Gebruik isset() om te checken of cookie / sessie 'adminin' wel bestaat.
 
Ok, zover was ik inmiddels al...:p

ik heb dit verzonnen:
PHP:
<?

error_reporting(E_ALL); 

require("config.php");

@session_start();

if(isset($_COOKIE["adminin"]) == TRUE || isset($_SESSION["adminin"]) == TRUE){
if($_COOKIE["adminin"] == "Yes" || $_SESSION["adminin"] == "Yes"){
@header('Location: ./index.php');
exit(); 
}
}

if($_POST["Submit"]){

if($_POST["username"] == $gebruikersnaam && $_POST["password"] == $wachtwoord){
setcookie ("adminin", "Yes",time()+3600);
$_SESSION["adminin"] = "Yes";

if($_SERVER["HTTP_REFERRER"] != NULL){
header("Location: " . $_SERVER["HTTP_REFERRER"]);
exit();
} 

else {
header("Location: ./index.php");
exit();
}
} 

else {
$error = "Wachtwoord of Gebruikersnaam onjuist, probeer opnieuw!";
}
}
?>
		
<html>
<head>
<title>Admin Login</title>
</head>
<body>
<form action="<? echo $_SERVER["PHP_SELF"];?>" method="POST" name="adminlogin" id="adminlogin">
<table width="250" border="1" bordercolor="#000000" align="center" cellpadding="0" cellspacing="0">
<tr bgcolor="#000000"> 
<td colspan="2"><div align="center"><font color="#FFFFFF"><strong>Aanmelden:</strong></font></div></td>
</tr>
<tr> 
<td width="45%"><font face="Times New Roman, Times, serif"><strong>Gebruikersnaam:</strong></font></td>
<td width="55%"><input name="username" type="text"  class="input" id="username" size="25"></td>
</tr>
<tr> 
<td><font face="Times New Roman, Times, serif"><strong>Wachtwoord:</strong></font></td>
<td><input name="password" type="password" id="password" size="25"></td>
</tr>
<tr> 
<td colspan="2"><div align="right"><font face="Times New Roman, Times, serif"><strong><input name="Submit" type="submit" id="Submit"  value="Aanmelden"></strong></font> </div></td>
</tr>
</table>
<table width="250" border="0">
<tr>
<td><div align="center"><strong><font color="#FF0000"><? echo $error; ?></font></strong></div></td>
</tr>
</table>
</form>
</html>
</body>

Check hier de foutmelding...
 
Laatst bewerkt:
utsif* >_<

* Use That Stupid Isset Function >_<

MAW: if($_POST["Submit"]){, wat wil je daar doen :confused:
 
Zo werkt ie :) [edit]niet goed :( [/edit]

PHP:
<?

error_reporting(E_ALL); 

require("config.php");

@session_start();

if(isset($_COOKIE["adminin"]) == TRUE || isset($_SESSION["adminin"]) == TRUE){
if($_COOKIE["adminin"] == "Yes" || $_SESSION["adminin"] == "Yes"){
@header('Location: ./index.php');
exit(); 
}
}

if(isset($_POST["Submit"]) == TRUE){

if(isset($_POST["username"]) == TRUE && isset($_POST["password"]) == TRUE){
if($_POST["username"] == $gebruikersnaam && $_POST["password"] == $wachtwoord){
setcookie ("adminin", "Yes",time()+3600);
$_SESSION["adminin"] = "Yes";

if(isset($_SERVER["HTTP_REFERRER"]) == TRUE){
@header("Location: " . $_SERVER["HTTP_REFERRER"]);
exit();
} 

else {
@header("Location: ./index.php");
exit();
}
} 
}

else {
$error = "Wachtwoord of Gebruikersnaam onjuist, probeer opnieuw!";
}
}
?>

<form action="<? echo $_SERVER["PHP_SELF"];?>" method="POST" name="adminlogin" id="adminlogin">
<table width="250" border="1" bordercolor="#000000" align="center" cellpadding="0" cellspacing="0">
<tr bgcolor="#000000"> 
<td colspan="2"><div align="center"><font color="#FFFFFF"><strong>Aanmelden:</strong></font></div></td>
</tr>
<tr> 
<td width="45%"><font face="Times New Roman, Times, serif"><strong>Gebruikersnaam:</strong></font></td>
<td width="55%"><input name="username" type="text"  class="input" id="username" size="25"></td>
</tr>
<tr> 
<td><font face="Times New Roman, Times, serif"><strong>Wachtwoord:</strong></font></td>
<td><input name="password" type="password" id="password" size="25"></td>
</tr>
<tr> 
<td colspan="2"><div align="right"><font face="Times New Roman, Times, serif"><strong><input name="Submit" type="submit" id="Submit"  value="Aanmelden"></strong></font> </div></td>
</tr>
</table>
<table width="250" border="0">
<tr>
<td><div align="center"><strong><font color="#FF0000">
<? 
if(isset($error) == TRUE){
echo $error; 
}
?>
</font></strong></div></td>
</tr>
</table>
</form>

Als je naar de login page en je logt in/bent ingelogt , geen probleem...
maar als je bent ingelogt , sluit het venster, opent een nieuw venster en gaat direct naar index page foute boel!!!
 
Laatst bewerkt:
ok, hier raak je me kwijt...

als je bent ingelogt, sluit het venster en klikt op de link in het hierbovenstaande bericht, geen probleem

als je bent ingelogt, sluit het venster en kopieerd de snelkoppeling van de link in het hierbovenstaande bericht en plakt deze in het nieuw geopende venster, TROUBLES

als je niet bent ingelogt heb je in beide gevallen het probleem NIET.

iets met referers??? ik ben hier even de kluts kwijt:8-0:
 
PHP:
if(isset($_COOKIE["adminin"]) == TRUE || isset($_SESSION["adminin"]) == TRUE){
if($_COOKIE["adminin"] == "Yes" || $_SESSION["adminin"] == "Yes"){
@header('Location: ./index.php');
exit(); 
}
Gebruik je niet goed :)
Eerst controleer je of de cookie 'adminin' bestaat OF de sessie 'adminin'. Vervolgens check je of de cookie 'adminin' gelijk is aan 'Yes' OF de sessie 'adminin' gelijk is aan 'Yes'.
Hoe kun je zowel de cookie als de sessie vergelijken met een waarde als ze niet allebei hoeven te bestaan ? Dat levert een error op ;)
Je moet een situatie maken waarbij je cookies en sessies van elkaar scheid.
PHP:
if(isset($_COOKIE["adminin"]) == TRUE)
{
  if($_COOKIE["adminin"] == $wachtwoord)
  {
  // [...]
  }
}
elseif(isset($_SESSION["adminin"]) == TRUE)
{
  if($_SESSION["adminin"] == $wachtwoord)
  {
  // [...]
  }
}
Ook niet meer checken of ze de waarde 'Yes' hebben, die beveiliging is zo gekraakt. Vul hier het adminwachtwoord in. Dit is veel minder snel te raden.

Succes :thumb:
 
Ok, is nu gescheiden:...
script is nu als volgt, maar merk weinig verschil...(in de vorige versie kreeg ik overigens geen foutmeldingen)

PHP:
<?

error_reporting(E_ALL); 

require("config.php");

@session_start();

if(isset($_COOKIE["adminin"]) == TRUE) {
if($_COOKIE["adminin"] == "Yes") {
@header('Location: ./index.php');
exit(); 
}
}
elseif(isset($_SESSION["adminin"]) == TRUE){
if($_SESSION["adminin"] == "Yes"){
@header('Location: ./index.php');
exit(); 
}
}

if(isset($_POST["Submit"]) == TRUE){

if(isset($_POST["username"]) == TRUE && isset($_POST["password"]) == TRUE){
if($_POST["username"] == $gebruikersnaam && $_POST["password"] == $wachtwoord){
setcookie ("adminin", "Yes",time()+3600);
$_SESSION["adminin"] = "Yes";

if(isset($_SERVER["HTTP_REFERRER"]) == TRUE){
@header("Location: " . $_SERVER["HTTP_REFERRER"]);
exit();
} 

else {
@header("Location: ./index.php");
exit();
}
} 
}

else {
$error = "Wachtwoord of Gebruikersnaam onjuist, probeer opnieuw!";
}
}
?>

<form action="<? echo $_SERVER["PHP_SELF"];?>" method="POST" name="adminlogin" id="adminlogin">
<table width="250" border="1" bordercolor="#000000" align="center" cellpadding="0" cellspacing="0">
<tr bgcolor="#000000"> 
<td colspan="2"><div align="center"><font color="#FFFFFF"><strong>Aanmelden:</strong></font></div></td>
</tr>
<tr> 
<td width="45%"><font face="Times New Roman, Times, serif"><strong>Gebruikersnaam:</strong></font></td>
<td width="55%"><input name="username" type="text"  class="input" id="username" size="25"></td>
</tr>
<tr> 
<td><font face="Times New Roman, Times, serif"><strong>Wachtwoord:</strong></font></td>
<td><input name="password" type="password" id="password" size="25"></td>
</tr>
<tr> 
<td colspan="2"><div align="right"><font face="Times New Roman, Times, serif"><strong><input name="Submit" type="submit" id="Submit"  value="Aanmelden"></strong></font> </div></td>
</tr>
</table>
<table width="250" border="0">
<tr>
<td><div align="center"><strong><font color="#FF0000">
<? 
if(isset($error) == TRUE){
echo $error; 
}
?>
</font></strong></div></td>
</tr>
</table>
</form>
En dit staat er boven de aan de pagina's die beveiligd moeten worden:
PHP:
@session_start();
if(isset($_COOKIE["adminin"]) == FALSE || isset($_SESSION["adminin"]) == FALSE){
@header("Location: login.php");
exit();
}

if($_COOKIE["adminin"] != "Yes" || $_SESSION["adminin"] != "Yes"){
@header("Location: login.php");
exit();
}

dus nogmaals, ik krijg geen foutmeldingen, maar het probleem, dat ik in mijn vorige post beschrijf, is er nog steeds.... :(

bovendien krijg ik, als ik de gebruikersnaam of het wachtwoord verkeerd intype, niet de melding "wachtwoord of........"

hints???:rolleyes:
 
Laatst bewerkt:
OPGELOST door:
PHP:
@session_start();
if(isset($_COOKIE["adminin"]) == FALSE || isset($_SESSION["adminin"]) == FALSE){
@header("Location: login.php");
exit();
}

if($_COOKIE["adminin"] != "Yes" || $_SESSION["adminin"] != "Yes"){
@header("Location: login.php");
exit();
}
te vervangen voor:
PHP:
@session_start();
if(isset($_COOKIE["adminin"]) == FALSE && isset($_SESSION["adminin"]) == FALSE){
@header("Location: login.php");
exit();
}

if($_COOKIE["adminin"] != "Yes" && $_SESSION["adminin"] != "Yes"){
@header("Location: login.php");
exit();
}

Laatste probleem:
als ik login of pass verkeerd type , wordt de melding niet weergegeven...

hints please :p
 
laatste probleem ook gevonden.... ik had een '}' iets te vroeg geplaatst...

hier het goede script:

PHP:
<?

error_reporting(E_ALL); 

require("config.php");

@session_start();

if(isset($_COOKIE["adminin"]) == TRUE){
if($_COOKIE["adminin"] == "Yes") {
@header('Location: ./index.php');
exit(); 
}
}
elseif(isset($_SESSION["adminin"]) == TRUE){
if($_SESSION["adminin"] == "Yes"){
@header('Location: ./index.php');
exit(); 
}
}

if(isset($_POST["Submit"]) == TRUE){

if(isset($_POST["username"]) == TRUE && isset($_POST["password"]) == TRUE){

if($_POST["username"] == $gebruikersnaam && $_POST["password"] == $wachtwoord){
setcookie ("adminin", "Yes",time()+3600);
$_SESSION["adminin"] = "Yes";

if(isset($_SERVER["HTTP_REFERRER"]) == TRUE){
@header("Location: " . $_SERVER["HTTP_REFERRER"]);
exit();
}

else {
@header("Location: ./index.php");
exit();
}
} 

else {
$error = "Wachtwoord of Gebruikersnaam onjuist, probeer opnieuw!";
}
}
}
?>

<form action="<? echo $_SERVER["PHP_SELF"];?>" method="POST" name="adminlogin" id="adminlogin">
<table width="250" border="1" bordercolor="#000000" align="center" cellpadding="0" cellspacing="0">
<tr bgcolor="#000000"> 
<td colspan="2"><div align="center"><font color="#FFFFFF"><strong>Aanmelden:</strong></font></div></td>
</tr>
<tr> 
<td width="45%"><font face="Times New Roman, Times, serif"><strong>Gebruikersnaam:</strong></font></td>
<td width="55%"><input name="username" type="text"  class="input" id="username" size="25"></td>
</tr>
<tr> 
<td><font face="Times New Roman, Times, serif"><strong>Wachtwoord:</strong></font></td>
<td><input name="password" type="password" id="password" size="25"></td>
</tr>
<tr> 
<td colspan="2"><div align="right"><font face="Times New Roman, Times, serif"><strong><input name="Submit" type="submit" id="Submit"  value="Aanmelden"></strong></font> </div></td>
</tr>
</table>
<table width="250" border="0">
<tr>
<td><div align="center"><strong><font color="#FF0000">
<? 
if(isset($error) == TRUE){
echo $error; 
}
?>
</font></strong></div></td>
</tr>
</table>
</form>

en hier het logoff scriptje:
PHP:
<?
	session_start();
	setcookie ('adminin','');
	setcookie ('adminin' , '',time()-43200);
	$_SESSION = array();
	session_destroy();
	header('Location: login.php' );
	exit(); 
?>

zal nu alleen nog even ipv de waarde yes de login en wachtwoord meegeven in de sessie en cookie... maar daar kom ik wel uit...

zijn beide scripts verder nog voor verbetering vatbaar???

(btw: de server van helpmij draait overuren met topic zoals deze :p)
 
Laatst bewerkt:
Wij op helpmij, hebben een Bewerk knop :)

En als je nu eerst zelf een wat probeert, lukt en dan niet. Dan pas posten. Je doet het nu elke keer omgedraait

Maar goed, het werkt :thumb:
 
das waar, ik ben te ongeduldig...

lukt het niet dan post ik het, maar ondertussen ben ik weer verder aan het klooien...

je heb helemaal gelijk...;)

Op naar het volgende script :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan