jorre13 Posted August 22, 2007 Share Posted August 22, 2007 I never get my variable 'response' after i submit my values Anybody an idea how to solve this problem?? <?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 'Ongeldige gebruikersnaam en/of wachtwoord1'; } else { $rij = mysql_fetch_assoc( $result ); // Response genereren en vergelijken met wat er opgestuurd is if( sha1( $rij['password'] . ':' . $_SESSION['challenge'] ) != $_POST['response'] ) { echo "1: ". sha1( $rij['password'] . ':' . $_SESSION['challenge']); echo "<br>"; echo "2:". $_POST['response']; echo "<br>"; // 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 'Ongeldige gebruikersnaam en/of wachtwoord2'; } else { // Gebruiker succesvol ingelogd, gegevens opslaan in sessie enzo ... echo 'Yay ! Succesvol ingelogd !'; } } } // 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( hex_sha1( document.getElementById( 'password' ).value ) + ":" + document.getElementById( 'challenge' ).value ); document.getElementById( 'password' ).value = ""; document.getElementById( 'challenge' ).value = ""; return true; } //--> </script> <form action="login.php" method="post" onsubmit="return createResponse();"> <div> Username: <input type="text" name="username"> Wachtwoord: <input type="password" id="password"> <input type="hidden" id="challenge" value="<?php echo $challenge; ?>"> <input type="hidden" name="response" id="response" value=""> <input type="submit" value="Log in !"> </div> </form> Link to comment https://forums.phpfreaks.com/topic/66158-variable-not-posted/ Share on other sites More sharing options...
tarun Posted August 22, 2007 Share Posted August 22, 2007 Advice: Nobody Likes To Look Through Long Sections Of Code Link to comment https://forums.phpfreaks.com/topic/66158-variable-not-posted/#findComment-330926 Share on other sites More sharing options...
jorre13 Posted August 22, 2007 Author Share Posted August 22, 2007 i would like to reduce my code but i didn't know where the error could be. possible it is in this section: <script type="text/javascript" src="sha.js"></script> <script type="text/javascript"> <!-- function createResponse() { document.getElementById( 'response' ).value = hex_sha1( hex_sha1( document.getElementById( 'password' ).value ) + ":" + document.getElementById( 'challenge' ).value ); document.getElementById( 'password' ).value = ""; document.getElementById( 'challenge' ).value = ""; return true; } //--> </script> <form action="login.php" method="post" onsubmit="return createResponse();"> <div> Username: <input type="text" name="username"> Wachtwoord: <input type="password" id="password"> <input type="hidden" id="challenge" value="<?php echo $challenge; ?>"> <input type="hidden" name="response" id="response" value=""> <input type="submit" value="Log in !"> </div> </form> Link to comment https://forums.phpfreaks.com/topic/66158-variable-not-posted/#findComment-330931 Share on other sites More sharing options...
tarun Posted August 22, 2007 Share Posted August 22, 2007 Sorry I Dont Really Understand Your Problem Either Please Elaborate In Detail Link to comment https://forums.phpfreaks.com/topic/66158-variable-not-posted/#findComment-330941 Share on other sites More sharing options...
jorre13 Posted August 22, 2007 Author Share Posted August 22, 2007 the variable 'response' isn't available after I post the form. I think the problem is in the javascript where i make the variable. Link to comment https://forums.phpfreaks.com/topic/66158-variable-not-posted/#findComment-330942 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.