Hallo,

Ik ben bezig met een bot maken op aanbodpagina.nl, deze bot, logt in, verwijderd alle adevertenties en plaatst er nieuwe. Echter zit ik vast bij het plaatsen van de advertentie zelf.

Op aanbodpagina.nl zelf zijn er 3 fasen bij het posten van een advertentie: het kiezen van de categorie, invullen van informatie en het 'je advertentie is gepost'-bericht. (alles gaat via eenzelfde script, place.aspx)

Met cURL zend ik de gegevens met categorie en krijg ik succesvol de 2e pagina maar als ik dan de informatie van pagina 2 wel verzenden krijg ik dit gereturnt:
<html>
    <head>
        <title>Runtime Error</title>
        <style>
         body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 
         p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
         b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
         H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
         H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
         pre {font-family:"Lucida Console";font-size: .9em}
         .marker {font-weight: bold; color: black;text-decoration: none;}
         .version {color: gray;}
         .error {margin-bottom: 10px;}
         .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
        </style>
    </head>

    <body bgcolor="white">

            <span><H1>Server Error in '/' Application.<hr width=100% size=1 color=silver></H1>

            <h2> <i>Runtime Error</i> </h2></span>

            <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">

            <b> Description: </b>An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
            <br><br>

            <b>Details:</b> To enable the details of this specific error message to be viewable on remote machines, please create a &lt;customErrors&gt; tag within a &quot;web.config&quot; configuration file located in the root directory of the current web application. This &lt;customErrors&gt; tag should then have its &quot;mode&quot; attribute set to &quot;Off&quot;.<br><br>

            <table width=100% bgcolor="#ffffcc">
               <tr>
                  <td>
                      <code><pre>

&lt;!-- Web.Config Configuration File --&gt;

&lt;configuration&gt;
    &lt;system.web&gt;

        &lt;customErrors mode=&quot;Off&quot;/&gt;
    &lt;/system.web&gt;
&lt;/configuration&gt;</pre></code>

                  </td>
               </tr>
            </table>

            <br>

            <b>Notes:</b> The current error page you are seeing can be replaced by a custom error page by modifying the &quot;defaultRedirect&quot; attribute of the application's &lt;customErrors&gt; configuration tag to point to a custom error page URL.<br><br>

            <table width=100% bgcolor="#ffffcc">

               <tr>
                  <td>
                      <code><pre>

&lt;!-- Web.Config Configuration File --&gt;

&lt;configuration&gt;
    &lt;system.web&gt;
        &lt;customErrors mode=&quot;RemoteOnly&quot; defaultRedirect=&quot;mycustompage.htm&quot;/&gt;

    &lt;/system.web&gt;
&lt;/configuration&gt;</pre></code>

                  </td>
               </tr>
            </table>

            <br>

    </body>

</html>


De functie waarmee ik alles post is deze:
	public function place($title, $description, $picture, $url)
	{
		$arrVars = $this->getVars('https://adverteren.aanbodpagina.nl/');
	
		$arrPost = array('__EVENTTARGET'														=>	'',
						 '__EVENTARGUMENT'														=> 	'',
						 '__LASTFOCUS'															=> 	'',
						 '__VIEWSTATE'															=>	$arrVars['__VIEWSTATE'],
						 'ctl00_AdCategoryDropDownList'											=>	'',
						 'subid'																=>	'0',
						 'ctl00$MainContent_ContentPlaceHolder$AdCategoryDropDownList'			=>	'43',
						 'ctl00$MainContent_ContentPlaceHolder$AdSubCategoryDropDownList'		=>	'819',
						 'ctl00$MainContent_ContentPlaceHolder$AdTypeRadioButtonList'			=>	'1',
						 'ctl00$MainContent_ContentPlaceHolder$btnSaveAd'						=> 	'Doorgaan >>');
		
		$Handle = curl_init('https://adverteren.aanbodpagina.nl/place.aspx');
		curl_setopt($Handle, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
		curl_setopt($Handle, CURLOPT_POST, true);
		curl_setopt($Handle, CURLOPT_POSTFIELDS, $arrPost);
		curl_setopt($Handle, CURLOPT_HEADER, 0);
		curl_setopt($Handle, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($Handle, CURLOPT_COOKIEFILE, $this->cookie);
		curl_setopt($Handle, CURLOPT_COOKIEJAR, $this->cookie);
		curl_setopt($Handle, CURLOPT_SSL_VERIFYPEER, FALSE);
		curl_setopt($Handle, CURLOPT_SSL_VERIFYHOST,  2);
		$Data = curl_exec($Handle);
		curl_close($Handle);
		
		$arrVars = $this->searchVars($Data);
		
		$arrPost = array('__EVENTTARGET'														=>	'',
						 '__EVENTARGUMENT'														=> 	'',
						 '__LASTFOCUS'															=> 	'',
						 '__VIEWSTATE'															=>	$arrVars['__VIEWSTATE'],
						 'ctl00_AdCategoryDropDownList'											=>	'',
						 'subid'																=>	'0',
						 'ctl00$MainContent_ContentPlaceHolder$AdTitleTextBox'					=>	$title,
						 'ctl00$MainContent_ContentPlaceHolder$AdTextTextBox'					=>	$description,
						 'ctl00$MainContent_ContentPlaceHolder$AdPriceTextBox'					=>	'',
						 'ctl00$MainContent_ContentPlaceHolder$AdPriceTypeDropDownList'			=>	'5',
						 'ctl00$MainContent_ContentPlaceHolder$AdExpireInDaysDropDownList'		=>	'84',
						 'ctl00$MainContent_ContentPlaceHolder$Uploader1'						=>	'',
						 'ctl00$MainContent_ContentPlaceHolder$AdLocationCheckBox'				=>	'on',
						 'ctl00$MainContent_ContentPlaceHolder$WebsiteTextBox1'					=>	'http://',
						 'ctl00$MainContent_ContentPlaceHolder$btnSaveAd'						=> 	'Doorgaan >>');
		
		$Handle = curl_init('https://adverteren.aanbodpagina.nl/place.aspx');
		curl_setopt($Handle, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
		curl_setopt($Handle, CURLOPT_POST, true);
		curl_setopt($Handle, CURLOPT_POSTFIELDS, $arrPost);
		curl_setopt($Handle, CURLOPT_HEADER, 0);
		curl_setopt($Handle, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($Handle, CURLOPT_COOKIEFILE, $this->cookie);
		curl_setopt($Handle, CURLOPT_COOKIEJAR, $this->cookie);
		curl_setopt($Handle, CURLOPT_SSL_VERIFYPEER, FALSE);
		curl_setopt($Handle, CURLOPT_SSL_VERIFYHOST,  2);
		$Data = curl_exec($Handle);
		curl_close($Handle);
		
		echo $Data;
	}

(het eerste cURL-stukje is succesvol, bij het 2e krijg ik die error (kijk echo).)

Ik hoop dat jullie me kunnen vertellen wat er fout gaat.

Alvast bedankt,
Pim

Edit: Sorry dat ik hier direct met een vraag aankom terwijl ik nieuw ben maar ik op een andere community krijg ik nooit antwoord op m'n vraag terwijl ik zelf best actief ben en hoop bij deze een betere community te vinden waarop ik actief kan zijn.
BUMP

Kan nu echt niemand dit probleem oplossen?
Alles is mogelijk met php..

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.

Je hebt 't over de laatste pagina?

Wellicht linkt ie door en moet je dit toevoegen;

<?php
curl_setopt($Handle, CURLOPT_FOLLOWLOCATION, 1);
?>
Bij het debuggen zou je kunnen kijken wat de eerste request als resultaat heeft. Als die al fouten meldt dan weet je dat daar het probleem zit.

Verder denk ik dat je __VIEWSTATE ook zult moeten de juiste waarde meeleveren ipv leeglaten.
Die eerste doet het zoals er vermeld staat, enkel die laatste geeft hij een error en VIEWSTATE is altijd leeg hoor.

Ik zal straks kijken naar de eerste reactie, alvast bedankt.
Heb alles geprobeerd wat jullie zeiden maar blijf bij hetzelfde probleem..

Misschien dat iemand me kan helpen via MSN=>FTP?

Of gewoon hier.

Gelieve Niet Bumpen: Herhaling

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.


15 euro beloning voor diegene die de oplossing vind!

Reageren