Jump to content

[SOLVED] problem loading page


jorre13

Recommended Posts

In firefox i get following error:

 

The page isn't redirecting properly

   

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

    *  This problem can sometimes be caused by disabling or refusing to accept

          cookies.

 

in IE i get this:

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10048) in C:\Site\new_site_v2\includes\connect.php on line 8

Failed to connect to database.

 

<?php 
ini_set('display_errors', 1); // 0 = uit, 1 = aan 
error_reporting(E_ALL); 

session_start(); 

// Session hijacking voorkomen (dit op elke pagina waarvoor men ingelogd hoort te zijn doen !) 
if( isset( $_SESSION['huidig_ip'] ) AND $_SESSION['huidig_ip'] != $_SERVER['REMOTE_ADDR'] ) 
{ 
  // IP-adres waarmee paginarequest gemaakt wordt is niet gelijk aan IP-adres in sessie: sessie verwijderen. 
  // Geen melding tonen whatsoever, dit is waarschijnlijk een hacker die bezig is. 
  session_unset(); 
  session_destroy(); 
  die(); 
} 

//@mysql_connect( 'localhost', '...', '...' ) or trigger_error( mysql_error() ); 
//@mysql_select_db( '...' ) or trigger_error( mysql_error() ); 
include_once $_SERVER["DOCUMENT_ROOT"]."/new_site_v2/includes/connect.php";


// Deze functie genereert een willekeurige string 
function genereer_string( $lengte ) 
{ 
  srand( ( (double) microtime() ) * 1000000 ); 
  $string = ''; 

  // De parser doet irri met zoveel tekens zonder spaties achter elkaar, dus verdeel ik dit ff over meerdere regels 
  $tekens = 'abcdefghijklmnopqrstuvwxyz'; 
  $tekens .= 'ABCDEFGHIJKLMNOPQRSTUWXYZ'; 
  $tekens .= '01234567890123456789'; 

  for( $i = 0; $i < $lengte; $i++ ) 
  { 
    $string .= $tekens{ rand( 0, ( strlen( $tekens ) - 1 ) ) }; 
  } 

  return $string; 
} 

if( isset( $_POST['username'], $_POST['response'], $_SESSION['challenge'] ) ) 
{ 

  $query = "SELECT * FROM tabel WHERE username = '" . $_POST['username'] . "' LIMIT 0,1"; 
  $result = mysql_query( $query ) or trigger_error( mysql_error() ); 
  if( mysql_num_rows( $result ) == 0 ) 
  { 
    echo '<div id="error">your username/password isn\'t valid!</div'; 
  } 
  else 
  { 
    $rij = mysql_fetch_assoc( $result ); 

    // Response genereren en vergelijken met wat er opgestuurd is 
    if( sha1( $rij['password'] . ':' . $_SESSION['challenge'] ) != $_POST['response'] ) 
    { 
      // Exact dezelfde melding tonen als wanneer de gebruikersnaam niet in de tabel gevonden kon worden. 
      // Hier een andere melding tonen zou de hacker alleen maar inzicht geven over in hoeverre zijn hackpogingen werken. 
    	echo '<div id="error">your username/password isn\'t valid!</div'; 
    } 
    else 
    { 
      // Gebruiker succesvol ingelogd, gegevens opslaan in sessie enzo ... 
      //echo 'Yay ! Succesvol ingelogd !'; 
  	//schrijven in DB, ip en tijd
	$sessie_input= sha1('********');
	$_SESSION['login_ok'] = $sessie_input;
	//doorverwijzen naar index-pagina
	$link= "index.php";
	header("location: ".$link);
	exit();
    } 
  } 
} 

// Ik check hier pas of het IP-adres al in de sessie staat en niet bij het session hijacking gedeelte. 
// Dit omdat het IP-adres in de sessie moet staan VOORDAT er een postback gedaan wordt. 
// Nou is het in dit kleine scriptje zo dat ik het daar wel neer had kunnen zetten, omdat de challenge ook pas aan het einde 
// van het PHP deel gegenereerd wordt, maar ik weet niet hoe jij dit script exact gaat implementeren, en ik wil je er wel ff 
// op attenderen dat je erop moet letten dat een postback niet geldig is wanneer er geen IP-adres / challenge in de sessie 
// staat. 
if( isset( $_SESSION['huidig_ip'] ) == FALSE ) 
{ 
  $_SESSION['huidig_ip'] = $_SERVER['REMOTE_ADDR']; 
} 

// Elke keer dat de pagina aangevraagd is, of er nou een postback gedaan is of niet, de challenge opnieuw genereren ! 
$challenge = genereer_string( 255 ); 
$_SESSION['challenge'] = $challenge; 
?> 
<script type="text/javascript" src="sha.js"></script> 

<script type="text/javascript"> 

function createResponse() 
{ 
  document.getElementById('response').value = hex_sha1(  document.getElementById('password').value + ":" + document.getElementById('challenge').value ); 
  document.getElementById('password').value = ""; 
  document.getElementById('challenge').value = ""; 
  return true; 
} 

</script> 

<html>
<head>
<title>login</title>


</head>

<?php
include_once $_SERVER["DOCUMENT_ROOT"]."/new_site_v2/admin/css/css.php";
?>
<body>
<div id="login">
<form action="login.php" method="post" onSubmit="return createResponse();"> 
<table>
	<tr>
		<td colspan="2">
			<img src="../images/login.png" />
		</td>
	</tr>
	<tr>
		<td align="center"><img src="../images/users.png" height="50" alt="username" title="username"/>   </td>
		<td align="center"><input type="text" name="username"></td>
	</tr>
	<tr>
		<td align="center"><img src="../images/security.png" height="50" alt="password" title="password"/>  </td>
		<td align="center"> <input type="password" id="password"> </td>
	</tr>
	<tr><td colspan="2" align="center"><input type="hidden" id="challenge" value="<?php echo $challenge; ?>"> 
	<input type="hidden" name="response" id="response" value=""> 
	<input type="submit" value="Log in !"> </td>
	</tr>
  </table>
</form> 
</div>
</center>
</body>
</html>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.