{REQUEST} Msn Status

Status
Niet open voor verdere reacties.

kevichill

Gebruiker
Lid geworden
18 jul 2006
Berichten
237
hey mensen
ik zoek voor mijn dj site een
Php script die laat zien of ik dmv mijn msn aderes online ben of ofline ...

weet iemand zon script ik had er al 1 maar die werkte niet en kon niet de bug vinden dus heb ik heb redirect de velnisbak ingegooit

Mvg Kevichill :)
 
Ik weet wel een manier om dat te doen, maar daarvoor moet je wel Windows Live Messenger en Messenger Plus! Live geïnstalleerd hebben. Heb je dat?
 
MSN Status

Ja ik heb beiden en ik zou graag ook eens willen weten hoe u dit allemaal doet :)
Kunt u uw uitleg geven aub?
 
Je kunt het maken door een script voor Messenger Plus! Live te maken die verbinding maakt met een PHP bestand. Ik zal zeer binnenkort zo'n script schrijven voor je.
 
Ik ben klaar met het maken van de scripts. Ik zal even uitleggen hoe het werkt.

Op het moment dat je in Windows Live Messenger het script start, inlogt, je status verandert of uitlogt, wordt er een functie in het Messenger Plus! Live script aangeroepen. Die functie doet een HTTP Request naar een PHP-bestand op jouw website met als POST-variabele de status. Dat script maakt verbinding met een database en zet de status erin, zodat je die op elk moment op je website weer kunt opvragen.

Er zijn dus twee bestanden:
  • Het Messenger Plus! Live-script
  • Het PHP-script
Beide bestanden zitten in de gecomprimeerde map in de bijlage.

Je moet nog enige configuraties aanpassen in het PHP-script:
PHP:
$pagepassword = "pagepassword";
$databasehost = "localhost";
$databaseusername = "username";
$databasepassword = "password";
$databasename = "database";
De variabele 'pagepassword' is een wachtwoord om de pagina binnen te gaan, zodat niet iedereen de status kan aanpassen. Dit wachtwoord mag je zelf kiezen.
De andere variabelen zijn voor de database en zullen wel duidelijk zijn.

Ook moet je het Messenger Plus! Live-script nog configureren. Dit doe je, nadat je het script geïnstalleerd hebt, op de volgende manier:
Klik in Windows Live Messenger op: Plus! > Voorkeuren... > Scriptbeheer > Upload Status > Bewerken...
Je komt nu in een scherm waar het script te zien is. De bovenste twee regels zijn als volgt:
Code:
var URL = "http://";
var PagePassword = "pagepassword";
De variabele 'URL' moet je aanpassen naar de locatie waar het PHP-bestand zich bevindt ('http://' moet ervoor, zoals je ziet).
Ook zie je hier opnieuw de variabele 'PagePassword'. De waarde van deze variabele moet gelijk zijn aan die van het PHP-script.

Als laatste moet je nu nog de tabel in de database zetten met de volgende SQL-code:
Code:
CREATE TABLE `msnstatus` (
  `status` int(1)
);
INSERT INTO `msnstatus` VALUES (0);

Nadat je dit allemaal gedaan hebt en het PHP-script het geüpload zou het als het goed is moeten werken. In de database komt een getal te staan. Het getal stelt één van de volgende statussen voor:

0: Onbekend
1: Offline
2: Offline weergeven
3: Online
4: Bezig
5: Zo terug
6: Inactief
7: Afwezig
8: Aan de telefoon
9: Lunchpauze

Het script werkt natuurlijk alleen als je Windows Live Messenger gebruikt op een computer waar het Messenger Plus! Live-script op is geïnstalleerd.
Bij het afmelden van Windows Live Messenger moet je er rekening mee houden dat je ook daadwerkelijk op 'Afmelden' klikt, en niet Windows Live Messenger afsluit als je nog bent aangemeld, want dan werkt het niet.

Tenslotte nog een tip: Voor de veiligheid kun je (als je daartoe de mogelijkheid hebt) het PHP-bestand op de server in een map zetten die beveiligd is met .htaccess, zodat alleen jouw IP-adres het bestand bij kan. Zo voorkom je eventuele problemen als mensen de status willen veranderen.

Ik hoop dat je hier wat aan hebt en dat het goed werkt. Als je nog vragen hebt kun je ze hier altijd stellen.
 

Bijlagen

Laatst bewerkt:
Ik ben klaar met het maken van de scripts. Ik zal even uitleggen hoe het werkt.

Op het moment dat je in Windows Live Messenger het script start, inlogt, je status verandert of uitlogt, wordt er een functie in het Messenger Plus! Live script aangeroepen. Die functie doet een HTTP Request naar een PHP-bestand op jouw website met als POST-variabele de status. Dat script maakt verbinding met een database en zet de status erin, zodat je die op elk moment op je website weer kunt opvragen.

Er zijn dus twee bestanden:
  • Het Messenger Plus! Live-script
  • Het PHP-script
Beide bestanden zitten in de gecomprimeerde map in de bijlage.

Je moet nog enige configuraties aanpassen in het PHP-script:
PHP:
$pagepassword = "pagepassword";
$databasehost = "localhost";
$databaseusername = "username";
$databasepassword = "password";
$databasename = "database";
De variabele 'pagepassword' is een wachtwoord om de pagina binnen te gaan, zodat niet iedereen de status kan aanpassen. Dit wachtwoord mag je zelf kiezen.
De andere variabelen zijn voor de database en zullen wel duidelijk zijn.

Ook moet je het Messenger Plus! Live-script nog configureren. Dit doe je, nadat je het script geïnstalleerd hebt, op de volgende manier:
Klik in Windows Live Messenger op: Plus! > Voorkeuren... > Scriptbeheer > Upload Status > Bewerken...
Je komt nu in een scherm waar het script te zien is. De bovenste twee regels zijn als volgt:
Code:
var URL = "http://";
var PagePassword = "pagepassword";
De variabele 'URL' moet je aanpassen naar de locatie waar het PHP-bestand zich bevindt ('http://' moet ervoor, zoals je ziet).
Ook zie je hier opnieuw de variabele 'PagePassword'. De waarde van deze variabele moet gelijk zijn aan die van het PHP-script.

Als laatste moet je nu nog de tabel in de database zetten met de volgende SQL-code:
Code:
CREATE TABLE `msnstatus` (
  `status` int(1)
);
INSERT INTO `msnstatus` VALUES (0);

Nadat je dit allemaal gedaan hebt en het PHP-script het geüpload zou het als het goed is moeten werken. In de database komt een getal te staan. Het getal stelt één van de volgende statussen voor:

0: Onbekend
1: Offline
2: Offline weergeven
3: Online
4: Bezig
5: Zo terug
6: Inactief
7: Afwezig
8: Aan de telefoon
9: Lunchpauze

Het script werkt natuurlijk alleen als je Windows Live Messenger gebruikt op een computer waar het Messenger Plus! Live-script op is geïnstalleerd.
Bij het afmelden van Windows Live Messenger moet je er rekening mee houden dat je ook daadwerkelijk op 'Afmelden' klikt, en niet Windows Live Messenger afsluit als je nog bent aangemeld, want dan werkt het niet.

Tenslotte nog een tip: Voor de veiligheid kun je (als je daartoe de mogelijkheid hebt) het PHP-bestand op de server in een map zetten die beveiligd is met .htaccess, zodat alleen jouw IP-adres het bestand bij kan. Zo voorkom je eventuele problemen als mensen de status willen veranderen.

Ik hoop dat je hier wat aan hebt en dat het goed werkt. Als je nog vragen hebt kun je ze hier altijd stellen.


Dit heb ik allemaal gedaan maar hoe krijg ik het nu op de website tezien ???

mvg media
 
Je kunt met de volgende PHP code de status uit de database halen:

PHP:
$databasehost = "localhost";
$databaseusername = "username";
$databasepassword = "password";
$databasename = "database";

$status = array("Onbekend", "Offline", "Offline weergeven", "Online", "Bezig", "Zo terug", "Inactief", "Afwezig", "Aan de telefoon", "Lunchpauze");

mysql_select_db($databasename, mysql_connect($databasehost, $databaseusername, $databasepassword));
$data = mysql_fetch_array(mysql_query("SELECT status FROM msnstatus"));

echo $status[$data["status"]];

Ik heb het niet getest, maar ik denk dat het wel werkt.
 
Je kunt met de volgende PHP code de status uit de database halen:

PHP:
$databasehost = "localhost";
$databaseusername = "username";
$databasepassword = "password";
$databasename = "database";

$status = array("Onbekend", "Offline", "Offline weergeven", "Online", "Bezig", "Zo terug", "Inactief", "Afwezig", "Aan de telefoon", "Lunchpauze");

mysql_select_db($databasename, mysql_connect($databasehost, $databaseusername, $databasepassword));
$data = mysql_fetch_array(mysql_query("SELECT status FROM msnstatus"));

echo $status[$data["status"]];

Ik heb het niet getest, maar ik denk dat het wel werkt.

Ik heb het gestest en het werkt bedankt maar weer

mvg media
 
Heb je de variabelen in het Messenger Plus! Live-script goed ingevuld? Zo ja, laat die regels een hier zien.
 
Heb je de variabelen in het Messenger Plus! Live-script goed ingevuld? Zo ja, laat die regels een hier zien.


Code:
var URL = "http://eric.byethost8.com/uploadstatus.php";
var PagePassword = "evenweggelatensnappie";

function OnEvent_Initialize(MessengerStart){
	OnEvent_MyStatusChange(Messenger.MyStatus);
}

function OnEvent_Signout(Email){
	OnEvent_MyStatusChange(1);
};

function OnEvent_SigninReady(Email){
	OnEvent_MyStatusChange(Messenger.MyStatus);
};

function OnEvent_MyStatusChange(NewStatus){
	HTTPRequest = new ActiveXObject("Microsoft.XMLHTTP");
	HTTPRequest.open("POST", URL + "?pagepassword=" + encodeURIComponent(PagePassword) + "&" + (new Date()).getTime(), true);
	HTTPRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 
	HTTPRequest.send("status=" + encodeURIComponent(NewStatus));	
};
 
Oké, dat is wel goed geloof ik. Laat nu eens de inhoud van uploadstatus.php zien.
 
Oké, dat is wel goed geloof ik. Laat nu eens de inhoud van uploadstatus.php zien.

Code:
<?php

$pagepassword = "tvgxr4qs";
$databasehost = "sql4.byethost8.com";
$databaseusername = "b8_369533";
$databasepassword = "tvgxr4qs";
$databasename = "b8_369533_msnstatus";

$status = array("Onbekend", "Offline", "Offline weergeven", "Online", "Bezig", "Zo terug", "Inactief", "Afwezig", "Aan de telefoon", "Lunchpauze");

mysql_select_db($databasename, mysql_connect($databasehost, $databaseusername, $databasepassword));
$data = mysql_fetch_array(mysql_query("SELECT status FROM msnstatus"));

echo $status[$data["status"]];
?>
 
Ik zie al wat je fout hebt gedaan.

Je moet in het Messenger Plus! Live-script de url invullen naar de pagina die je in het ZIP-bestand vindt dat ik hier geplaatst heb. De inhoud van de pagina die je nu daar hebt staan kun je over heel je website neerzetten, dat is het script om de status weer uit de database te halen.
 
tweede login

ik heb nog een vraag en als je nu twee keer ingelogd bent hoe dfoe je dat dan
want ik heb twee keer msn draaien en die pakt alle twee de zelfde script

mvg andre
 
Tja, dan pakt het script de status van de messenger die je als laatste hebt veranderd.
 
Ik zie al wat je fout hebt gedaan.

Je moet in het Messenger Plus! Live-script de url invullen naar de pagina die je in het ZIP-bestand vindt dat ik hier geplaatst heb. De inhoud van de pagina die je nu daar hebt staan kun je over heel je website neerzetten, dat is het script om de status weer uit de database te halen.

ik snap je antwoord niet,
ken je die anders vertellen? en als ik de vraag goed snap, dan heb ik de url naar de uploadstatus.php toch echt op mn script staan en ook klopt het pad, toch?
 
Je moet begrijpen dat er twee PHP-bestanden zijn:

- Het PHP-bestand genaamd "uploadstatus.php":
PHP:
<?php

$pagepassword = "pagepassword";
$databasehost = "localhost";
$databaseusername = "username";
$databasepassword = "password";
$databasename = "database";

if(isset($_GET["pagepassword"], $_POST["status"]) && stripslashes($_GET["pagepassword"]) == $pagepassword && is_numeric($_POST["status"]) && $_POST["status"] > -1 && $_POST["status"] < 10){
	mysql_select_db($databasename, mysql_connect($databasehost, $databaseusername, $databasepassword));
	mysql_query("UPDATE msnstatus SET status = '" . $_POST["status"] . "'");
};

?>

- Het PHP-bestand waarmee je de status ergens op je website weergeeft en waarvan de bestandsnaam en locatie onbelangrijk zijn:
PHP:
<?php
$databasehost = "localhost"; 
$databaseusername = "username"; 
$databasepassword = "password"; 
$databasename = "database"; 

$status = array("Onbekend", "Offline", "Offline weergeven", "Online", "Bezig", "Zo terug", "Inactief", "Afwezig", "Aan de telefoon", "Lunchpauze"); 

mysql_select_db($databasename, mysql_connect($databasehost, $databaseusername, $databasepassword)); 
$data = mysql_fetch_array(mysql_query("SELECT status FROM msnstatus")); 

echo $status[$data["status"]];
?>

De URL naar het PHP-bestand was inderdaad goed, maar de inhoud van het bestand klopte niet. Ik hoop dat het nu wel lukt. ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan