collabtive – FOSS project management
Oooh, what a pretty interface. Written in PHP & GPL licensed, Collabtive offers a nice alternative to basecamp.

It looks quite basic at the moment, but it's got all the hallmarks of something headed for greatness. Current features:
- Projects, Milestones, Tasks.
- Basecamp Import.
- Timetracking & Reporting.
- Infinite projects.
Notable absence of gantt chart, but a quick check of the forums suggests it's probably on the way.

SimplPie for PHP <-> RSS

Ooooh, what a nice find:-)
It's a BSD licensed caching RSS and Atom library for PHP. It does really well will poorly formatted RSS feeds too.

Aspell PSPELL win32 fastcgi problems
So i had fun with aspell on a win2003 IIS PHP eAccelerator fastCGI PSPELL Aspell setup today.
I was getting a 500 error from fastcgi. phpinfo() showed that pspell was loaded correctly. After pushing a test script through php.exe, and getting an error telling me that a file in the aspell data folder was in the wrong format, i tried DOS2UNIX ing the files in the progra~1\aspell\data folder and all was good!
PHP 5.2.5 MSSQL 2005 on server 2003 Unable to connect to server: bug
It appears that there is a bug with the latest version of PHP (5.2.5)(nts on windows) in the ntwdblib.dll file. It ships with version 2000.2.8.0, which won't connect to SQL 2005.
The solution is to replace the file with version 2000.80.194.0, which can be downloaded from here
PHP Tor Wrapper
Shamelessly stolen from 0x000000.com. This PHP
function creates a socket connection through Tor and is able to make a
perfect HTTP request that goes through the Tor network. Usually people
use Firefox with FoxyProxy or the Torbutton, but sometimes you'll need
scripts that can access other sites through the Tor router, and this is
a PHP script that does just that. Pretty simple, but effective.
What you need further:
- Install Tor and Privoxy bundle.
- Have PHP, like the WAMP server.
That's it, plug it into your exploits or test scripts and you can call
all your scripts through the Tor router now, and thereby be a little
safer instead of using bad proxies.
<?phpfunction tor_wrapper($url){
$ua = array('Mozilla','Opera','Microsoft Internet Explorer','ia_archiver');
$op = array('Windows','Windows XP','Linux','Windows NT','Windows 2000','OSX');
$agent = $ua[rand(0,3)].'/'.rand(1,8).'.'.rand(0,9).' ('.$op[rand(0,5)].' '.rand(1,7).'.'.rand(0,9).'; en-US;)';
# Tor address & port
$tor = '127.0.0.1:9050';
# set a timeout.
$timeout = '300';
$ack = curl_init();
curl_setopt ($ack, CURLOPT_PROXY, $tor);
curl_setopt ($ack, CURLOPT_URL, $url);
curl_setopt ($ack, CURLOPT_HEADER, 1);
curl_setopt ($ack, CURLOPT_USERAGENT, $agent);
curl_setopt ($ack, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ack, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ack, CURLOPT_TIMEOUT, $timeout);
$syn = curl_exec($ack);
# $info = curl_getinfo($ack);
curl_close($ack);
# $info['http_code'];
return $syn;}
# example:
$wrapped = tor_wrapper("http://www.sillysite.com?page=1' OR 1=1");
echo $wrapped;?>
Stripping extra rtf formatting with PHP
I was trying to replace markup in rtf files. The idea is that clients can setup template files with markup in them using predefined format like:
[code]
Dear **CustFName**
Thank you for your email of **LastEmailDate** which we have now processed...
[/code]
and save them as rtf files. then they can upload the template and have it merged with the data selection from the database. The problem is that word adds unneeded formatting if you re-edit within the markup, so i had the markup **email2**, and opened the rtf file and inserted 77 in the middle making **em77ail2** and saved, then when you look at the rtf file word produces you get the string:
$string = '{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid14905953 **Em}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid7171971 77}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid14905953 ail2**}';
the solution was kindly provided by ebosscher of experts-echange:
[php]
function BreakupMonkier($monkier)
{
$retval = "";
for($index = 0; $index < strlen($monkier); $index++)
{
$retval .= substr($monkier, $index, 1) . '.*?';
}
return $retval;
}
$monkier = 'Email2';
$replacement = 'somedude@gmail.com';
$input
= '{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid14905953
**Em}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid7171971
77}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid14905953 ail2**}';
$pattern = '/\*.*?\*.*?' . breakupMonkier($monkier) . '\*.*?\*/';
$output = preg_replace($pattern, $replacement, $input);
echo $input . "\r\n";
echo $output . "\r\n";
[/php]
The Woodwork » Blog Archive » Clever HTTP
The Woodwork » Blog Archive » Clever HTTP
Some nice little tweaks to firePHP












