Solved

current path with stdout (or remove the result page)

Posted on 1997-12-18
10
222 Views
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..

0
Comment
Question by:jfbeaulieu
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 1

Expert Comment

by:rets
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:

Content-type:

 ...

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.

Location:

 ...

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

URI: <http://www.myserver.com/myform.html>


0
 
LVL 6

Expert Comment

by:alamo
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?)
0
 
LVL 1

Expert Comment

by:rets
ID: 1831692
Above post completed...


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

So, URI _is_ the same as Location.  
-K
0
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.

 
LVL 6

Expert Comment

by:alamo
ID: 1831693
Thanks, rets.
0
 

Author Comment

by:jfbeaulieu
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,"\n");
          fprintf(stdout, "URI:<http://Plaisirdelire.sympatico.ca/index.htm>");      

  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
 

0
 
LVL 1

Expert Comment

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

URI: <http://www.myserver.com/myform.html>

So, you should have your CGI say:

fprintf(stdout, "URI: <http://www.myserver.com/myform.html>\n\n");

and forget anything else that prints (because the user will be sent to http://www.myserver.com/myform.html.

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

Author Comment

by:jfbeaulieu
ID: 1831696
Hi,
 
>No Content-type: the FIRST thing out must be

>URI: <http://www.myserver.com/myform.html

>So, you should have your CGI say:

>fprintf(stdout, "URI: <http://www.myserver.com/myform.html>>
\n\n");

  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:

http://192.168.0.33/plaisirdelire/cgi-in/<..../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 http://192.168.0.33/ question.htm
which contain the form...
Any idea?

0
 
LVL 1

Expert Comment

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

http://192.168.0.33/question.htm

then you should say:

printf(stdout, "URI: <http://192.168.0.33/question.htm>\n\n");

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

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

-K
0
 
LVL 1

Accepted Solution

by:
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");
0
 

Author Comment

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

Featured Post

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.

Question has a verified solution.

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

Suggested Solutions

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…
This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
Learn the basics of if, else, and elif statements in Python 2.7. Use "if" statements to test a specified condition.: The structure of an if statement is as follows: (CODE) Use "else" statements to allow the execution of an alternative, if the …
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.

770 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