time update

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Jaap V

Jaap V

27/01/2010 09:51:00
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// 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>";
                                      }
 
PHP hulp

PHP hulp

24/04/2024 12:23:04
 
John D

John D

27/01/2010 10:03:00
Quote Anchor link
Als je bij iedere klik je MySQL database gaat updaten en je hebt op een bepaald moment bijvoorbeeld 250 users actief dan daalt je performance enorm. actief/inactief in de gaten houden kan je beter met session doen.
 
Jaap V

Jaap V

27/01/2010 10:17:00
Quote Anchor link
dit is een site voor een bedrijfje hier...
er werkt op het moment maar 4 man personeel + ik de stagaire...

dit bedrijf wordt niet zo gigantisch dat het 250 leden gaat beschikken...
enigste die website gaan gebruiken voorlopig die 4 man...

dus denk niet dat die update zon probleem mag maken?
 
Jaap V

Jaap V

27/01/2010 15:13:00
Quote Anchor link
updaten enzo lukt wel gewoon...

maar nu kom ik erachter dat ze het over logboeken bedoelen...

er worden dus ooit logboeken getypt wat wel is langer duurt dan 5 minuten...
nu wil ik dus eigelijk dat er na het hele verhaal typen niet komt te staan je bent niet ingelogt en je zo alles kwijt bent...

ik wil dus eigelijk dat zodra er een toets aangeslagen wordt,
de tijd geupdate wordt....

hier vertellen ze mij dat ik dit moet gaan doen met javascript...
maar waar moeti k zoeken?
namelijk totaal geen ervaring met javascript...
 
Johan Dam

Johan Dam

27/01/2010 15:20:00
Quote Anchor link
ajax, daar zal je op moeten zoeken,

met javascript vang je de toetsen dan op en die stuur je naar een php script dat vervolgens de database gaat updaten,

maar ik hoop wel dat jullie daar niet kunnen blindtypen want 2 mensen die stevig doortypen en bij iedere toets de database updaten....

miss valt het mee maar dat kan best zweten worden voor die server

controle met de sessie van php zal dan zeker beter gaan werken
Gewijzigd op 01/01/1970 01:00:00 door Johan Dam
 
Jaap V

Jaap V

28/01/2010 08:57:00
Quote Anchor link
hmm,
ik heb wat gezocht maar kon er zo niet uitkomen...

weet iemand wat precieser uit te leggen hoe ik dit het beste kan aanpakken?

en mij er mischien mee op weg helpen?
 
Johan Dam

Johan Dam

28/01/2010 09:07:00
Quote Anchor link
Gezien ik op het werk ben heb k niet de tijd om je een heel uitgebreid voorbeeld te geven, maar wel snelle tip,

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
function update_tijd(){
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.open("GET", "het_bestand_dat_gaat_updaten.php", false);
  xmlhttp.send(null);
}


hiermee stuur je de gebruiker door naar een ander bestand zonder dat een pagina refreshed word, je zou dit dus in een onkeydown() javascript functie moeten gooien om de tijd te updaten elke keer wann er een toets ingedrukt word, hoe je die onkeydown nu precies gebruikt ben ik ff kwijt maar dat is vast wel te googlen.
 
Jaap V

Jaap V

28/01/2010 10:09:00
Quote Anchor link
oke alvast bedankt voor de tip...

ik ga even proberen zo... :)
 
Jaap V

Jaap V

28/01/2010 10:50:00
Quote Anchor link
ik heb nu dit:

bovenaan de add_log.php wordt functions.php geinclude:
bijna op einde staat het tekstveld waar het allemaal om draait,
deze moet geupdate worden zodra er in gewerkt wordt...

(heb de niet nodige code er tusseuit gehaald.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
include "functions.php";

Omschrijving:<br>
        <
TEXTAREA NAME="Omschrijving" COLS=40 ROWS=6 onkeypress="onkeypress()"></TEXTAREA><br>
        <
input type="hidden" name="naam" value="<?=$zoeknaam?>">
        <
input type="submit" name="verzenden" value="Verzenden!">
?>


en hier het stukje uit mijn functions.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
function onkeypress(){

$id      = $get_userdata['id'];
mysql_query("UPDATE sessions SET logintime = NOW() WHERE id=$id");

}

?>



als ik deze nu ga testen,
zegt hij bij iedere toetsaanslag...

stack overflow at line: 62

maar weet niet over welk document dit gaat?

regel 62 van add_log.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
[/code]

regel 62 van functions.php:
[
code]
// Data uit leden-tabel oproepen ($get_userdata['username'], $get_userdata['warnings']
[/code]
Gewijzigd op 01/01/1970 01:00:00 door Jaap V
 
Johan Dam

Johan Dam

28/01/2010 11:17:00
Quote Anchor link
de functie onkeypress die je in de textarea gebruikt verwijst naar een javascript functie,

in die javascript functie zou je de javascript die ik eerder gaf moeten gebruiken om naar een php script te gaan die vervolgens de mysql_query uitvoert,

wat de stack overflow betekend zou ik zo 1 2 3 niet weten, als je bovenstaande toegevoegd hebt en de fout er nog steeds is kan je miss de omringende regels code posten?
 
- Jim  -

- Jim -

28/01/2010 11:25:00
Quote Anchor link
nosferatu schreef op 28.01.2010 11:17:
...
wat de stack overflow betekend zou ik zo 1 2 3 niet weten, als je bovenstaande toegevoegd hebt en de fout er nog steeds is kan je miss de omringende regels code posten?


Stackoverflow is kortgezegd dat je over de gereserveerde ruimte van je stack gaat.

Verwijst vaak naar een infinite (soms recursive (zichzelf-aansprekende)) loop.
Waarschijnlijk laat je 1 of meerdere functies elkaar aanspreken.
 
Jaap V

Jaap V

28/01/2010 11:35:00
Quote Anchor link
dit stukje code heb ik al geprobeerd:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
function update_tijd(){
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.open("GET", "het_bestand_dat_gaat_updaten.php", false);
  xmlhttp.send(null);
}


maar op alles wat ik wijzig krijg ik errors...

dat is dus wel wat er aangepast moet worden?
anybody can help me?
 
- Jim  -

- Jim -

28/01/2010 11:38:00
Quote Anchor link
Als je de bestanden die je gebruikt post, dan kunnen we meer zien...
 
Jaap V

Jaap V

28/01/2010 11:41:00
Quote Anchor link
oke,
meld maar welke jullie nog meer nodig hebben:

functions.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php

include('config.php');

function
sqlsafe($data) {
$data = mysql_real_escape_string($data);
return $data;
}




// Make MySQL-database connection
@mysql_connect($server, $user,$pass) or die ("Can't connect to MySQL database server");
@
mysql_select_db($database) or die("Can't find database.");

// 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>";
                                      }



                                                                           }


// here is the function for the login-check
function checklogin() {
if (mysql_num_rows(mysql_query("SELECT userid, `hash` FROM `sessions` WHERE `userid` = '".sqlsafe($_COOKIE['id'])."' AND `hash` = '".sqlsafe($_COOKIE['hash'])."'"))) {

        $return  = TRUE;
    }
else {
        $return = FALSE;
        
    }


    return $return;
}


// Data uit leden-tabel oproepen ($get_userdata['username'], $get_userdata['warnings']
$get_data_qry = mysql_query("SELECT userid, `hash` FROM `sessions` WHERE `userid` = '".sqlsafe($_COOKIE['id'])."' AND `hash` = '".sqlsafe($_COOKIE['hash'])."'");
$get_data = mysql_fetch_assoc($get_data_qry);
$get_userdata = mysql_fetch_assoc(mysql_query("SELECT * FROM $ledentabel WHERE id = '".$get_data['userid']."'"));

function
onkeypress(){

$id      = $get_userdata['id'];
mysql_query("UPDATE sessions SET logintime = NOW() WHERE id=$id");

}


?>


add_log.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
include "config.php";
include "functions.php";
if (checklogin()) {
include ("gegevens.php");
$id      = $get_userdata['id'];
mysql_query("UPDATE leden SET active=1 WHERE id=$id");
?>

<html>
<head>
    <title><?= $sitenaam ?></title>
    <link href="CSS/style.css" rel="stylesheet" type="text/css" />
    <script src="js/functions.js" language="javascript"></script>
    </head>
<body>
    


    <div align="center">
        <div id="main">
            <div id="header">
            
            </div>
                        <div id="menu">
                <li>
                    <a href="welkom.php"> Home </a>
                </li>
                                <li><a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">Zoeken</a>
                                        <div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
                        <a href="naam.php">Klantgegevens</a>
                        <a href="categorie.php">Categorie/logboek</a>
                        <a href="add_cat1.php">Categorie toevoegen</a>
                        <a href="add_log1.php">Logboek toevoegen</a>
                        <a href="zoekcat.php">CATEGORIE VERWIJDEREN</a>
                        </div>
                </li>
                <li>
                    <a href="#" onmouseover="mopen('m2')" onmouseout="mclosetime()"> Gebruikers </a>
                    <div id="m2" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
                        <a href="lidonline.php">Gebruikers online</a>
                        <a href="ledenlijst.php">Gebruikerslijst</a>
                    </div>
                </li>
                <li>
                    <a href="useropties.php">Wachtwoord</a>
                </li>
                <li>
                    
                    <a href="uitloggen.php">Uitloggen</a>
                </li>

            </div>
            <div id="content1">
                <div align="center" id="inhoud1">
                                
                    Logboek toevoegen.
                        <hr size="1" color="black">

                    <form method="POST" action="add_log.php">
                    
<?php
    
    

// Als er op verzenden is gedrukt:
    if(isset($_POST['verzenden']))
{


// Het toevoegen van de categorie gebeurt hier:
    $sql = "INSERT INTO logboek (id, Omschrijving_log, Date, Naam_log) VALUES ('','".$_POST['Omschrijving']."', NOW(), '".$_POST['naam']."')";
    
// als het gelukt is = true dan echo'n
     if($sql == TRUE) {
        echo "Het logboek is met succes toegevoegd!";
        }
$query = mysql_query($sql) OR DIE(mysql_error());
}

    
// Is er niet op verzenden gedrukt:
     else{

// Gegevens ophalen uit de tabel relatie aan de hand van het ID:
    $query = mysql_query("SELECT * FROM relatie WHERE id = '".mysql_real_escape_string($_GET['id'])."'");
while($row = mysql_fetch_assoc($query))
{

//Formulier laten zien, waarmee een categorie toegevoegd kan worden:
$naam     = $row['Naam'];
$zoeknaam = $row['Zoeknaam'];
    ?>

<?// Een hidden veld waarin de id neergezet wordt van de klant (weet mysql dalijk bij welke klant de categorie hoort?>
    <input type="hidden" name="id" value="<?php echo $row['id']; ?>" />
    <font size='2'>    
        <?php
        echo '<b>Klantgegevens: </b>';
echo '<br>'.$row['Voornaam'].'&nbsp;'.$row['Naam'];
echo '<br>'.$row['Adres'];
echo '<br>'.$row['Pcode'];
echo '<br>'.$row['Plaats'];
echo '<br>'.$row['Tel1'];
echo '<br>'.$row['Mobiel'];
echo '<br>'.$row['Email'];
        ?>

    
<?php } ?>
    Omschrijving:<br>
        <textarea name="Omschrijving" cols=90 rows=20 onkeypress="onkeypress()"></textarea><br>
        <input type="hidden" name="naam" value="<?=$zoeknaam?>">
        <input type="submit" name="verzenden" value="Verzenden!">
    </font>

</form>
    
    </form>
    <?php
}
    ?>

                
                
                </div>
        </div></div>
    </div>
</body>
</html>
<?php
} else {
     echo '<center><h2>Niet ingelogd</h2>';
     echo '<br><br><h4><a href="inloggen.php">Log nu in!</a></h4></center>';
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Jaap V
 
Johan Dam

Johan Dam

28/01/2010 11:50:00
Quote Anchor link
functions.js miss?

en kan je btw de hoofdletters naar kleine letters zetten in de textarea, tis niet fout maar is beetje raar omdat alle andere tags wel in kleine letters zijn,
 
Jaap V

Jaap V

28/01/2010 11:53:00
Quote Anchor link
ik heb geen functions.js,

is deze nodig dan?

maar zal dat van hoordletters veranderen :)
Gewijzigd op 01/01/1970 01:00:00 door Jaap V
 
Johan Dam

Johan Dam

28/01/2010 12:16:00
Quote Anchor link
nou ja, ik zie nergens de xmlHttpRequest object in javascript en je verwijst in de script naar js/functions.js

het xmlHttpRequest heb je zeker nodig om de gebruiker naar een php script te sturen zonder dat je pagina's gaat refreshen.

het zal er ongeveer zo uitzien,

gebruiker drukt knop in > javascript xmlHttpRequest word ingeschakeld > request word gestuurd naar php gestuurde pagina > php slaat je info op

zonder de javascript zal het dus niet gaan werken
 
Jaap V

Jaap V

28/01/2010 12:27:00
Quote Anchor link
klopt ik weet helemaal niet hoe dit in zijn werk gaat...

heb al flink gegoogeld op onkeypress/onkeydown....
maar wordt er niet echt wjzer van...

je uitleg klinkt logsisch...
maar nog altijd weet i niet wat ik moet doen...
 
Jaap V

Jaap V

28/01/2010 13:41:00
Quote Anchor link
ik heb nu dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
  <script>
        function
GetChar (event){
            var
characterCode = event.charCode;
            if (characterCode == undefined) {
                characterCode = event.keyCode;
            }

            alert ("je typte iets in");
        }

    </script>


    
    Omschrijving:<br>
        <textarea name="Omschrijving" cols=90 rows=20 onkeypress="GetChar (event);"></textarea><br>
        <input type="hidden" name="naam" value="<?=$zoeknaam?>">
        <input type="submit" name="verzenden" value="Verzenden!">
?>


deze werkt wel,
zodra ik iets type komt er te staan:

je typte iets in...

dit doet hij goed, zoals opgedragen.

maar nu wil ik dus inplaats van dat hij die melding geeft een update query uitvoert...

hoe kan ik via javascript een update query maken?
 
Johan Dam

Johan Dam

28/01/2010 13:49:00
Quote Anchor link
je textarea;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<textarea onkeypress="return update_status();"></textarea>


je javascript:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<script type="text/javascript" language="javascript">
<!--
function update_status(){
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.open("GET", "script.php", false);
  xmlhttp.send(null);
}
-->
</script>


je php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
include("database gebeuren en alle andere info die je nodig hebt");

$query = "UPDATE blablabla... ik geloof dat dit wel duidelijk is.";
?>
Gewijzigd op 01/01/1970 01:00:00 door Johan Dam
 
Jaap V

Jaap V

28/01/2010 15:23:00
Quote Anchor link
hmm,
ben er hele tijd mee bezig geweest....

update pagina werkt gewoon...
maar hij wordt niet uitgevoerd als ik begin te typen...

bij deze mijn 2 pagina's

add_log.php (stukje)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script type="text/javascript" language="javascript">
<!--
function update_status(){
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.open("GET", "updatetime.php", false);
  xmlhttp.send(null);
}
-->
</script>
    
    Omschrijving:<br>
        <textarea name="Omschrijving" cols=90 rows=20 onkeydown="return update_status();"></textarea><br>
        <input type="hidden" name="naam" value="<?=$zoeknaam?>">
        <input type="submit" name="verzenden" value="Verzenden!">
    </font>

</form>
    


en updatetime.php script
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
include ("gegevens.php");
include "functions.php";
if (checklogin()) {

$id      = $get_userdata['id'];

if
(mysql_query("UPDATE sessions SET logintime = NOW() WHERE userid = $id"))
{

echo 'gelukt!<br><br>';
echo '<br>' . $id . '<br>';
}

else{
die('Could not update data: ' . mysql_error());
echo 'Mislukt!';
}

}
else {
     echo '<center><h2>Niet ingelogd</h2>';
     echo '<br><br><h4><a href="inloggen.php">Log nu in!</a></h4></center>';
}


?>
Gewijzigd op 01/01/1970 01:00:00 door Jaap V
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.