PHP-functie aanroepen in JavaScript
Ik hoop daarom dat jullie me wel kunnen helpen en zal daarom aan de hand van een vereenvoudigd voorbeeld-script proberen duidelijk te maken wat ik bedoel.
(Bij het uittesten alleen even "hostnaam" in "$ip = gethostbyname('[hostnaam]');" vervangen door je eigen server-naam, tenminste, als je die hebt.)
Code (php)
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
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
<?php
$ip_zelf = getenv(REMOTE_ADDR);
$ip = gethostbyname('[hostnaam]');
function schrijf_getal_1()
{
$file_open = fopen("data/log","w");
fwrite($file_open,"1");
fclose($file_open);
}
if ($ip_zelf == $ip)
{
schrijf_getal_1();
echo "Er is nu net een \"1\" naar \"data/log\" geschreven, zodat de bezoeker met een ander ip-adres de mededeling krijgt dat ik momenteel dezelfde pagina bekijk.<br><br>Als ik het venster sluit wordt er een \"0\" naar \"data/log\" geschreven zodat de bezoeker met een ander ip-adres de mededeling krijgt dat ik niet (meer) dezelfde pagina bekijk.";
echo "<script language=\"javascript\">\n";
echo "var exit=true;\n";
echo "function out(){\n";
echo "if(exit)schrijf_getal_0;}\n";
echo "onunload=out\n";
echo "</script>\n";
}
elseif ($ip_zelf != $ip)
{
$file_open2 = fopen("data/log","r");
$getal = fgets($file_open2, 45);
fclose($file_open2);
if ($getal == 1)
{
echo "De server bekijkt momenteel dezelfde pagina.";
}
if ($getal != 1)
{
echo "De server bekijkt momenteel niet dezelfde pagina.";
}
}
?>
$ip_zelf = getenv(REMOTE_ADDR);
$ip = gethostbyname('[hostnaam]');
function schrijf_getal_1()
{
$file_open = fopen("data/log","w");
fwrite($file_open,"1");
fclose($file_open);
}
if ($ip_zelf == $ip)
{
schrijf_getal_1();
echo "Er is nu net een \"1\" naar \"data/log\" geschreven, zodat de bezoeker met een ander ip-adres de mededeling krijgt dat ik momenteel dezelfde pagina bekijk.<br><br>Als ik het venster sluit wordt er een \"0\" naar \"data/log\" geschreven zodat de bezoeker met een ander ip-adres de mededeling krijgt dat ik niet (meer) dezelfde pagina bekijk.";
echo "<script language=\"javascript\">\n";
echo "var exit=true;\n";
echo "function out(){\n";
echo "if(exit)schrijf_getal_0;}\n";
echo "onunload=out\n";
echo "</script>\n";
}
elseif ($ip_zelf != $ip)
{
$file_open2 = fopen("data/log","r");
$getal = fgets($file_open2, 45);
fclose($file_open2);
if ($getal == 1)
{
echo "De server bekijkt momenteel dezelfde pagina.";
}
if ($getal != 1)
{
echo "De server bekijkt momenteel niet dezelfde pagina.";
}
}
?>
Het probleem waar ik nu tegenaan loop is dat de opdracht te schrijven naar "data/log" wel lukt als ik de PHP-functie in PHP aanroep, maar als ik dat doe in JavaScript lukt dat niet.
Weten jullie misschien een manier waarop een PHP-functie toch een JavaScript aanroep accepteert, of anders een manier waarop ik in geheel PHP een bestand kan laten schrijven naar aanleiding van het sluiten van een venster?
graag je berichten 1 keer posten
Sorry Bas, maar ik heb toch echt 1x gepost, dus 1x op "bericht plaatsen" geklikt. Daarom verraste het mij ook dat ik na het posten mijn bericht ineens 3x tegenkwam. Ik heb nog geprobeerd daarna de extra berichten te verwijderen maar dat lukte me niet.
Een bericht meer dan 1x (op het zelfde forum) posten doe ik trouwens nooit. Dat soort kinderachtige acties passen niet bij mij.
Gewijzigd op 06/07/2004 22:50:00 door Harald
PHP is een serverside scripttaal en wordt dus op de server uitgevoerd. JavaScript is clientside en kan dus niet met PHP 'samenwerken' ...