[WIN32][PHP]post faken via header

Pagina: 1
Acties:

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Ik heb het volgende probleem. Ik wil op een forum (niet dit forum) een dynamische sig, waarin staat welk nummer er dat moment op m'n shoutcast station draait.

Ik heb dus voor Winamp een plugin geinstalled die dat output naar een HTML file, en een php script gemaakt dat dmv een regex de titel/artiest eruit haalt. In die PHP pagina staan ook <input> tags die alle andere waarden meegeven die het forum nodig heeft bij de POST.

Maar hoe kan ik dat nou netjes om de 10 secs uitvoeren. Ik heb zin om om de 10 secs op een submit knop te drukken. Ik heb al geprobeerd een frameset te bouwen en dan via een META reload een een javascriptje de hele tijd de forum submit in het top frame, te doen maar op deze manier gaf het desbetreffende forum een foutmelding met de session.

Ik heb nu een ranzige oplossing met een HTML pagina die een window opent met daarin het script, en daarna het window weer closed. En dit dan om de 10 sec. Alleen zie ik dus nu om de 10 sec een window eventjes voorbij flitsen en dat is ook niet ideaal.

Ik werk met Windows dus kan geen crontab gebruiken en de task scheduler van Windows kan niet sneller dan 1x per uur wat uitvoeren. Ook kan ik niet via php.exe script.php dit uivoeren aangezien er een HTML <form> in staat.

Heeft iemand een idee hoe ik dit mooi kan oplossen?

Verwijderd

Ik denk persoonlijk dat je het beste het op deze manier kan doen..

Het heeft natuurlijk geen nut om informatie te updaten als niemand op het forum komt, dus doe het op de volgende manier, je gebruikt gewoon je icon als updater (B-)) en updated gewoon iedere keer je sig wanneer het 'nummer' veranderd is en je icoon aangeroepen wordt... Het nummer zou je kunnen bewaren in een text file zodat de check simpeler wordt ;)

Check it out.

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Op vrijdag 04 januari 2002 12:51 schreef Xtentic het volgende:
Ik denk persoonlijk dat je het beste het op deze manier kan doen..

Het heeft natuurlijk geen nut om informatie te updaten als niemand op het forum komt, dus doe het op de volgende manier, je gebruikt gewoon je icon als updater (B-)) en updated gewoon iedere keer je sig wanneer het 'nummer' veranderd is en je icoon aangeroepen wordt... Het nummer zou je kunnen bewaren in een text file zodat de check simpeler wordt ;)

Check it out.
Hmmz, dus bij elke icon view het script executen.......damn!
Da's een goed idee :)
thx :)

Verwijderd

Op vrijdag 04 januari 2002 12:52 schreef woutf het volgende:

[..]

Hmmz, dus bij elke icon view het script executen.......damn!
Da's een goed idee :)
thx :)
half, tuurlijk check je het iedere keer, maar om nu voor iedere hit dat je icoon heeft je profiel te updaten is ook een beetje van het goede (lijkt mij)

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Op vrijdag 04 januari 2002 12:53 schreef Xtentic het volgende:

[..]

half, tuurlijk check je het iedere keer, maar om nu voor iedere hit dat je icoon heeft je profiel te updaten is ook een beetje van het goede (lijkt mij)
Dat snap ik, ik doe het dan gewoon zo
PHP:
1
2
3
4
5
6
<?
if ($sig_op_forum != $current_song)
{
Ga_es_ff_snel_die_sig_updaten();
}
?>

Verwijderd

Op vrijdag 04 januari 2002 12:55 schreef woutf het volgende:

[..]

Dat snap ik, ik doe het dan gewoon zo
PHP:
1
2
3
4
5
6
<?
if ($sig_op_forum != $current_song)
{
Ga_es_ff_snel_die_sig_updaten();
}
?>
nog netter is
PHP:
1
2
3
4
5
<?
if ($sig_op_forum != $current_song) {
    gaEsFfSnelDieSigUpdaten();
}
?>

:P

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Op vrijdag 04 januari 2002 12:57 schreef Xtentic het volgende:

[..]

nog netter is
PHP:
1
2
3
4
5
<?
if ($sig_op_forum != $current_song) {
    gaEsFfSnelDieSigUpdaten();
}
?>

:P
Laat die mier toch met rust joh :P

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:21

Janoz

Moderator Devschuur®

!litemod

Waarom maak je niet gewoon een dynamisch icoon waarin je het huidige nummer zet, dan hoef je ook niet de heletijd je profile te updaten (zullen ze bij dat forum ook blijer mee zijn... desnoods zet je (als het mogelijk is) een plaatje in je sig oid)

Persoonlijk zou ik niet zo blij zijn met al die mensen die een beetje hun profile om de 10 sec lopen aanpassen.. Open je een keer een topic met daarin 20 van die image triggers en daar gaat je performance..

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Op vrijdag 04 januari 2002 13:55 schreef Janoz het volgende:
Waarom maak je niet gewoon een dynamisch icoon waarin je het huidige nummer zet, dan hoef je ook niet de heletijd je profile te updaten (zullen ze bij dat forum ook blijer mee zijn... desnoods zet je (als het mogelijk is) een plaatje in je sig oid)

Persoonlijk zou ik niet zo blij zijn met al die mensen die een beetje hun profile om de 10 sec lopen aanpassen.. Open je een keer een topic met daarin 20 van die image triggers en daar gaat je performance..
Hoezo?... tis toch niet een probleem aan de kant van de user die het topic leest?... maar eerder een probleem aan de kant van de server, en zo te zien heeft die daar nog niet echt last van :)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 04 januari 2002 13:58 schreef Xtentic het volgende:

[..]

Hoezo?... tis toch niet een probleem aan de kant van de user die het topic leest?... maar eerder een probleem aan de kant van de server, en zo te zien heeft die daar nog niet echt last van :)
nee jij vraagt het op en moet dus ook wachten

Doet iets met Cloud (MS/IBM)


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

D2k:
nee jij vraagt het op en moet dus ook wachten
preciezer: jij doet een request aan dezelfde server die ook de profile-updates moet afhandelen.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Hmm, ik ben er mee bezig maar zit vast. Als ik namelijk
PHP:
1
2
3
4
<?
MaakIcoon();
exec("song.php");
?>

Doe, dan werkt dat natuurlijk niet, omdat er ook HTML code in die pagina zit. Die pagina werkt namelijk met een <body onload="form.submit">. Is er een manier dat ik die PHP file kan aanroepen vanuit mn icon script en dan die HTML in die PHP file ook verwerkt wordt?

Ik ben bang dat ik zelf via headers al die post informatie moet gaan meegeven. Als het echt niet anders kan doe ik dit ook wel, maar ik vroeg me af of er geen andere oplossing is.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

drm: preciezer: jij doet een request aan dezelfde server die ook de profile-updates moet afhandelen.
laat die mier met rust man ;)

maar het klopt wat drm zegt (mijn post klopt ook gewoon)

Doet iets met Cloud (MS/IBM)


  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Als ik alle waarden via aan GET meegeef werkt het ook niet, dus ik gok dat ik een post moet faken. Ik heb net al die dynamic sig topics doorgelezen en weet dat ik iets met headers moet doen, maar snap er eerlijk gezegd niet veel van.

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Ok, ik ben nu al een stuk verder. Ik heb via een packet sniffer gekeken welke header hij meegeeft. Dus ik weet nu dat ik eerst die header moet geven zodat hij denkt dat er een POST gedaan wordt.

Maar hetgeen waar ik niet achter kan komen, wanneer/waar moet ik dan de data bij die post meesturen? Ik heb ook al in de HTTP RFC gekeken maar kon het daar niet vinden. Het lijkt me dat dit ook via een header moet, maar via de sniffer kon ik alleen maar de volgende package vinden
Data (450 bytes)
Maar ik kan dus niet zien hoe die data precies verzonden wordt

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
hmmz, ben wel lekker tegen mezelf aan het lullen :)
Ik heb nu het volgende, maar hij blijft maar 'foutje' echo-en
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$header = 'POST http://blaat/member.php HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, */*
Referer: http://blaat/member.php?s=&amp;action=editprofile
Accept-Language: nl
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)
Host: www.blaat.nl
Content-Length: 450
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: bbuserid=**; bbpassword=**; sessionhash=**
s=&amp;email=wout@dutchgaming.net&amp;emailconfirm=wout@dutchgaming.net&amp;homepage=http%3A%2F%2Fwww.Dutchgaming.net&amp;icq=47188000&amp;aim=http%3A%2F%2Fwww.klas4c.f2s.com%2Fa%2Fik.gif&amp;signature=Ik+ben+niet+gek....ik+ben+een+vliegtuig%0D%0AWout+FM+--%3E+http%3A%2F%2Fwout.dynodns.net%3A8500+%7C+online+%7C+Now+Playing+%3A+Phil+PEOPCollins+-+One+More+Night&amp;yahoo=&amp;month=4&amp;day=3&amp;year=1985&amp;customtext=&amp;field1=&amp;field2=&amp;field3=&amp;action=updateprofile&amp;Submit=Submit+Modifications';

Header("$header") or die ("foutje");
?>

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

eh, is hert niet de bedoeling dat je die request naar de server stuurt ipv de client?

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Op zaterdag 05 januari 2002 16:25 schreef Timpie2000 het volgende:
eh, is hert niet de bedoeling dat je die request naar de server stuurt ipv de client?
dat doe ik ook, maar waar nu 'blaat' staat, staat normaal 'urlvandesite.com'

:)

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Op zaterdag 05 januari 2002 16:25 schreef Timpie2000 het volgende:
eh, is hert niet de bedoeling dat je die request naar de server stuurt ipv de client?
dom |:(, ik snap nu pas wat je bedoelt, en heb nu het volgende
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
$fp = fsockopen ("www.blaat.nl", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
$header = 'POST http://blaat/member.php HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, */*
Referer: http://blaat/member.php?s=&amp;action=editprofile
Accept-Language: nl
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)
Host: www.blaat.nl
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: bbuserid=**; bbpassword=**; sessionhash=**
s=&amp;email=wout@dutchgaming.net&amp;emailconfirm=wout@dutchgaming.net&amp;homepage=http%3A%2F%2Fwww.Dutchgaming.net&amp;icq=47188000&amp;aim=http%3A%2F%2Fwww.klas4c.f2s.com%2Fa%2Fik.gif&amp;signature=Ik+ben+niet+gek....ik+ben+een+vliegtuig%0D%0AWout+FM+--%3E+http%3A%2F%2Fwout.dynodns.net%3A8500+%7C+online+%7C+Now+Playing+%3A+Phil+PEOPCollins+-+One+More+Night&amp;yahoo=&amp;month=4&amp;day=3&amp;year=1985&amp;customtext=&amp;field1=&amp;field2=&amp;field3=&amp;action=updateprofile&amp;Submit=Submit+Modifications';

$write = fwrite($fp, $header) || die("error");
echo $write;
?>

Als ik het script nu uitvoer krijg ik als output op mn scherm '1'
Dit is dus die $write, en betekent dat er 1 byte geschreven is, wat dus niet goed is

* WoutF snap er niks meer van

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
zow, 24 uur gewacht, en ik zit nog steeds vast
* WoutF kicks

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

D2k:
laat die mier met rust man ;)
:D

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
Op vrijdag 04 januari 2002 12:49 schreef woutf het volgende:
...
de task scheduler van Windows kan niet sneller dan 1x per uur wat uitvoeren.
...
Welke windows heb je? Hier (ik draai winXP) kun je tot elke minuut iets laten uitvoeren.
En als je winNT of win2k hebt kun je AT gebruiken:
cmd> AT /?

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Op maandag 07 januari 2002 13:12 schreef Limhes het volgende:

[..]

Welke windows heb je? Hier (ik draai winXP) kun je tot elke minuut iets laten uitvoeren.
En als je winNT of win2k hebt kun je AT gebruiken:
cmd> AT /?
Ik draai ook XP maar dan zal ik het wel fout gezien hebben. Maar heeft iemand misschien nog een ontopic reactie voor mij? Ik zit me er echt kapot op te staren maar zie niet wat ik fout doe.

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Ik heb nog wat met telnet zitten testen maar kom er gewoon echt niet uit. Ik weet dat veel mensen hier een werkend script hebben. Zou iemand dan alsjeblieft mijn en zijn code naast elkaar kunnen leggen en checken wat ik fout doe?

Ik hoef echt geen copy-paste uit jullie code, maar een hint in de richting waar de fout zit zou ik erg waarderen.

Dit is de code die ik nu heb, en dus niet werkt
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
<?
$fp = fsockopen ("HOST", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
    $header2 = 's=&amp;amp;email=wout@dutchgaming.net&amp;amp;emailconfirm=wout@dutchgaming.net&amp;amp;
homepage=http%3A%2F%2Fwww.Dutchgaming.net&amp;amp;icq=47188000&amp;amp;
aim=http%3A%2F%2Fwww.klas4c.f2s.com%2Fa%2Fik.gif&amp;amp;signature=Ik+ben+niet+gek....
ik+ben+een+vliegtuig%0D%0AWout+FM+--%3E+http%3A%2F%2Fwout.dynodns.net
%3A8500+%7C+online+%7C+Now+Playing+%3A+Phil+PEOPCollins+-+One+More+Night&amp;amp;
yahoo=&amp;amp;month=4&amp;amp;day=3&amp;amp;year=1985&amp;amp;customtext=&amp;amp;field1=&amp;amp;
field2=&amp;amp;field3=&amp;amp;
action=updateprofile&amp;amp;Submit=Submit+Modifications\r\n';
    $a = strlen ($header2);

   $header = 'POST /member.php HTTP/1.1\r\n
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, 
application/msword, */*\r\n
Referer: http:/HOST/member.php?s=&amp;amp;action=editprofile\r\n
Accept-Language: nl\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Accept-Encoding: gzip, deflate\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)\r\n
Host: HOST\r\n
Content-Length: '.$a.'\r\n
Connection: Keep-Alive\r\n
Cache-Control: no-cache\r\n
Cookie: bbuserid=27; bbpassword=bee7d9dff5466fdfc7da385d1f23cdfc;
 sessionhash=77faac99d0551979b628f3ace1c41a47\r\n';
$write  = fwrite($fp, "$header") || die("error");
$write2 = fwrite($fp, "$header2") || die("error2");
echo "$write<br>"; //debug
echo "$write2<br>"; //debug
echo "$a<br>"; //debug
}
?>

Ik ben nu al dagen deze thread aan het kicken en ik weet dat mensen het lezen. Als je het niet wilt zeggen omdat je bang bent dat ik het op GoT gebruik, fine zeg dat dan. Ik ga dit dus btw _niet_ op GoT gebruiken, en heb al toestemming van de forum admin v/h desbetreffende forum.

Help me out here

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

probeer het zo:

• POST login, je krijgt een session id terug
• POST met je form waarden, mét die session id.

(zo werkt het hier op GoT iig.

Stop uploading passwords to Github!

Pagina: 1