1 2 3 4 5 6 7 8 9 10 11 | $ch = curl_init(); echo curl_error($ch); curl_setopt($ch, CURLOPT_URL, "http://www.google.com/"); //movie PI curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); $output = curl_exec($ch); echo curl_error($ch); curl_close($ch); echo $output; ?> |
Waarschijnlijk moet je cookies meesturenquote:Op woensdag 7 mei 2008 19:48 schreef Dzy het volgende:
Hmm, hoe doen jullie dat met headers enzo sturen met curl? Als ik met cURL imdb probeer te openen geeft hij een 111 error, volgens google betekent dit dat hij geen connectie kan openen. Ik heb ook een paar andere pagina's geprobeerd te openen maar allen geven error 111. Dit is m'n code, ik doe toch niets fout of wel?
[ code verwijderd ]
Volgens phpinfo support mn host wel cURL:
CURL support enabled
CURL Information libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Dus ik snap niet precies wat er mis is. Iemand?
1 2 | curl_setopt($ch, CURLOPT_COOKIEFILE, "cook"); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | GET /title/tt0481536/ HTTP/1.1 Host: www.imdb.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: cs=3uSEDutJagOs3OFX9fmfTA/+EDT6WFdifP3CJGjY9wH/yGBUL0AnYnHqV+pf+MPgb+hXYnlesCI/yFdiSd9X6n/IV1RH2N9ifdZ1YvjrR/b4nrEkL19RlX/IVyLf2BdCf+hXYn/IVyI/mBdSc=; uu=+mWv/hKNWfFsRJrmViWWKAronhA8qJ42rzudgD/b7UM/rt1DLyu9Bm+bvWN9z8lDGt7I4JyonhAPqx6wPAjdct/7vPNq3h6wfP/4lq5OeNCaLmjGaExesEwInrAYXFrUbAj7tU/afWMf6n0zLyu880877rD/2+0DT7u9AxyoPrCc6L4QO57IRtyonhB5n56YIfgKkiw8HA48qJ4QCw5+UByo2AbiRs4QPLgKkiyInhA8qJ5QfPjeID; session-id=613-0180128-2350691; session-id-time=1210266528 HTTP/1.x 200 OK Date: Wed, 07 May 2008 18:14:36 GMT Server: Server Set-Cookie: uu=grgE9OCRwbH3IQaed7gfHAronhA8qJ42rzudgD/b7UM/rt1DLyu9Bm+bvWN9z8lDGt7I4JyonhAPqx6wPAjdct/7vPNq3h6wfP/4lq5OeNCaLmjGaExesEwInrAYXFrUbAj7tU/afWMf6n0zLyu880877rD/2+0DT7u9AxyoPrCc6L4QOr5JttyonhB4KoHp/KieAKpI3jA876hGZLieED69qRCypc6EvJgKkiyInhA8qJ5QfPjeID;expires=Thu, 30 Dec 2037 00:00:00 GMT;path=/;domain=.imdb.com Set-Cookie: cs=accfTfBlqOPm1/G+Z8Z1YQH1umv2w+17xkvd83JB8mM2w+1LYEOtW/bD2zyhpZ179fRpbVZQrlhgVQo7VsPte8DU7fP2w+1NztNle/Tdz3tx4P3vcZULPaZU64z2w+07VtOtW/bj7Xv2w+07tpOtS/;expires=Thu, 08 May 2008 07:00:00 GMT;path=/;domain=.imdb.com Cache-Control: private Content-Type: text/html Vary: Accept-Encoding,User-Agent Content-Encoding: gzip Content-Length: 13154 nnCoection: close |
Waar slaat dat nou weer op? Curl is geschikt om o.a. GET, POST, PUT en DELETE requests uit te kunnen voeren, bijvoorbeeld om een RESTful interface te gebruiken. Hoe kom je erbij dat het vooral is om een formulier te posten?quote:Op woensdag 7 mei 2008 19:50 schreef qu63 het volgende:
en curl is vooral om een formulier te submitten (om bijvoorbeeld automatisch op fok te kunnen posten)
omdat ik het zo alleen gebruikquote:Op woensdag 7 mei 2008 20:40 schreef CraZaay het volgende:
[..]
Waar slaat dat nou weer op? Curl is geschikt om GET, POST, PUT en DELETE requests uit te kunnen voeren, bijvoorbeeld om een RESTful interface te gebruiken. Hoe kom je erbij dat het vooral is om een formulier te posten?
1 2 3 4 5 6 7 8 9 10 | echo curl_error($ch); $timeout = 5; // set to zero for no timeout curl_setopt ($ch, CURLOPT_URL, 'http://www.imdb.com/nowplaying/'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file_contents = curl_exec($ch); echo curl_error($ch); curl_close($ch); echo $file_contents; |
ik krijg eenquote:Op donderdag 8 mei 2008 00:00 schreef Dzy het volgende:
Kan iemand anders proberen IMDB te benaderen via cURL? Ik heb een joomla extension gevonden waarin ze ook met cURL imdb aanspreken en daar stond alleen extra een regeltje curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); bij, en ook daarmee deed hij het bij mij niet. Ik ben dus bang dat er bij mijn host iets niet helemaal goed zit. Dit is de volledige code die zou moeten werken:
[ code verwijderd ]
Ze hebben gewoon een firewall aanstaan dat al het verkeer via poort 80 naar buiten tegenhoudt.quote:Het is op onze machines niet meer mogelijk om externe URL's te 'includen' met Perl of met het PHP commando "fopen" of "curl" (allow_url_fopen). Het betreft hier uitsluitend http includes en connecties met het IRC en MSN netwerk.
Dit is gedaan in verband met de veiligheid van de aanwezige sites op deze servers, en voorkomt dat persoonlijke informatie zoals o.a. passwords makkelijk te verkrijgen is door hackers. Daarnaast kregen wij regelmatig klachten van website beheerders dat content zonder toestemming werd overgenomen en dat er via onze server getracht werd illegale activiteiten te ontplooien gebruikmakend van een Proxy-script (Als PHProxy), om zodoende de identiteit van de surfer te verbergen.
We verontschuldigen ons voor het onwaarschijnlijke geval dat u hinder ondervindt van deze configuratieaanpassing, echter hopen we dat u begrijpt dat deze aanpassing vrijwel uitsluitend voordelen heeft voor de beveiliging op de gehele server, en dat dit door ons ook niet per hostingpakket in te stellen is.
Overigens zijn er wel mogelijkheden om via html externe url's te includen. U doet dat door een zgn. "iframe" op te nemen, met daarin een directe link naar de pagina die u wilt includen. Zodoende loopt de include vanaf de server van de eigenaar zelf, en laadt daarnaast uw website veel sneller. (En het scheelt u dataverbruik).
Het openen van sockets via poort 80 is door de maatregel ook niet meer mogelijk. Wellicht kunt u gebruik maken van poort 81 of 443 voor https communicatie.
Bizar zeg. Ze gaan er vanuit dat je nooit een of andere API van een webservice wilt gebruiken?quote:Op donderdag 8 mei 2008 00:51 schreef Dzy het volgende:
Ze hebben gewoon een firewall aanstaan dat al het verkeer via poort 80 naar buiten tegenhoudt.
Ik heb er uitgebreid mee geëxpirimenteerd, dus het is zeker wel geïnstalleerdquote:Op donderdag 8 mei 2008 00:16 schreef Dzy het volgende:
Er is geen cURL geinstalleerd dan
Edit: Maar toch bedankt
Ja.quote:Op donderdag 8 mei 2008 08:39 schreef CraZaay het volgende:
[..]
Bizar zeg. Ze gaan er vanuit dat je nooit een of andere API van een webservice wilt gebruiken?
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 | /* Load main library Files */ require_once ( "lib/htconfig.php" ); require_once ( LIB_PATH . "/f_core.php" ); $path = BASE_PATH . "/include/upload/fck/voorkant.jpg"; $to = "wobbel@gmail.com"; $subject = "Test"; $body = "testberichtje"; $filename = "plaatje.jpg"; // Open te file $fp = @fopen ( $path, "r" ); // Check for errors if ( !$fp ) { die ( "Error #4" ); } // Grab file from server while ( !feof ( $fp ) ) { $file_content .= fread ( $fp , 1024 ); } // Close file fclose ( $fp ); // Encode file base 64 $file_content = chunk_split ( base64_encode ( $file_content ) ); // Create unique boundary using md5 $boundary = strtoupper ( md5 ( uniqid ( time ( ) ) ) ); // Create the headers $header .= "MIME-version: 1.0\n"; $header .= "Content-Type: multipart/mixed;\n"; $header .= "\tboundary= " . $boundary . "\n\n"; $header .= "This is a multi-part message in MIME format.\n\n"; // Creathe message body $header .= "--" . $boundary . "\n"; $header .= "Content-type: text/html; charset=iso-8859-1;\n"; // Adding the message to the body $header .= "De tekst in mijn email\n\n"; // Adding headers for the attachment $header .= "--" . $boundary . "\n"; $header .= "Content-Type: application/octet-stream; name=\"" . $filename . "\"\n"; $header .= "Content-Transfer-Encoding: base64;\n"; $header .= "Content-Disposition: attachment; filename=\"" . $filename . "\"\n\n"; // Add the attachment to the headers $header .= $file_content . "\n\n"; $header .= "--" . $boundary . "--"; // Send the e-mail mail ($to,$subject,"",$header); echo "verzonden..."; ?> |
Oke, ik heb nu dit...maar die leegt alsnog de hele tabel SHOP_Cartcontents, ongeacht de datum van SHOP_Carts.Datequote:Op dinsdag 6 mei 2008 14:23 schreef JortK het volgende:
[..]
Lijkt mij allebei, de bovenste verwijderd je 'winkelwagen' de onderste je 'winkelwageninhoud'
1 2 3 4 | mysql_query ( "DELETE FROM SHOP_Cartcontents WHERE SHOP_Cartcontents.CartID IN (SELECT CartID from SHOP_Carts WHERE SHOP_Carts.Date < '1210246772')" ) or die ( mysql_error ( ) ); mysql_query ( "DELETE FROM SHOP_Carts WHERE Date < '1210246772'" ) or die ( mysql_error ( ) ); ?> |
Is er een reden dat je zelf bijlagen wilt versturen? Anders kun je beter phpMailer gebruiken. Die kan ook bijlagen versturen en nog veel meer stoere dingenquote:Op donderdag 8 mei 2008 12:42 schreef wobbel het volgende:
Ik heb een script dat bijlagen verzend, maar die werkt niet helemaal goed
De bijlagen komen in Mozilla Thunderbird wel goed binnen, alleen Gmail ziet ze als beschadigd...en sommige andere e-mail clients vreten hem ook niet
Dit is de code:
[ code verwijderd ]
BASE_PATH is gewoon goed gedefinieerdalleen de bestanden die ik binnenkrijg zijn allemaal beschadigd
Bestandsgrootte's kloppen wel ongeveer
Als ik het goed begrijp kan SOAP alleen met HTTP authenticatie overweg, de rest zal je dus in de soap-server moeten oplossen. Wat ik dus gedaan heb, en dat lijkt allemaal te werkenquote:Op vrijdag 9 mei 2008 08:21 schreef Xcalibur het volgende:
Ik heb pas een mooie SOAP/XML server gemaakt met NuSOAP, met een aantal bijbehorende clients. Hartstikke leuk, en het werkt ook prima... Deze data is natuurlijk voor iedereen beschikbaar, dus nu krijg ik alleen de vraag of er ook een authorisatie mechanisme kan komen. Dus dat je eerst moet inloggen, voordat je de data krijgt.
In NuSOAP heb ik wel de functie SetCredentials() gevonden, waarmee je dus je username en password kan zetten. Wat ik alleen niet begrijp is waartegen deze gechecked worden... Moet ik een functie maken die de inloggegevens met de database vergelijkt, is dit een HTTP authenticatie, etc. ?
Wie weet raad?
1 2 3 4 5 6 7 | $limit = 50000; $num_records = $db->result('SELECT COUNT(id) FROM stat_info'); if ($num_records > $limit) { $db->query('DELETE FROM stat_info ORDER BY date ASC LIMIT '.($num_records-$limit)); } ?> |
Volgens mij gaat de delete-query mis, omdat date een keyword is in MySQL. Daar zou je dan backtics omheen moeten zetten, dus `date`. Nog mooier is het om geen keywords als kolomnamen te gebruikenquote:Op maandag 12 mei 2008 13:26 schreef wipes66 het volgende:
kan iemand voor mij verifieren dat deze query alleen de oude gegevens verwijdert? Het is zo lullig als er belangrijke gegevens verloren gaan door mijn gepruts![]()
![]()
[ code verwijderd ]
Als je DELETE even vervangt door SELECT *, dan kun je zien wat er allemaal verwijderd gaat worden.quote:Op maandag 12 mei 2008 13:26 schreef wipes66 het volgende:
kan iemand voor mij verifieren dat deze query alleen de oude gegevens verwijdert? Het is zo lullig als er belangrijke gegevens verloren gaan door mijn gepruts![]()
![]()
[ code verwijderd ]
Het is wel een keyword. Maar voor dit specifieke geval heb je inderdaad geen backticks nodig. Dat zegt de MySQL documentatie.quote:Op maandag 12 mei 2008 13:40 schreef Farenji het volgende:
Nee hoor, date is geen keyword, als kolomnaam heb je geen backticks nodig. Deze query moet gewoon goed gaan. En ja, hij wist alleen oude records.
quote:Op maandag 12 mei 2008 13:26 schreef wipes66 het volgende:
kan iemand voor mij verifieren dat deze query alleen de oude gegevens verwijdert? Het is zo lullig als er belangrijke gegevens verloren gaan door mijn gepruts![]()
![]()
[ code verwijderd ]
1 |
of als er 50001 records zijn blijft er nog maar 1 record over.quote:Op maandag 12 mei 2008 14:18 schreef SuperRembo het volgende:
[..]
Als dit script twee maal tegelijk wordt uitgevoerd bestaat (theoretisch) de kans dat je alle records verwijderd. Waarom niet gewoon zo?
[ code verwijderd ]
Foutje. De nieuwste 50000 moeten natuurlijk blijven staan, niet de oudste. Dus ORDER BY date DESC niet ASC.quote:Op maandag 12 mei 2008 14:23 schreef qu63 het volgende:
[..]
of als er 50001 records zijn blijft er nog maar 1 record over.
1 2 3 4 5 6 7 | $limit = 50000; $num_records = $db->result('SELECT COUNT(id) FROM stat_info'); if ($num_records > $limit) { $db->query('DELETE FROM stat_info ORDER BY date DESC LIMIT ?,?',array($limit,$num_records)); } ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |