Solved

passing argument to PHP script

Posted on 2001-07-15
13
2,813 Views
Last Modified: 2012-08-14
myScript.php?arg is the conventional way to pass an argument to a script.  Is there a way to do it without the ? (question mark)

Any tutorials anywhere about all the different ways to treat php arguments?
0
Comment
Question by:anocean
  • 5
  • 4
  • 2
  • +2
13 Comments
 
LVL 4

Expert Comment

by:ykf2000
ID: 6284417
Hi,


There 4 ways to do it:

1) In the query string as in yourScript.php?arg=1

2) By submitting a form <input type="hidden" name="arg" value="1">

3) By a cookie as in setcookie("arg","1");

4) By using a session variable
   $arg = 1;
   session_register("arg");


To access the variables:

1) Use $PHP_GET_VARS["arg"] or simply $arg for method 1.

2) Use $PHP_POST_VARS["arg"] or simply $arg for method 2.

3) Use $PHP_COOKIE_VARS["arg"] or simply $arg for method 3.

4) Use $arg for session


Note that if you have variables of the same name coming from different method it is better to fully qualify it with the proper way.
0
 

Author Comment

by:anocean
ID: 6284421
I appreciate the trouble you went to but it didn't really answer the question, which is specifically about the format for a script URL.

Is there any way around having to use the question mark (?) immediately after .php suffix?
And is there a tutorial specifically about URL syntax for scripts?
0
 
LVL 4

Expert Comment

by:ykf2000
ID: 6284426
I do not think there is a way for you to do that without a ? behind. The  ? is used to differentiate the URL and the arguments passed. Without the ? there is no way to do that. :)
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:anocean
ID: 6284431
Yeah, that's kind of what I expected to hear.  Nevertheless, I'm going to leave the question open for a couple days, but will not forget to award the points if no further answers appear.
0
 

Accepted Solution

by:
juan_tanga earned 50 total points
ID: 6284969
you can use the "/" instead of "?" in storing the args values...  well here's an example of it.

ex.

myScript.php/value1/value2/value3/

and this args are store in "PATH_INFO" environment var.
PATH_INFO = /value1/value2/value3/

to access each value, you need to split the values by "/"
$value_array = explode("/",$PATH_INFO);
$value_1 = $value_array[1];
$value_2 = $value_array[2];
$value_2 = $value_array[3];

hope this will help. :o)








0
 

Author Comment

by:anocean
ID: 6285058
juan tanga, your idea sounds positively spicy, but it doesn't work straight out of the box, cuz I get CGI error.
You finish this one and I'm giving you 100 point tip.
0
 

Expert Comment

by:juan_tanga
ID: 6285130
may i know what error u get?
0
 

Author Comment

by:anocean
ID: 6285156
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:

It's cuz I try URL index.php/eee/555/
and that directory, of course, doesn't exist.
0
 

Expert Comment

by:juan_tanga
ID: 6285214
oops...

so u're using a cgi-module of php perhaps... I tried that one using a api-module of php and i have not test it using cgi-module version of php...
0
 

Expert Comment

by:juan_tanga
ID: 6285224
try printing the value of PATH_INFO... and see if the parameter store in that environment variable..

ex. echo $PATH_INFO or echo $GLOBALS["PATH_INFO"]
0
 
LVL 2

Expert Comment

by:curri
ID: 6285273
I think ykf200 is correct (and the answer was very complete). However, depending on your webserver, you can cheat :)

If you're using Apache, you can make it rewrite the url, I think with general regular expressions, so you can write one url and let the server transform it into one with the ? :). I assume you can do that with other servers too.

A funny example of that is the isgay.com web site. Go say to john.doe.isGay.com (exercise caution, you may find it ofensive).

Orlando
0
 
LVL 2

Expert Comment

by:higijj
ID: 6287247
you can try and read about the rewrite module for apache..

I think it can do what you waht to.
0
 

Author Comment

by:anocean
ID: 6300714
very imaginative.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Author Note: Since this E-E article was originally written, years ago, formal testing has come into common use in the world of PHP.  PHPUnit (http://en.wikipedia.org/wiki/PHPUnit) and similar technologies have enjoyed wide adoption, making it possib…
Build an array called $myWeek which will hold the array elements Today, Yesterday and then builds up the rest of the week by the name of the day going back 1 week.   (CODE) (CODE) Then you just need to pass your date to the function. If i…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

679 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