dan moet ik eerst die HTTPClient downloaden/gebruiken.. ik zat meer te denken aan de manier zoals beschreven staat op zend.comquote:Op dinsdag 19 september 2006 00:44 schreef Tiemie het volgende:
@ qu63
http://scripts.incutio.com/httpclient/examples.php
dus:quote:Op dinsdag 19 september 2006 10:23 schreef JeRa het volgende:
@qu63
Nee, dat script staat niet online. Maar ik kan je wel vertellen hoe je het snel kunt doen
Allereerst zorg je zelf voor een ingelogde session ID op FOK!, dan hoef je al geen rekening meer te houden met het via PHP in- en uitloggen. Vervolgens kun je met de Client URL Library Functions van PHP een POST-request doen naar de webserver om zo je profiel te updaten
1 2 3 4 5 | $ch = curl_init("http://forum.fok.nl/user/profile"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "sessid=" .$sessionid."&password=".$pass.""); ?> |
dus het stukje php-code is voldoende?quote:Op dinsdag 19 september 2006 11:54 schreef JeRa het volgende:
Ik snap niet echt wat je met dat <form> wilt bereiken. Dat is een formulier dat normaal naar een client wordt opgestuurd, maar dit kun je toch puur via PHP doen? Met CURL kun je dus zonder tussenkomst van een client een POST-request naar een webserver sturen
In principe wel toch?quote:Op dinsdag 19 september 2006 12:01 schreef qu63 het volgende:
[..]
dus het stukje php-code is voldoende?
Zolang je dingen als curl_exec() e.d. niet vergeet wel jaquote:Op dinsdag 19 september 2006 12:01 schreef qu63 het volgende:
[..]
dus het stukje php-code is voldoende?
die lijkt me idd bvest essentieelquote:Op dinsdag 19 september 2006 12:09 schreef JeRa het volgende:
[..]
Zolang je dingen als curl_exec() e.d. niet vergeet wel ja
1 2 3 4 5 6 7 8 9 | header("Referer: http://forum.fok.nl/user/active/77135" color="#007700">); header("Accept-Language: nl"); header("Accept-Encoding: gzip, deflate"); header("User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)"); header("Host: forum.fok.nl"); header("Connection: Keep-Alive"); header("Cookie: Enabled=true; sessid=2fb477a49f103394d2ff81a01043f8f2; user=77135"); ?> |
hmz, ik krijg nu steeds #error 47, Referer error: fout sessidquote:Op dinsdag 19 september 2006 12:09 schreef JeRa het volgende:
[..]
Zolang je dingen als curl_exec() e.d. niet vergeet wel ja
Ook de juiste bijbehorende userid opgegeven?quote:Op dinsdag 19 september 2006 13:16 schreef qu63 het volgende:
[..]
hmz, ik krijg nu steeds #error 47, Referer error: fout sessid
ik heb gewoon mijn sessionid opgegeven en als referrer dit topic..
jup,quote:Op dinsdag 19 september 2006 13:18 schreef JeRa het volgende:
[..]
Ook de juiste bijbehorende userid opgegeven?
1 2 3 4 5 6 7 8 9 10 11 12 13 | php $sessionid = "******************"; $mail = "fok@qu63.com"; $sig = "[url=http://www.qu63.nl]qu63.nl!! Blog | Muziek | [s]Torrents[/s] | Muziek | En veel meer!! [/url]"; $pass = "***********"; $referer = "www.qu63.nl"; $user = "62215"; $ch = curl_init("http://forum.fok.nl/user/profile"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "sessid=".$sessionid."&referrer=".$referrer."&userid=".$user."&email=".$mail."&signature=".$sig."&password=".$pass.""); curl_exec($ch); ?> |
tijd voor een fok/curl-tutorialquote:Op dinsdag 19 september 2006 13:26 schreef Darkomen het volgende:
Kijk dit is precies wat ik ook weilde leren
Nee, nu stuur je een POST-formulier naar iemands profiel. Daar kan FOK! niets meequote:
ik stuur het naar mijn eigen profiel..quote:Op dinsdag 19 september 2006 13:38 schreef JeRa het volgende:
[..]
Nee, nu stuur je een POST-formulier naar iemands profiel. Daar kan FOK! niets mee
Je moet HTTP-headers definiëren met je sessid & user
de user id klopt 100%quote:Op dinsdag 19 september 2006 13:11 schreef JeRa het volgende:
@mschol
Als dat niet werkt dan moet er wel iets mis zijn met je session of user id. Immers werkt het bij mij zonder problemen door puur deze headers op te geven:
- Host: forum.fok.nl
- Connection: Close
- Cookie: user=0; sessid=...
Oh sorry, je hebt gelijk.quote:Op dinsdag 19 september 2006 13:58 schreef qu63 het volgende:
[..]
ik stuur het naar mijn eigen profiel..
iksnap het niet meer![]()
Klopt, volgens Breuls was het de bedoeling dat het zo werkt op de /user/profile/xxxx pagina. Anders vraag handmatig een nieuwe session ID op en gebruik die?quote:Op dinsdag 19 september 2006 13:59 schreef mschol het volgende:
[..]
de user id klopt 100%
de session ID heb ik uit het fok.nl cookie getrokken op mijn server .
ik ga het nog een keer checken maar hier ben ik 99.9% zeker van dat de sessid klopt
maar de prfiel pagina is ook de enige pagina die dit probleem heeft, Myat bijvoorbeeld werkt zonder problemen
quote:Op dinsdag 19 september 2006 14:04 schreef JeRa het volgende:
[..]
Oh sorry, je hebt gelijk.
De gegevens die je wilt wijzigen stuur je met je POST-data mee. Je session en user ID stuur je met de HTTP-headers mee. Dan moet het werken :)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | header("Host: forum.fok.nl"); header("Connection: Keep-Alive"); header("Cookie: Enabled=true; sessid=**********; user=62215"); $sessionid = "**********"; $mail = "fok@qu63.com"; $sig = "[url=http://www.qu63.nl]qu63.nl!! Blog | Muziek | [s]Torrents[/s] | Muziek | En veel meer!! [/url]"; $pass = "**********"; $referer = "www.qu63.nl"; $user = "62215"; $ch = curl_init("http://forum.fok.nl/user/profile"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "sessid=".$sessionid."&referrer=".$referrer."&userid=".$user."&email=".$mail."&signature=".$sig."&password=".$pass.""); curl_exec($ch); ?> |
Nee, met header() stel je in PHP de headers in die terug worden gestuurd naar de client (jou dus). Je moet via CURL de headers instellen die PHP naar forum.fok.nl gaat sturenquote:
quote:Op dinsdag 19 september 2006 14:21 schreef JeRa het volgende:
[..]
Nee, met header() stel je in PHP de headers in die terug worden gestuurd naar de client (jou dus). Je moet via CURL de headers instellen die PHP naar forum.fok.nl gaat sturen :) zoek op CURL_OPT_HTTPHEADER.
1 2 3 4 5 6 7 8 9 10 11 12 13 | $sessionid = "**********"; $mail = "fok@qu63.com"; $sig = "[url=http://www.qu63.nl]qu63.nl!! Blog | Muziek | [s]Torrents[/s] | Muziek | En veel meer!! [/url]"; $pass = "**********"; $referer = "www.qu63.nl"; $user = "62215"; $ch = curl_init("http://forum.fok.nl/user/profile"); curl_setopt($ch,CURLOPT_HTTPHEADER,Host: forum.fok.nl; Connection: Keep-Alive; Cookie: Enabled=true; sessid=**********; user=62215); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "sessid=".$sessionid."&referrer=".$referrer."&userid=".$user."&email=".$mail."&signature=".$sig."&password=".$pass.""); curl_exec($ch); ?> |
zou het misschien zo kunnen zijn dat ik daar naar moet kijken?quote:Op dinsdag 19 september 2006 14:21 schreef JeRa het volgende:
[..]
Nee, met header() stel je in PHP de headers in die terug worden gestuurd naar de client (jou dus). Je moet via CURL de headers instellen die PHP naar forum.fok.nl gaat sturenzoek op CURL_OPT_HTTPHEADER.
/ Error #2quote:Op dinsdag 19 september 2006 14:38 schreef mschol het volgende:
[..]
zou het misschien zo kunnen zijn dat ik daar naar moet kijken?
de output van me script is ookwat verragt:
http://fia181-83.dsl.hccnet.nl/fok/profile.html
dat is dus me output...quote:Op dinsdag 19 september 2006 14:43 schreef qu63 het volgende:
[..]
/ Error #2
Deze functie is momenteel niet beschikbaar.
en nog wat stukjes javascript aan de bovenkant van de pagina
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 | php header("Referer: http://forum.fok.nl/user/active/77135" color="#007700">); header("Host: forum.fok.nl"); header("Connection: Keep-Alive"); header("Cookie: Enabled=true; sessid=d6b136ff50d130beb999115c973e5326; user=0"); include("../includes/mysql.inc"); $dbHost = 'localhost'; $dbPass = *****'; $dbUser = '*(****'; $dbName = 'FoK!'; $lines = file('http://forum.fok.nl/user/profile/77135'); $regex = '/(d+) (gemiddeld (d+) per dag)/ism'; $i=1; $con = connectDB($dbHost,$dbUser,$dbPass,$dbName); $query1 = RunQuery("SELECT `ID` FROM `posts` ORDER BY 'ID' DESC"); $query1 = mysql_fetch_array($query1); $ID=$query1[0]; $ID=$ID+1; $file = fopen("profile.html",w); while($i<500) { fwrite($file,$lines[$i]); preg_match_all($regex,$lines[$i],$needle); $needle = split(' ',$needle[0][0]); if($needle[0] != '' && is_numeric($needle[0])) { $query = RunQuery("INSERT INTO `posts` (`posts`,`datum`,`ID`) VALUES('$needle[0]','".date('Y-m-d H:i:s')."','".$ID."')"); CloseConDB($con); exit; } $i++; } ?> |
1 |
wat ik zo lees dus ook..quote:Op dinsdag 19 september 2006 14:56 schreef Darkomen het volgende:
Jij geeft ook alleen de headers naar de client als ik het verhaal zo lees.
Dus zou dat met de CURL_OPT_HTTPHEADER. moeten lukken
Jammer dat ik op mn werk zit en het zelf niet ff kan uitzoeken en testen.
Zit ff te lezen, en volgens mij is het ongeveervergelijkbaar als je het via AJAX zou willen doen ?
1 2 3 4 5 6 7 | $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://forum.fok.nl/user/profile/77135"); curl_setopt($ch,CURL_OPT_HTTPHEADER,"Host: forum.fok.nl; Connection: Keep-Alive; Cookie: Enabled=true; sessid=d6b136ff50d130beb999115c973e5326; user=0;"); curl_setopt($ch, CURLOPT_GET, true); curl_exec($ch); ?> |
1 2 3 | $resource = mysql_query($query); result = mysql_fetch_assoc($resource); |
1 2 3 4 5 6 7 8 9 10 11 12 13 | $sessionid = "******"; $mail = "fok@qu63.com"; $sig = "[url=http://www.qu63.nl]qu63.nl!! Blog | Muziek | [s]Torrents[/s] | Muziek | En veel meer!! [/url]"; $pass = "******"; $referer = "www.qu63.nl"; $user = "62215"; $ch = curl_init("http://forum.fok.nl/user/profile"); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Host: forum.fok.nl","Connection: Keep-Alive","Cookie: Enabled=true; sessid=******; user=62215")); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "sessid=".$sessionid."&referrer=".$referrer."&userid=".$user."&email=".$mail."&signature=".$sig."&password=".$pass.""); curl_exec($ch); ?> |
waarom werkt mn smiley nietquote:
oeps (nioet van belang voor mij maar dat terzijdequote:Op dinsdag 19 september 2006 16:37 schreef qu63 het volgende:
alleen zo verwijder je wel alle andere gegevens uit je profiel
ik had gewoon nog mn profiel-edit pagina open staan, dus ff wachtwoord doen en klaarquote:Op dinsdag 19 september 2006 16:39 schreef mschol het volgende:
[..]
oeps (nioet van belang voor mij maar dat terzijde)
1 2 3 4 5 6 7 8 9 | $ch = curl_init("http://forum.fok.nl/user/profile/77135"); curl_setopt($ch,CURLOPT_HTTPHEADER, array("Host: forum.fok.nl","Referer: http://forum.fok.nl/user/active/77135" color="#007700">,"Connection: Keep-Alive","Cookie: Enabled=true; sessid=**; user=77135")); curl_setopt($ch,CURLOPT_HTTPGET, 1); $file = fopen("profile.html",w); //curl_setopt($ch, CURLOPT_URL, "http://forum.fok.nl/user/profile/77135"); curl_setopt($ch, CURLOPT_FILE, $file); $lines = curl_exec($ch); ?> |
quote:Op dinsdag 19 september 2006 17:00 schreef Darkomen het volgende:
Mooi! ff jatten :p
Ja, dat lag wel voor de hand jaquote:Op dinsdag 19 september 2006 16:15 schreef mschol het volgende:
@SkaterSam
zet achter je mysql_query() eens or die(mysql_error());
inlezen vanaf fok gaat goed, alleen het inlezen van profile.html (op mijn eigen server) gfaat niet lekker...quote:Op dinsdag 19 september 2006 17:50 schreef Darkomen het volgende:
Hey crapnah ik zie het wel als het werkt
Heee, ik kan natuurlijk gewoon een combo van het controleren van de link en een cronjob om de oude te verwijderen, dan verwijder ik de data uit de table na maximaal 47 uur en 59 minuten. Even kijken of dat kan...quote:Op dinsdag 19 september 2006 18:01 schreef Darkomen het volgende:
Niet, daar is niet direct een oplossing voor.
Gewoon waneer de user de link gebruikt, controleren of hij al meer dan 24 uur erin staat, zo ja, pech, token ongeldig, oude verwijderen, nieuwe aanmaken.
En of in je admin, of ergens anders ff een script erinproppen die de oude verwidjerd
curl_close($ch);quote:Op dinsdag 19 september 2006 18:01 schreef mschol het volgende:
[..]
inlezen vanaf fok gaat goed, alleen het inlezen van profile.html (op mijn eigen server) gfaat niet lekker...
me script raakt in een oneindige loop ofzo...
die stond er bij, waarschijnlijk niet mee gekopieerdquote:Op dinsdag 19 september 2006 18:06 schreef qu63 het volgende:
[..]
curl_close($ch);
zet die er eens bij?
ik zie gewoon je normale profielpagina als ik naar http://fia181-83.dsl.hccnet.nl/fok/profile.html ga hoorquote:Op dinsdag 19 september 2006 18:22 schreef mschol het volgende:
[..]
die stond er bij, waarschijnlijk niet mee gekopieerd
om de een of ander reden lees file() niet het hele bestand in
dit is wat ik in de laatste loop van mijn script terug krijg:
http://fia181-83.dsl.hccnet.nl/fok/posts-reader.php
en dat leest hij in van http://fia181-83.dsl.hccnet.nl/fok/profile.html
hij stikt rond lijntje 76 in de html file...
normaal ging hij zonder problemen naar +300
1 2 3 4 5 6 7 8 | $test_line = '<tr><td style="background:#F5F5F0;"> </td><td>Aantal posts:</td><td>1295 (gemiddeld 2 per dag)</td></tr></tbody>'; preg_match_all ($regex,$test_line,$needle); $i=0; foreach ($needle as $val) { echo "matched: " . $val[$i] . "<br>"; $i++; } |
quote:Op dinsdag 19 september 2006 18:46 schreef Darkomen het volgende:
ik kom er trouwens niet uit met preg_match_all, krijg hierbij 4 keer niks
[ code verwijderd ]
1 |
Wat is het verschil?quote:Op dinsdag 19 september 2006 19:23 schreef Light het volgende:
[..]
[ code verwijderd ]
Niet getest overigens.
zat ik ook al naar te zoeken, maar ik gok op een paar \'s die er uit gehaald zijnquote:
quote:Op dinsdag 19 september 2006 19:41 schreef Darkomen het volgende:
Ik zie het ook niet
Maar mschol weet het welbij hem werkte het schijnbaar
dat wist ik ook idd.. alleen mijn php script leest em niet goed (om een of ander reden)quote:Op dinsdag 19 september 2006 18:32 schreef qu63 het volgende:
[..]
ik zie gewoon je normale profielpagina als ik naar http://fia181-83.dsl.hccnet.nl/fok/profile.html ga hoor
quote:Op dinsdag 19 september 2006 20:24 schreef Darkomen het volgende:
Ik heb gewoon gezegd sleep voor 5 seconden.
moie funcite maar et werkt nog nietquote:Op dinsdag 19 september 2006 20:47 schreef Darkomen het volgende:
haha,lukt het dan wel? laat maar weten, ennuh een peek @ je script
quote:Op dinsdag 19 september 2006 19:27 schreef qu63 het volgende:
hoe kan ik nou het makkelijkst mijn profiel-pagina uitlezen en daarna weer invoeren dmv mijn scriptje van de vorige pagina
regex..quote:Op dinsdag 19 september 2006 21:20 schreef Darkomen het volgende:
Uitlezen kan op de manier die Mschol aangeeft, maar dan moet je gaan zoeken naar de values van de velden die je wilt doorsturen. en dat lukt mij dus nog niet
Hmmja, het forum is wat te fanatiek met backslashes strippenquote:Op dinsdag 19 september 2006 19:33 schreef qu63 het volgende:
[..]
zat ik ook al naar te zoeken, maar ik gok op een paar \'s die er uit gehaald zijn
erg vreemd want bij mij werkt het prima (al een hele tijd...quote:Op woensdag 20 september 2006 09:54 schreef Darkomen het volgende:
Nog geen effect bij mij,
http://borntobewild.satanist.nl/fok2.php
hele code is hier te zien:quote:Op woensdag 20 september 2006 10:33 schreef Darkomen het volgende:
Werkt ook niet roonaan, ik krijg alleen lege array's
array(3) { [0]=> array(0) { } [1]=> array(0) { } [2]=> array(0) { } }
@mschol, kan jij je code eens in een txt file zetten, volgens mij zit er geen verschil tussen jouw code en de mijne, behalve dat ik dus niks in de db zet en geen controle uitvoer.
Pak ik een andere regex en test text dan werkt het wel?!
hij ligt nu 6 posts achterquote:Op woensdag 20 september 2006 11:27 schreef Darkomen het volgende:
Ik ga hem eens aanpassen naar mijn userid, geen db info, en dan eens kijken wat er gebeurd.
Edit: wazig zo doet hij het dus wel, wat heb ik dan vern**kt?
http://borntobewild.satanist.nl/mschol.php
Bedankt
die code heb ik erin gezet zodat in princiepe altijd je lokale file wordt ingelezen voordat hij wordt overschrevenquote:Op woensdag 20 september 2006 12:04 schreef Darkomen het volgende:
if(!file_exists($local_file))
{
Maar die lokal file bestaat, voor de exit zou nog een unlink kunnen.
Hij is dus idd niet up to date, maar dat maakt niet uit, ging mij er meer om om een werkend voorbeeld te hebben
morgen dusquote:Op woensdag 20 september 2006 00:51 schreef qu63 het volgende:
snap dr geen hout van
morgen maar eens verder kijken
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | while($i<1000) { echo($lines[$i]); if(preg_match_all($regex,$lines[$i],$needle)) { $needle = split(' ',$needle[0][0]); if($needle[0] != '' && is_numeric($needle[0])) { $query = RunQuery("INSERT INTO `posts` (`posts`,`datum`,`ID`) VALUES('$needle[0]','".date('Y-m-d H:i:s')."','".$ID."')"); CloseConDB($con); unlink($local_file); //exit; echo("done<br>"); } } $i++; } echo("done_na_while"); ?> |
1 |
dat zou hij idd niet als match terug geven (dan had ik immers ook done teruggekregenquote:Op donderdag 21 september 2006 08:48 schreef Darkomen het volgende:
Wazig, wat is er zo bijzonder bij die regel dat hij er op moet stoppen?
Behalve dan dat het topic nummer een nummerice waarde is, maar dat zou hij toch niet als match moeten zien?
hmmmm in je while check je $needle, en in je if set je opnieuw de $needle. zou het daar fout kunnen gaan?quote:Op donderdag 21 september 2006 07:34 schreef mschol het volgende:
terugkomend op mijn probleem:
met deze code:
[ code verwijderd ]
krijg ik, wanneer profile.html NIET bestaat, alleen done_na_while terug
bestaat profile.html WEL, dan krijg ik done en done_na_while terug
de regel waar hij op stikt is trouwens de regel waar mijn signature staat, om precies te zijn na dit:
[ code verwijderd ]
nee in $needle wordt de match van preg_match_all gezet ( dat is dus bijvoorbeeld: 14252 (gemiddeld 15 per dag) )quote:Op donderdag 21 september 2006 09:17 schreef Desdinova het volgende:
[..]
hmmmm in je while check je $needle, en in je if set je opnieuw de $needle. zou het daar fout kunnen gaan?
1 2 3 | .....onclick="window.open('kaart/index.php?variabele=<?php echo $naam; ?>....... |
1 2 3 4 5 6 7 8 9 10 | php $Bnaam = $_GET['variabele']; ....... ...input name="tekstveld1" type="text" value= php echo $Bnaam; size="30" readonly="true".... ....... ?> |
Als het goed is hoeft dit helemaal niet, de webserver (of PHP) zet de tekens zelf al goed om.quote:Op donderdag 21 september 2006 14:25 schreef mschol het volgende:
en pagina 2 verander je dit:
$Bnaam = $_GET['variabele'];
naar dit:
$Bnaam = urldecode($_GET['variabele']);
ik ga gewoon maar een workaround bouwenquote:Op donderdag 21 september 2006 16:44 schreef Darkomen het volgende:
Noep, ben wel aan het spelen en krijg zelf af en toe de melding dat de file niet goed is, en dan is hij ook 0kb, maar als je hem opent staat alles er wel in?!
trouwens wel de 1000 vervangen voor count($lines)
maar ik krijg nog wel eens een lees fout van de file.
maar na reload vindt hij dus wel het aantal posts.
En daarna 10 keer fout bij inlezen, en die snap ik dus echt niet, die file is er toch?!
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 | <head> <title>New Customer Information</title> </head> <body> <br/><br/> <p align='center'> Please enter your full name and your user name: </p> <form action='process_newcustomer.php' method='post'> <table align='center' width='60%' border='0'> <tr> <td width='150'> Full Name:</td> <td><input type='text' name='fullname' size='30'/></td> </tr> <tr> <td width='150'> User Name:</td> <td><input type='text' name='username' size='30'/></td> </tr> <tr> <td colspan='2' align='center'> <input type='submit' value='Submit'/> </td> </tr> </table> </form> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <head> <title>Welcome !!!</title> </head> <body> <?php $fullName = $_POST['fullname']; $userName = $_POST['username']; ?> <br/><br/> <p align='center'> Welcome new customer! You have entered the following information: </p> <p align='center'> Full Name: <b> <?php echo $fullName; ?> </b><br/> User Name: <b> <?php echo $userName; ?> </b><br/> </p> </body> </html> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |