current path with stdout (or remove the result page)

Posted on 1997-12-18
Last Modified: 2013-12-25
I'm posting a form with target="_self" in the html code
(action= "...." target="_self")
I have a cgi which is sending back some data to stdout,
mainly an html page. The problem is that this page is a
predefined page that is using images from the server's
hard drive, and my default directory for the data which is
sent back is cgi-bin rather than the directory from which the post was done. My adress line in the browser gives:
http:...../cgi-bin/question.htm when the data is sent back
rather than the one from which question.htm was read, so the
images can't be found. Is there a way to change this (my cgi
is in "c") or either a way to eliminate the need to send back some data or open a new window once a cgi is executed?
If I'm not sending back something on stdout the IIS server is giving me an error, but all I want is to stay on the same
page after a post, without an intermediate screen with an hyperlink..

Question by:jfbeaulieu
  • 4
  • 3
  • 2
  • +1

Expert Comment

ID: 1831690
Per O'Reilly's Webmsater in a Nutshell 14.3 Results Processing

The server recognizes to following header lines in the results data stream:



URI: <value> (value enclosed in angle brackets)

     The value is either a full URL or a local file reference, either of which points to an object to be returned to the client in lieu of the body. If the value is a local file, the server sends it as the results of the request, as though the client issued a GET for that object. If the value is a full URL, the server returns a "401 redirect" to the client to retrieve the specified object directly.



So.  If you can have the CGI print out the following before anything else, you will reload the page you started at:

URI: <>


Expert Comment

ID: 1831691
I hate forms which give you very little indication they have succeeded... I would have suggested instead that you fix the page your CGI puts out, either by inserting a <BASE HREF> tag so the images work, or by using a Location: header (which seems pretty much the same as the URI header, I've never heard of the URI header - is it general or for O'Reilly's server only?)

Expert Comment

ID: 1831692
Above post completed...

    Same as URI, but this form is now deprecated.  The value
    must not be enclosed in abngle brackets with this

So, URI _is_ the same as Location.  
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.


Expert Comment

ID: 1831693
Thanks, rets.

Author Comment

ID: 1831694
I'm sorry, but it doesn't seems to work. I've try the following
lines in my cgi:

          fprintf(stdout,"Content-type: text/html\n");

          fprintf(stdout,"Status:200 OK\n");
          fprintf(stdout, "URI:<>");      

  and also with URL rather than URI, it doesn't seems to open  the page but it is just displaying on the left top:
URI and the remaining of the page is blank


Expert Comment

ID: 1831695
No Content-type:  the FIRST thing out must be

URI: <>

So, you should have your CGI say:

fprintf(stdout, "URI: <>\n\n");

and forget anything else that prints (because the user will be sent to

Let me know if you've any more questions (I get notified on updates.)

Author Comment

ID: 1831696
>No Content-type: the FIRST thing out must be

>URI: <

>So, you should have your CGI say:

>fprintf(stdout, "URI: <>>

  I did it and there's some progress: when I test it locally
 with IIS and my own computer's adress there is a blank page
 because the adress which is display in the upper field is:<..../question/ques.htm>

rather than
the value between <.../question/ques.htm>
there seems to be a concatenation here, my form which is calling
the cgi has a 'target="_top"' or either target="_self" after
the verb "ACTION=..."

I called the cgi with question.htm
which contain the form...
Any idea?


Expert Comment

ID: 1831697
If you would like the user to end up at:

then you should say:

printf(stdout, "URI: <>\n\n");

What did the last revision of your code look like?  As an aside, you may wish to try

printf(stdout, "Location:\n\n");
as alamo suggested.  Perhaps IIS doesn't like URI.


Accepted Solution

nanullnet earned 80 total points
ID: 1831698
If this page that you are redirecting to is the same page as you started from, why reload it?  Just tell it there is no more content by typing:

printf(stdout, "HTTP/1.0 204 Nothing New to Display\n\n");

Author Comment

ID: 1831699
thanks to all of them, I had to postpone my tests since my my Hard drive was crashed but it works well

Featured Post

Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Nmap how to find wich type of socks is this? 4 107
Automating a script for user accounts LINUX 14 76
Powershell  and PSExec = Password failure 5 24
Powershell File Sort 8 41
Ever wondered how to display how many visitors you have online. In this tutorial I will show you an easy but effective way to display the number of online visitors in WhizBase. In this article I assume you have read my previous articles and know …
This tutorial will discuss fancy secure registration forms, with AJAX technology support. In this article I assume you already know HTML and some JS. I will write the code using WhizBase Server Pages, so you need to know some basics in WBSP (you mig…
Learn the basics of modules and packages in Python. Every Python file is a module, ending in the suffix: .py: Modules are a collection of functions and variables.: Packages are a collection of modules.: Module functions and variables are accessed us…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

821 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