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> Quote 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 Quote 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> Quote 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 Quote 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. Quote Link to comment https://forums.phpfreaks.com/topic/66158-variable-not-posted/#findComment-330942 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.