ik heb nu het script van geloof ik aar...

en daar stel je als je inlogt bijvoorbeeld 5 minuten in...
dan log je in...
maar na daadwerkelijk 5 minuten logt hij uit...
is eigelijk goed...
maar eigelijk wil ik het hebben na 5 minuten inactiviteit...
dus iedere keer als er geklikt wordt dat het dan geupdate wordt...

hoe kan ik dit gemakelijk veranderen?

hier een stukje code:


// Start here the login action, and make the random hash
if(($_SERVER['REQUEST_METHOD'] == "POST") && ($_POST['login'])) {
     $selectleden = mysql_query("SELECT * FROM $ledentabel WHERE username = '".sqlsafe($_POST['username'])."' AND password = '".sqlsafe(md5($_POST['password']))."'");
     if(mysql_num_rows($selectleden)) {
                                      // Ingelogd
									  $ip=$_SERVER['REMOTE_ADDR'];
                                      $hash = md5(uniqid(rand(), true));
                                      $get_id = mysql_query("SELECT id FROM ".$ledentabel." WHERE username = '".sqlsafe($_POST['username'])."' AND password = '".sqlsafe(md5($_POST['password']))."'");
                                      mysql_query("UPDATE leden SET active=1 WHERE username='".sqlsafe($_POST['username'])."'"); 
									  $fetch_id = mysql_fetch_assoc($get_id);
                                      $insert_session = mysql_query("INSERT INTO sessions (id, userid, hash, logintime, ip) VALUES ('','".$fetch_id['id']."','".$hash."',NOW(), '".$ip."')");

                                      // for debugging:
                                      #$bericht = "Ingelogd met hash: ".$hash." En je hebt id-nummer:".$fetch_id['id'];


                                      if ($insert_session) {
                                         setcookie ("id", $fetch_id['id'],time()+$_POST['sessiontime']);
                                         setcookie ("hash", $hash,time()+$_POST['sessiontime']);
                                         header('location:menu.php');
                                                           } else {
                                                           echo "Fout in de query: ".mysql_error();
                                                           exit();
                                                           }
                                      }  else {
                                      // Foute pass
                                      $bericht = "<b>Je inloggegevens komen niet overeen met wat in de database staan.</b>";
                                      }

Incarnez,

Je geeft je functie niks mee.
'key' bestaat dus ook niet. Je kan dus nooit 'key' daar gebruiken op controle.
je kunt hiervoor de 'keyCode' van de 'event' (keydown?) gebruiken.

Lees hiervoor bijvoorbeeld: http://www.ryancooper.com/resources/keycode.asp
juist die had ik nodig,
bedankt voor de hulp,
hij update nu alleen bij enter...

maar hij werkt alleen in chroom en firefox,
is hier ook iets voor?

vast wel, maar daarvoor moet eerst duidelijk zijn waar het bij IE fout gaat, is er niet een soort foutconsole voor IE toevallig?

anders zou je wss alles in try catch statements moeten zetten (ondersteund javascript dat eigenlijk wel?) en anders maar overal if'jes omheen zetten
Gebruik FF om te testen op JS fouten.
Als die geen fouten geeft, dan testen in IE en anderen.
ik heb firefox gebruikt,
en daar geeft hij aan:

e is not defined

bij de foutconsole van firefox,

hier stukje code:


<script type="text/javascript" language="javascript">
<!--

document.onkeydown = checkKeycode
function checkKeycode(e) {
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
if(keycode == 13){
	
var xmlhttp = new XMLHttpRequest();
	xmlhttp.open("GET", "updatetime.php", false);
	xmlhttp.send(null);;
}
}

-->
</script> 
	
	Omschrijving:<br>
		<textarea name="Omschrijving" cols=90 rows=20 onkeypress="return checkKeycode(e);"></textarea><br>
		<input type="hidden" name="naam" value="<?=$zoeknaam?>">
		<input type="submit" name="verzenden" value="Verzenden!">
	</font>

</form>
Je copy paste dus de hele code. Zo werkt het helaas niet.

Pas je code aan voor joun applicatie (hij werkt alleen op enter)...
 if(keycode == 13){
(joh)

Verder: Je controleert nu je HELE document. als er WAAR DAN OOK iets gedrukt word vuurt die de functie af.

Zet de event dus op de textarea.

Daarnaast zou je dit kunnen proberen;


function checkKeycode() {
var keycode;
if (window.event) keycode = window.event.keyCode;
if (keycode!= null) { //die null weet ik niet zeker. moet iig controle zijn of keycode bestaat.
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", "updatetime.php", false);
    xmlhttp.send(null);
}
}




...

ik weet dath ij alleen op enter werkt,
dit is ook de bedoeling,

enter werkt beter dan a...

overigens...
in de pagina zit maar 1 tekstveld dus dat maakt niet erg veel uit...

heb jou code eens geprobeerd maar hij werkt niet...
doet helemaal neits,
geen error,
maar voert ook niets uit
heb geprobeerd zoals je zij:

dit is nu codE:


document.onkeydown = checkKeycode
function checkKeycode(e) {
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
if(keycode == 13){
  try
  {
  // Firefox code
    var xmlhttp = new XMLHttpRequest();
	xmlhttp.open("GET", "updatetime.php", false);
	xmlhttp.send(null);
  }
  catch(e)
  {
  // IE code
	var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	xmlhttp.open("GET", "updatetime.php", false);
	xmlhttp.send(null);
  }


}
}



maar werkt nog niet..,.
firefox werkt hij,
crhoom ook,
ie8 niet...

du denk dat dat stukje code ook nog niet juist is...

Open IE8. ga naar je website. Klik F12.
Dit is het ontwikkelhulp programma voor Internet explorer. Hiermee moet je de fouten kunnen opsporen die specifiek zijn voor ie8.

IE is een stuk gevoeliger wat betreft javascript. Aangezien jij nog steeds hetzelfde gebruikt (e). Zal hij waarschijnlijk daarop eruit knallen.

Daarnaast, mijn code is niet perfect I know. Ik kan namenlijk niet je website zien. Ik doe suggesties en die moet je proberen te implementeren. niet 1op1 overnemen.

FireFox/Chrome/Opera/Safari zullen (meestal) alleen doen op het moment dat 1 van de 4 werkt.

IE6, 7, 8 moet je alle drie apart controleren.
die geeft geen fout aan met nieuwe code...

maar internet explorer ondersteunt kennelijk niet xmlhttprequest...

vandaar dat daar iets anders voor gevonden dient te worden...

Reageren