verbatim |
05-23-2005 06:55 PM |
thanks, knowing that the "?" means the php script action is back to the same script/page.
I would think this would solve my puzzle, it does not.
The puzzle: try to submit info to a form using cURL.
The puzzle variables:
1. the url of the form: www.mysite.com/userz/mel/sy_admin.php?sy[step]=2b
2. actual code of the page:
[php]
<?php
require_once 'sy/sy_admin.php';
?>
note: sy/sy_admin.php is in my home directory. /home/sy/sy_admin.php
3. critical code of sy/sy_admin.php : [i think, may not be important]
PHP Code:
<?php include('sy_config.inc.php'); if (IS_installed === false) { require_once(S9Y_INCLUDE_PATH . 'include/functions_installer.inc.php'); require_once S9Y_INCLUDE_PATH . 'include/functions_config.inc.php'; $css_file = 'sy.css.php?sy[css_mode]=sy_admin.css'; } else { $css_file = sy_rewriteURL('sy_admin.css'); } <html> <head> <title><?php echo sy_ADMIN_SUITE; ?></title> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo LANG_CHARSET; ?>" /> <link rel="stylesheet" type="text/css" href="<?php echo $css_file; ?>" /> <script type="text/javascript"> function spawn() { if (self.Spawnextended) { Spawnextended(); } if (self.Spawnbody) { Spawnbody(); } if (self.Spawnnugget) { Spawnnugget(); } } function SetCookie(name, value) { var today = new Date(); var expire = new Date(); expire.setTime(today.getTime() + (60*60*24*30)); document.cookie = 'sy[' + name + ']='+escape(value) + ';expires=' + expire.toGMTString(); } </script> </head> <body id="sy_admin_page" onload="spawn()"> <?php if (!isset($sy['syPath']) || IS_installed === false || IS_up2date === false ) { if (IS_installed === false) { $file = 'include/admin/installer.inc.php'; } elseif ( IS_up2date === false ) { $file = 'include/admin/upgrader.inc.php'; } else { $file = ''; // For register_global, safety } ?> ?>
Now one of the functions in installer.inc.php is to print the form template.
This may all be irrelevant in what i am trying to do, if so please let me know.
My current curl attempt is:
PHP Code:
<?php $my_data = array( 'dbType' => 'mysql', 'dbHost' => 'localhost', 'dbUser' => 'mem', 'dbPass' => 'letmein', 'dbName' => 'mem_com_-_sy', 'dbPrefix' => 'mel_', 'dbPersistent' => 'false', 'syPath' => '/var/www/html/userz/mel/', 'uploadPath' => 'uploads/', 'syHTTPPath' => '/userz/mel/', 'templatePath' => 'templates/', 'uploadHTTPPath' => 'uploads/', 'baseURL' => 'http://www.mysite.com/userz/mel/', 'autodetect_baseURL' => 'false', //dont know if true should have quotes around it it doesnt in config file 'indexFile' => 'index.php', 'user' => 'mel', 'pass' => 'thanks', 'realname' => 'mel', //should get from signup p h p 'email' => 'michael@hotmail.com', //should get from signup p h p 'want_mail' => 'true', //dont know if true should have quotes around it it doesnt in config file 'allowSubscriptions' => 'true', //dont know if true should have quotes around it it doesnt in config file 'blogTitle' => 'John Does personal blog', 'blogDescription' => 'My little place on the web...', 'lang' => '', //dont know if true should have quotes around it it doesnt in config file 'lang_content_negotiation' => 'false', //dont know if true should have quotes around it it doesnt in config file 'fetchLimit' => '15', //dont know if true should have quotes around it it doesnt in config file 'useGzip' => 'true', //dont know if true should have quotes around it it doesnt in config file 'wysiwyg' => 'false', //dont know if true should have quotes around it it doesnt in config file 'XHTML11' => 'false', //dont know if true should have quotes around it it doesnt in config file 'enablePopup' => 'false', //dont know if true should have quotes around it it doesnt in config file 'embed' => 'false', 'top_as_links' => 'false', //dont know if true should have quotes around it it doesnt in config file 'blockReferer' => ',', 'rewrite' => 'array()', //dont know if true should have quotes around it it doesnt in config file 'serverOffsetHours' => '0', //dont know if true should have quotes around it it doesnt in config file 'showFutureEntries' => 'false', //dont know if true should have quotes around it it doesnt in config file 'magick' => 'false', //dont know if true should have quotes around it it doesnt in config file 'convert' => '/usr/local/bin/convert', 'thumbSuffix' => 'syThumb', 'thumbSize' => '110', //dont know if true should have quotes around it it doesnt in config file ); // This section constructs the field/value pairs of the form // field1=value1&field2=value2&field3=value3 $data_string = ''; $add_ampersand = FALSE; foreach ($my_data as $key => $value) { if ($add_ampersand) { $data_string .= '&'; } $data_string .= $key . '=' . $value; $add_ampersand = TRUE; } // Get a CURL handle $curl_handle = curl_init (); curl_setopt($curl_handle, CURLOPT_URL, 'http://www.mysite.com/userz/mel/sy_admin.php?sy[step]=2b'); curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)'); curl_setopt ($curl_handle, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl_handle, CURLOPT_HEADER, 1); $result=curl_exec ($curl_handle); curl_close ($curl_handle); preg_match_all("/Set\-Cookie\:.*?\;/", $result, $matches); $cookiejar = ""; foreach ($matches[0] as $cookie) { $cookiejar .= str_replace("Set-Cookie: ", "", $cookie).' '; } preg_match("/Location\:.*?\n/", $result, $matches); $nexturl = str_replace("\r", "", str_replace("\n", "", str_replace("Location: ", "", $matches[0]))); // the 3 lines below were jst 4 test purposes to make sure the variables were getting set print $cookie; // ex result: Set-Cookie: PHPSESSID=dcd730a95f8b428f7dbd9fc1e6687d1a print $nexturl; // < got no result print $cookiejar; // ex result PHPSESSID=dcd730a95f8b428f7dbd9fc1e6687d1a // Get a CURL handle $curl_handle = curl_init (); curl_setopt($curl_handle, CURLOPT_URL, $nexturl); curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)'); curl_setopt($curl_handle, CURLOPT_REFERER, 'http://www.mysite.com/userz/mel/sy_admin.php?sy[step]=2b?'); curl_setopt($curl_handle, CURLOPT_COOKIE, $cookiejar); curl_setopt ($curl_handle, CURLOPT_POST, 1); curl_setopt ($curl_handle, CURLOPT_POSTFIELDS, $data_string); curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl_handle, CURLOPT_HEADER, 1); curl_setopt($curl_handle, CURLOPT_TIMEOUT, 300); $result=curl_exec ($curl_handle); curl_close ($curl_handle); // Process the return print $result; ?>
I notice that the initial form page is: http://www.mysite.com/userz/mel/sy_admin.php?sy[step]=2b
and after filling out the form the normal way
|