Solved

Advice on a server app

Posted on 2004-08-19
11
235 Views
Last Modified: 2012-05-05
This may seem odd but it is what I want to do.

Scenario:
I have an account on a web server with the usual stuff available, perl, PHP, MYSQL and maybe FP extensions (don't use them so haven't noticed).

What I want to have is a web page where I can input a URL for a file on another web server. My web server will then download this file and then convert it from Binary to ASCII (text) (don't ask) and then make it available for download.

What I would like advice on is the best way to go about achieving this using the tools available to me, to complicate matters I would not call myself overly competent in perl or PHP although I have adjusted many perl scripts over the years as the need arose. Imbedded VBS could be an option as the site will only be accesses with IE but ASP is not an option here due to server config.

I am happy to become competent in perl or PHP if that is the way to go so I'm not afraid learning a new skill, my current areas of expertise are in TSQL and VB at the moment.

Any helpful advice would be greatly appreciated.

Cheers
Marcus
0
Comment
Question by:xSinbad
  • 7
  • 4
11 Comments
 
LVL 1

Expert Comment

by:ch0c
ID: 11849122
Marcus,

You can do this easily with PHP. Just open a socket connection to the website and read the file. You can then do a byte by byte conversion to ASCII. It's probably a good idea to learn PHP before doing this, so you can at least fix any problems you might have.

You can find information on PHP sockets at http://www.php.net/manual/en/ref.sockets.php

Good luck.
0
 
LVL 6

Author Comment

by:xSinbad
ID: 11849570
Cheers ch0c I will check that out as it sounds pretty good to me, I didnt know PHP was that flexible.
0
 
LVL 6

Author Comment

by:xSinbad
ID: 11857029
Ok ch0c can you provide a little more guidence on this please.

I have tried this example ;

<?php
error_reporting(E_ALL);

echo "<h2>TCP/IP Connection</h2>\n";

/* Get the port for the WWW service. */
$service_port = getservbyname('www', 'tcp');

/* Get the IP address for the target host. */
$address = gethostbyname('www.google.com');

/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
   echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";
} else {
   echo "OK.\n";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result < 0) {
   echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
} else {
   echo "OK.\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.google.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Sending HTTP HEAD request...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Reading response:\n\n";
while ($out = socket_read($socket, 2048)) {
   echo $out;
}

echo "Closing socket...";
socket_close($socket);
echo "OK.\n\n";
?>


but get an error ;


Fatal error: Call to undefined function socket_create() in D:\Dev\index.php on line 21
Line 21 is this one :- $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
0
 
LVL 1

Expert Comment

by:ch0c
ID: 11857124
Do you have PHP 5.0.0 or later installed? Sockets support was only added in 5.0.0.
0
 
LVL 6

Author Comment

by:xSinbad
ID: 11857609
I downloaded and installed the latest version yesterday.
0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
LVL 1

Expert Comment

by:ch0c
ID: 11857659
Make sure 'php_sockets.dll' is in your PHP directory somewhere. Also, make sure that in your php.ini file you can find the following line:

extension=php_sockets.dll

If there's a semicolon in front of it, remove the semicolon.

Hope this helps.
0
 
LVL 6

Author Comment

by:xSinbad
ID: 11861752
Ok there was no ini file active but there was a php.ini.recommend which I renamed to php.ini and now php doesnt work at all....!!!

0
 
LVL 1

Accepted Solution

by:
ch0c earned 500 total points
ID: 11861791
Try making a copy of php.ini.recommend and renaming it php.ini.

Also, try checking both files for the 'extension=php_sockets.dll' line.
0
 
LVL 6

Author Comment

by:xSinbad
ID: 11862013
Thats what I did and now PHP doesnt work at all, but it mostly worked fine without any php.ini file.
0
 
LVL 6

Author Comment

by:xSinbad
ID: 11862023
ch0c this sockets methods seems a bit complicated to implement considering I dont have access to the PHP ini on my web server, I have open another question in the PHP section and I seem to making greater progress using the methods recommended in there maybe you could help with that http://www.experts-exchange.com/Web/Web_Languages/PHP/Q_21101863.html
0
 
LVL 6

Author Comment

by:xSinbad
ID: 11919476
Dude how about a little help with the converting of bin into ascii?
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Preface This article introduces an authentication and authorization system for a website.  It is understood by the author and the project contributors that there is no such thing as a "one size fits all" system.  That being said, there is a certa…
SASS allows you to treat your CSS code in a more OOP way. Let's have a look on how you can structure your code in order for it to be easily maintained and reused.
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now