Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDevelopment and...Development and...Getting StartedGetting StartedPHP+Curl, Sending Post request to update text inside a text areaPHP+Curl, Sending Post request to update text inside a text area
Previous
 
Next
New Post
10/10/2010 9:58 AM
 
I have a PHP+Curl script that has:
  • urls.txt : list of urls to hit
  • bad.txt : list of words to scan and replace
  • fix-dnn.php : the main script

fix-dnn.php

  • Populate an array of urls from urls.txt
  • Populate an array of badwords from bad.txt
  • Any urls that start with "#" in urls.txt are disabled.
  • Do a get request on every url one by one
    • Extract the text saved inside textarea.
    • Scan for extracted content for any bad words
    • Replace bad words with #
    • Resend the new created filtered data back to that url using post so its saved

Issue

  • the POST request is not working, it doesn't update content to filtered content.


Example Use case

  • Pick http://nolimitswebdesign.com.dnnmax.com/test/tabid/57/ctl/Edit/mid/374/Default.aspx
  • Check content under " Edit Text/HTML" after you click "Basic Text Box"
  • You would see some hidden hyperlinks
  • The text specific inside <a> tags there is also specific in bad.txt, e.g. it has to be replaced with #
  • Script works fine, but the last post doesn't update content of the text area.



Code

urls.txt




bad.txt

thistextSHOULBEDELETED





fix-dnn.php

001.<?php
002. 
003.// get arrays of bad worlds
004.$urls = file("urls.txt");
005.$badWords = file("bad.txt");
006. 
007. 
008.// loop over every url...
009.foreach($urls as $url) {
010. 
011.    // get rid of any whitespace of linebreaks
012.    $url = trim($url);
013. 
014.    if(!startsWith($url, "#")) //# is used to comment any inactive urls
015.    {
016. 
017.        echo "<BR />\n Sending Request to ". $url;
018.        // sending a get request using curl
019.        $getPage = sendCurl( $url, false, "" );
020.        echo "<BR />\n Got Response";
021. 
022. 
023.        // Check for possible errors
024.        if ( $getPage['errno'] != 0 )
025.            echo"<BR />\n Could not get Page: Error => bad url | timeout | redirect loop";
026. 
027.        else if ( $getPage['http_code'] != 200 )
028.            echo"<BR />\n Could not get Page : Error => no page | no permissions | no service";
029. 
030.        else {
031.            echo "<BR />\n No Errors Encountered. Successfully fetched page";
032. 
033.            // get page content
034.            $page = $getPage['content'];
035. 
036. 
037. 
038. 
039.            //echo "<BR />\n Extracted View State:<BR />\n" . $viewstate;
040.            //echo "<BR />\n";
041.            $viewstate = getVStateContent($page);
042. 
043. 
044. 
045.            // extracting data from textarea
046.            $content = getTAreaContent($page);
047.            //echo "<BR />\n Extracted Content:<BR />\n" . $content;
048.            //echo "<BR />\n";
049. 
050. 
051.            // check if extracted data contains any bad words
052.            foreach($badWords as $badWord) {
053. 
054.                // get rid of any whitespace of linebreaks
055.                $badWord = trim($badWord);
056. 
057.                //echo "<BR />\nTesting for : " . $badWord;
058.                //echo "<BR /><BR />\n\nstrstr(\"$content\",\"$badWord\")";
059. 
060.                // check if selected bad word exists in content, if yes, replace it
061.                if(strstr($content, $badWord)) {
062.                    //echo "Found it";
063.                    $content = str_replace($badWord, "#", $content);
064.                }
065.            }
066. 
067.        //echo "<BR /><BR />\n\n New Content:<BR />\n" . $content;
068.        //echo "<BR /><BR />\n\n";
069. 
070. 
071.        $postContent = getPostArray($viewstate, $content);
072.        echo "<BR /><BR />\n\n Post Content:<BR />\n";
073.        print_r($postContent);
074. 
075. 
076. 
077. 
078.        echo "<BR /><BR />\n\n";
079.        echo "<BR />\n Sending Postback to : " . $url;
080.        $postbackPageCurl = sendCurl( $url, true, $postContent );
081. 
082.        // Check for possible errors
083.        if ( $postbackPageCurl['errno'] != 0 )
084.            echo"<BR />\n Could not send postback : Error => bad url | timeout | redirect loop";
085. 
086.        else if ( $postbackPageCurl['http_code'] != 200 )
087.            echo"<BR />\n Could not send postback : Error: no page | no permissions | no service";
088. 
089.        else {
090. 
091.                echo "<BR />\n Postback was sent successfuly";
092.                echo "<BR />\n";
093. 
094. 
095. 
096.                // get page content, this should contain the filtered content and "Basic Text Box" checked
097.                $postbackPage = $postbackPageCurl['content'];
098.                //echo "<BR /><BR />\n\nPage content:<BR/><BR/>\n\n";
099.                //echo $postbackPage;
100. 
101.                echo "<BR /><BR />\n\n";
102.                echo "Returned content after Post is <BR/>\n";
103.                echo getTAreaContent($postbackPage);
104.                echo "<BR /><BR />\n\n";
105.            }
106. 
107.        }
108. 
109.    }
110. 
111. 
112.}
113. 
114. 
115. 
116.// This function extracts and returns the text written inside text area from page's content
117.function getTAreaContent($data) {
118.    $contentStartTag = "wrap=\"virtual\">";
119.    $contentEndTag = "</textarea>";
120.    $contentStartIndex = strpos($data, $contentStartTag) +15;
121.    $contentEndIndex = strpos(substr($data, $contentStartIndex), $contentEndTag);
122. 
123.    // extracting data from textarea
124.    $content = substr($data, $contentStartIndex, $contentEndIndex);
125. 
126.    return $content;
127. 
128.}
129. 
130. 
131.// This function extracts and returns __VIEWSTATE from a page's content
132.function getVStateContent($data) {
133. 
134.    $viewstateStartTag = "<input type=\"hidden\" name=\"__VIEWSTATE\" id=\"__VIEWSTATE\" value=\"";
135.    $viewstateEndTag = "\" />";
136.    $viewstateStartIndex = strpos($data, $viewstateStartTag) + 64;
137.    $viewstateEndIndex = strpos(substr($data, $viewstateStartIndex), $viewstateEndTag);
138.    $viewstate = substr($data, $viewstateStartIndex, $viewstateEndIndex);
139. 
140.    return $viewstate;
141.}
142. 
143. 
144. 
145. 
146. 
147.// This function return POSTARGS that are meant to be sent to the page within post request
148.function getPostArray($viewstate, $content) {
149. 
150.    $postContent["__EVENTTARGET"] = "dnn\$ctr374\$EditHTML\$teContent\$optView\$0";
151.    $postContent["__EVENTARGUMENT"] = "";
152.    $postContent["__LASTFOCUS"] = "";
153.    $postContent["__VIEWSTATE"] = $viewstate;
154.    $postContent["dnn\$dnnSEARCH\$txtSearchNew"] ="";
155.    $postContent["dnn\$ctr374\$EditHTML\$teContent\$optView"] = "RICH";
156.    $postContent["dnn\$ctr374\$EditHTML\$teContent\$txtDesktopHTML"] = $content;
157.    $postContent["dnn\$ctr374\$EditHTML\$txtDesktopSummary"] = "";
158.    $postContent["ScrollTop"] ="";
159.    $postContent["dnn\$ctr374\$EditHTML\$teContent\$optRender"] = "T";
160.    $postContent["dnn\$IconBar.ascx\$optMode"] = "VIEW";
161.    $postContent["__dnnVariable"] = "SearchIconWebUrl:url(/images/Search/google-icon.gif);".                                        "SearchIconSiteUrl:url(/images/Search/dotnetnuke-icon.gif);".
162.                                            "SearchIconSelected:S";
163. 
164. 
165.    return $postContent;
166.}
167. 
168. 
169. 
170. 
171. 
172.function startsWith($haystack,$needle,$case=true) {
173.    if($case){return (strcmp(substr($haystack, 0, strlen($needle)),$needle)===0);}
174.    return (strcasecmp(substr($haystack, 0, strlen($needle)),$needle)===0);
175.}
176. 
177.function endsWith($haystack,$needle,$case=true) {
178.    if($case){return (strcmp(substr($haystack, strlen($haystack) - strlen($needle)),$needle)===0);}
179.    return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)),$needle)===0);
180.}
181. 
182. 
183. 
184.// This function sends GET/POST requests using curl
185.function sendCurl( $url, $ispost=false, $postData="", $cookie="" )
186.{
187. 
188.    $options = array(
189.        CURLOPT_RETURNTRANSFER => true,             // return web page
190.        CURLOPT_HEADER         => false,            // don't return headers
191.        CURLOPT_FOLLOWLOCATION => true,             // follow redirects
192.        CURLOPT_ENCODING       => "",               // handle all encodings
193.        CURLOPT_AUTOREFERER    => true,             // set referer on redirect
194.        CURLOPT_CONNECTTIMEOUT => 120,              // timeout on connect
195.        CURLOPT_TIMEOUT        => 120,              // timeout on response
196.        CURLOPT_MAXREDIRS      => 10,               // stop after 10 redirects
197.        CURLOPT_USERAGENT      => "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)",
198.        CURLOPT_REFERER        => $url,
199.        CURLOPT_HTTPHEADER     => array(
200.            "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
201.            "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
202.            "Accept-Encoding: gzip,deflate",
203.            "Accept-Language: en-us,en;q=0.5",
204.            "Connection: Keep-Alive",
205.            "Content-Type: text/xml; charset=utf-8",
206.            "Expect: 100-continue",
207.            "Keep-Alive: 115")
208.                         // These headers were extracted from a DNN POST request using Firefox's Live HTTP Headers plugin
209. 
210.    );
211. 
212. 
213.    if($ispost) {
214.        $options[CURLOPT_POST] = 1;                 // its a post request
215.        $options[CURLOPT_POSTFIELDS] = $postData;   // data for post request
216.    }
217. 
218. 
219. 
220. 
221.    $ch      = curl_init( $url );
222.    curl_setopt_array( $ch, $options );
223.    $content = curl_exec( $ch );
224.    $err     = curl_errno( $ch );
225.    $errmsg  = curl_error( $ch );
226.    $header  = curl_getinfo( $ch );
227.    curl_close( $ch );
228. 
229.    $header['errno']   = $err;
230.    $header['errmsg']  = $errmsg;
231.    $header['content'] = $content;
232.    return $header;
233.}
234. 
235.?>



Output


02.Got Response
03.No Errors Encountered. Successfully fetched page
04. 
05.Post Content:
06.Array ( [__EVENTTARGET] => dnn$ctr374$EditHTML$teContent$optView$0 [__EVENTARGUMENT] => [__LASTFOCUS] => [__VIEWSTATE] => /wEPDwUJMjgzMDU3ODk3D2QWBmYPFgIeBFRleHQFeTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj5kAgEPZBYMAgEPFgIeB1Zpc2libGVoZAICDxYCHgdjb250ZW50BQpNeSBXZWJzaXRlZAIDDxYCHwIFOERvdE5ldE51a2UsIEROTiwgQ29udGVudCwgTWFuYWdlbWVudCwgQ01TLERvdE5ldE51a2UsRE5OZAIEDxYCHwIFKENvcHlyaWdodCAyMDA5IGJ5IERvdE5ldE51a2UgQ29ycG9yYXRpb25kAgUPFgIfAgULRG90TmV0TnVrZSBkAgYPFgIfAgUKTXkgV2Vic2l0ZWQCAg9kFgICAQ9kFgICBA9kFgJmD2QWFAIBD2QWAmYPZBYGAgMPEGRkFgFmZAIJD2QWAmYPDxYGHghJbWFnZVVybAUSL2ltYWdlcy9leHBhbmQuZ2lmHg1BbHRlcm5hdGVUZXh0BQhNYXhpbWl6ZR4HVG9vbFRpcAUITWF4aW1pemUWCh4HdXNlcmN0cgUJVXNhYmlsaXR5Hgd1c2Vya2V5BRRDb250cm9sUGFuZWxWaXNpYmxlMB4Hb25jbGljawVRaWYgKF9fZG5uX1NlY3Rpb25NYXhNaW4odGhpcywgICdkbm5fSWNvbkJhci5hc2N4X3Jvd0NvbnRyb2xQYW5lbCcpKSByZXR1cm4gZmFsc2U7HghtYXhfaWNvbgUSL2ltYWdlcy9leHBhbmQuZ2lmHghtaW5faWNvbgUUL2ltYWdlcy9jb2xsYXBzZS5naWZkAgsPFgIeBXN0eWxlBQ1kaXNwbGF5Om5vbmU7FgZmD2QWGAIDD2QWAmYPDxYCHwQFDEFkZCBOZXcgUGFnZWRkAgUPZBYCZg8PFgIfBAUVQ3VycmVudCBQYWdlIFNldHRpbmdzZGQCBw8PZBYCHgdvbkNsaWNrBUhqYXZhc2NyaXB0OnJldHVybiBjb25maXJtKCdBcmUgWW91IFN1cmUgWW91IFdpc2ggVG8gRGVsZXRlIFRoaXMgUGFnZT8nKTsWAmYPDxYCHwQFE0RlbGV0ZSBDdXJyZW50IFBhZ2VkZAIJDw8WAh8ABQNBZGRkZAILDw8WAh8ABQhTZXR0aW5nc2RkAg0PDxYCHwAFBkRlbGV0ZRYCHwwFSGphdmFzY3JpcHQ6cmV0dXJuIGNvbmZpcm0oJ0FyZSBZb3UgU3VyZSBZb3UgV2lzaCBUbyBEZWxldGUgVGhpcyBQYWdlPycpO2QCDw9kFgJmDw8WAh8EBRFDb3B5IEN1cnJlbnQgUGFnZWRkAhEPZBYCZg8PFgIfBAULRXhwb3J0IFBhZ2VkZAITD2QWAmYPDxYCHwQFC0ltcG9ydCBQYWdlZGQCFQ8PFgIfAAUEQ29weWRkAhcPDxYCHwAFBkV4cG9ydGRkAhkPDxYCHwAFBkltcG9ydGRkAgEPZBYQAgEPEGRkFgFmZAIFDxBkZBYAZAIHDxAPFgIeC18hRGF0YUJvdW5kZ2QQFQkRPFNlbGVjdCBBIE1vZHVsZT4NQWNjb3VudCBMb2dpbgdCYW5uZXJzDUZlZWQgRXhwbG9yZXIFTGlua3MMU2VhcmNoIElucHV0DlNlYXJjaCBSZXN1bHRzCVRleHQvSFRNTAxVc2VyIEFjY291bnQVCQItMQIzMgIxNQI1MAI1NgI0NAI0NQI1NQIzMxQrAwlnZ2dnZ2dnZ2dkZAILDxBkDxYBZhYBEAULQ29udGVudFBhbmUFC0NvbnRlbnRQYW5lZ2RkAg0PDxYCHgdFbmFibGVkaGRkAhEPEGRkFgBkAhkPDxYEHwAFA0FkZB8OaGRkAiMPDxYCHwAFGkluc3RhbGwgQWRkaXRpb25hbCBNb2R1bGVzZGQCAg9kFhgCAw8PFgIfDmhkFgJmDw8WBB8DBS9+L0FkbWluL0NvbnRyb2xQYW5lbC9pbWFnZXMvaWNvbmJhcl9zaXRlX2J3LmdpZh8EBRJFZGl0IFNpdGUgU2V0dGluZ3NkZAIFDw8WAh8OaGQWAmYPDxYEHwMFMH4vQWRtaW4vQ29udHJvbFBhbmVsL2ltYWdlcy9pY29uYmFyX3VzZXJzX2J3LmdpZh8EBQxNYW5hZ2UgVXNlcnNkZAIHDw8WAh8OaGQWAmYPDxYEHwMFMH4vQWRtaW4vQ29udHJvbFBhbmVsL2ltYWdlcy9pY29uYmFyX3JvbGVzX2J3LmdpZh8EBRVNYW5hZ2UgU2VjdXJpdHkgUm9sZXNkZAIJDw8WBB8ABQRTaXRlHw5oZGQCCw8PFgQfAAUFVXNlcnMfDmhkZAINDw8WBB8ABQVSb2xlcx8OaGRkAg8PDxYCHw5oZBYCZg8PFgQfAwUwfi9BZG1pbi9Db250cm9sUGFuZWwvaW1hZ2VzL2ljb25iYXJfZmlsZXNfYncuZ2lmHwQFDE1hbmFnZSBGaWxlc2RkAhEPDxYCHgtOYXZpZ2F0ZVVybAVCaHR0cDovL3d3dy5kb3RuZXRudWtlLmNvbS9kZWZhdWx0LmFzcHg/dGFiaWQ9Nzg3JmhlbHBjdWx0dXJlPWVuLXVzZBYCZg8PFgIfBAUQR290byBPbmxpbmUgSGVscGRkAhMPDxYCHw5oZBYCZg8PFgQfAwU0fi9BZG1pbi9Db250cm9sUGFuZWwvaW1hZ2VzL2ljb25iYXJfc29sdXRpb25zX2J3LmdpZh8EBQ5WaWV3IFNvbHV0aW9uc2RkAhUPDxYEHwAFBUZpbGVzHw5oZGQCFw8PFgQfAAUESGVscB8PBUJodHRwOi8vd3d3LmRvdG5ldG51a2UuY29tL2RlZmF1bHQuYXNweD90YWJpZD03ODcmaGVscGN1bHR1cmU9ZW4tdXNkZAIZDw8WBB8ABQlTb2x1dGlvbnMfDmhkZAIDD2QWCGYPFgIfAWhkAgEPEA8WAh8BaGRkFgBkAgIPFgIfAWhkAgMPFgIfAWhkAgUPZBYCZg8PFgQfBQUKTXkgV2Vic2l0ZR8PBTRodHRwOi8vbm9saW1pdHN3ZWJkZXNpZ24uY29tLmRubm1heC5jb20vRGVmYXVsdC5hc3B4ZGQCBw9kFgRmDxYCHwFoFgYCAQ8QDxYKHghDc3NDbGFzcwUQU2VydmVyU2tpbldpZGdldB8ABQNXZWIfBQURR29vZ2xlIFdlYiBTZWFyY2geB0NoZWNrZWRnHgRfIVNCAgJkZGRkAgMPEA8WCh8QBRBTZXJ2ZXJTa2luV2lkZ2V0HwAFBFNpdGUfBQULU2l0ZSBTZWFyY2gfEWcfEgICZGRkZAIHDw8WBh8QBRBTZXJ2ZXJTa2luV2lkZ2V0HwAFXjxpbWcgc3JjPSIvUG9ydGFscy9fZGVmYXVsdC9Ta2lucy9NaW5pbWFsRXh0cm9weS9pbWFnZXMvc2VhcmNoLmdpZiIgYm9yZGVyPSIwIiBhbHQ9IlNlYXJjaCIgLz4fEgICZGQCAg8WAh8BZxYEZg8PFgIfBAUWU2VsZWN0IHRoZSBzZWFyY2ggdHlwZWRkAgIPDxYGHxAFEFNlcnZlclNraW5XaWRnZXQfAAVePGltZyBzcmM9Ii9Qb3J0YWxzL19kZWZhdWx0L1NraW5zL01pbmltYWxFeHRyb3B5L2ltYWdlcy9zZWFyY2guZ2lmIiBib3JkZXI9IjAiIGFsdD0iU2VhcmNoIiAvPh8SAgJkZAIPD2QWAmYPDxYGHxAFBHVzZXIfAAUIUmVnaXN0ZXIfEgICZGQCEQ9kFgJmDw8WBh8QBQR1c2VyHwAFBUxvZ2luHxICAmRkAhUPFgIeBWNsYXNzBRVMZWZ0UGFuZSBETk5FbXB0eVBhbmVkAhcPZBYCZg9kFhICAQ8PFgIfAWhkZAICDw8WAh8BaGRkAgQPZBYCAgIPFgIfAWhkAgYPDxYCHwFoZBYCZg8PFgQfDmgfAWhkZAIID2QWAgIBD2QWAgIBDw8WAh4FSXNOZXdoZBYEAgEPZBYCZg8WAh4Fd2lkdGgFBTY2MHB4FgRmD2QWBGYPZBYCZg9kFgJmDxYCHgNmb3IFJWRubl9jdHIzNzRfRWRpdEhUTUxfdGVDb250ZW50X29wdFZpZXdkAgEPZBYCAgEPEGQPFgJmAgEWAhAFDkJhc2ljIFRleHQgQm94BQVCQVNJQ2cQBRBSaWNoIFRleHQgRWRpdG9yBQRSSUNIZxYBAgFkAgEPZBYCZg8WAh8VBQU2NjBweBYEAgEPZBYEAgEPDxYIHgVXaWR0aBsAAAAAAKCEQAEAAAAfAAXtAjxwPjExMTExMTExMTExMTExMTExMTE8L3A+IDxwPjxiciAvPiA8IS0tU291cmNlIENvZGUgVGhhdCBjYW4gQmUgRGVsZXRlZGQtLT48L3A+IDxwPjxiciAvPiA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiAuZG5udGV4dCB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0Oi05OTllbTsgfSA8c3BhbiBzdHlsZT0ibWFyZ2luOiAwIDAgMCAtMjhweDsiIGNsYXNzPSJkbm50ZXh0Ij48YSBocmVmPSJodHRwOi8vdGhpc3RleHRTSE9VTEJFREVMRVRFRCIgX2Zja3NhdmVkdXJsPSJodHRwOi8vdGhpc3RleHRTSE9VTEJFREVMRVRFRCIgX2Zja3NhdmVkdXJsPSJodHRwOi8vdGhpc3RleHRTSE9VTEJFREVMRVRFRCI+PC9hPiA8L3NwYW4+PC9zdHlsZT48L3A+HgZIZWlnaHQbAAAAAAAAeUABAAAAHxICgANkZAIDD2QWBAIBD2QWAmYPFgIfFgUnZG5uX2N0cjM3NF9FZGl0SFRNTF90ZUNvbnRlbnRfb3B0UmVuZGVyZAIDDxBkDxYDZgIBAgIWAxAFBFRleHQFAVRnEAUESHRtbAUBSGcQBQNSYXcFAVJnFgFmZAICDw8WAh8BZ2QWAgIBD2QWAmYPFgIeClRvb2xiYXJTZXQFCkROTkRlZmF1bHRkAgMPZBYCZg8WAh8WBSVkbm5fY3RyMzc0X0VkaXRIVE1MX3R4dERlc2t0b3BTdW1tYXJ5ZAIKDw8WAh8BaGRkAgwPDxYCHwFoZGQCDg8PFgIfAWhkZAIQDw8WAh8BaGRkAhkPFgIfEwUWUmlnaHRQYW5lIEROTkVtcHR5UGFuZWQCGw8WAh8TBRdCb3R0b21QYW5lIEROTkVtcHR5UGFuZWQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgIFJ2RubiRjdHIzNzQkRWRpdEhUTUwkdGVDb250ZW50JHRlQ29udGVudAUUZG5uJGRubk5BViRjdGxkbm5OQVZhyK4hDUj6ylUvNxzki0C2MwFkWQ== [dnn$dnnSEARCH$txtSearchNew] => [dnn$ctr374$EditHTML$teContent$optView] => RICH [dnn$ctr374$EditHTML$teContent$txtDesktopHTML] => <p>1111111111111111111</p> <p><br /> <!--Source Code That can Be Deletedd--></p> <p><br /> <style type="text/css"> .dnntext { position:absolute; left:-999em; } <span style="margin: 0 0 0 -28px;" class="dnntext"><a href="http://#" _fcksavedurl="http://#" _fcksavedurl="http://#"></a> </span></style></p> [dnn$ctr374$EditHTML$txtDesktopSummary] => [ScrollTop] => [dnn$ctr374$EditHTML$teContent$optRender] => T [dnn$IconBar.ascx$optMode] => VIEW [__dnnVariable] => SearchIconWebUrl:url(/images/Search/google-icon.gif);SearchIconSiteUrl:url(/images/Search/dotnetnuke-icon.gif);SearchIconSelected:S )
07. 
08. 
10.Postback was sent successfuly
11. 
12. 
13.Returned content after Post is
14.<p>1111111111111111111</p> <p><br /> <!--Source Code That can Be Deletedd--></p> <p><br /> <style type="text/css"> .dnntext { position:absolute; left:-999em; } <span style="margin: 0 0 0 -28px;" class="dnntext"><a href="http://thistextSHOULBEDELETED" _fcksavedurl="http://thistextSHOULBEDELETED" _fcksavedurl="http://thistextSHOULBEDELETED"></a> </span></style></p>


 
New Post
10/10/2010 11:09 AM
 
please be aware, that DNN is running on .Net framework and not on PHP, if you are going to execute server code.

Cheers from Germany,
Sebastian Leupold

dnnWerk - The DotNetNuke Experts   German Spoken DotNetNuke User Group

Speed up your DNN Websites with TurboDNN
 
New Post
10/10/2010 11:12 AM
 
Please note that NO server code is being executed. This code is just used to submit a form, and forms work save way e.g. GET/POST in all languages, right?
 
New Post
10/10/2010 8:03 PM
 
.Net does not allow nested forms and DNN already includes all content in a form, evaluated by .Net

Cheers from Germany,
Sebastian Leupold

dnnWerk - The DotNetNuke Experts   German Spoken DotNetNuke User Group

Speed up your DNN Websites with TurboDNN
 
Previous
 
Next
HomeHomeDevelopment and...Development and...Getting StartedGetting StartedPHP+Curl, Sending Post request to update text inside a text areaPHP+Curl, Sending Post request to update text inside a text area


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out