Solved

current path with stdout (or remove the result page)

Posted on 1997-12-18
10
226 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

 
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

What is a Denial of Service (DoS)?

A DoS is a malicious attempt to prevent the normal operation of a computer system. You may frequently see the terms 'DDoS' (Distributed Denial of Service) and 'DoS' used interchangeably, but there are some subtle differences.

Question has a verified solution.

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

Making a simple AJAX shopping cart Couple years ago I made my first shopping cart, I used iframe and JavaScript, it was very good at that time, there were no sessions or AJAX, I used cookies on clients machine. Today we have more advanced techno…
I hope you'll find this tutorial useful and interesting. So let's try to extend Tcl with a new package.  For anyone more deeply interested please check out the book "Practical Programming in Tcl and Tk". It's really one of the best written books abo…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

627 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