|
Posted by Mateusz Markowski on 11/04/06 11:31
You are trying to do something very simple in a quite convoluted way.
You want to give user a link which goes to page that they had visited
before visiting other page. Try this:
//page that client visited before
$page = $_SERVER['HTTP_REFERER']; //let's assume that it's:
http://localhost/outpage.php
//we want user to go on this page and to add a flag which cause PHP to
call function
$newurl = $page . '?call=ourfunction';// result is:
http://localhost/outpage.php?call=outfunction
//we send a link
echo '<a href="'.$newurl.'">click here</a>';
Is this what you want to do?
yangsuli@gmail.com napisał(a):
> so i missed {}
> is that the problem?
>
> the browser will recognize it as a javascript and display it only by
> the script tag.......
> you donot think i shoud put the script tag?
>
> errrrr
> why the header() didnot work either?
Header in your example doesn't work becuase before callling it you have
already sent some data to client. But header must be called before any
data's been sent to client's browser.
> Mateusz Markowski wrote:
> > You should write:
> > echo "window.location.href={$_SERVER['PHP_SELF']}";
> >
> > But it won't work in your browser. Why do you want to put script tags
> > as action?
> >
> > yangsuli@gmail.com napisał(a):
> > > the code is like this
> > > <form action="<?php dec_msgnum($cookie["usernum"]); echo "<script>";
> > > echo "window.location.href=$_SERVER['PHP_SELF']"; echo '</script>';?>">
> > > <input type="submit" value="忽略" /></form>
> > >
> > > i also tried
> > > <form action="<?php dec_msgnum($cookie["usernum"]);
> > > header(default:$_SERVER['PHP_SELF'];';?>"> <input type="submit"
> > > value="忽略" /></form>
> > >
> > > it didnot work either :(
> > >
> > > but this works perfectly well
> > > <form action="<?php dec_msgnum($cookie["usernum"]); ';?>"> <input
> > > type="submit" value="忽略" /></form>
> > >
> > > do you think it is caused by some arguements missing?( may be it shoule
> > > be $_SERVER['REQUEST_URI'] or $_SERVER['PHP_SELF']?xxxx=xxxxxx or
> > > something)
> > > Mateusz Markowski wrote:
> > > > Paste the code that you think may give parse error.
> > > >
> > > > yangsuli@gmail.com napisal(a):
> > > > > but why the second way didnot work out.......
> > > > > i donot get where did the parse error come from :(
> > > > > 55555555555
> > > > >
> > > > > Mateusz Markowski wrote:
> > > > > > Yes, I think so.
> > > > > >
> > > > > > yangsuli@gmail.com napisal(a):
> > > > > > > the problem is that i donnot want some script.php
> > > > > > > i want to redirect the users back on the page they were just on,with
> > > > > > > calling a function in advance :)
> > > > > > > you think the flag thing is the best way to do it?
> > > > > > >
> > > > > > > Mateusz Markowski wrote:
> > > > > > > > yangsuli@gmail.com napisal(a):
> > > > > > > > > i want to creat a link
> > > > > > > > > when somebody click the link
> > > > > > > > > the php script calls a function,then display itself :)
> > > > > > > > >
> > > > > > > > > i have tried
> > > > > > > > > <a href=<? funtion(); echo=$_server['php_self'] ?>text</a>
> > > > > > > > > but it will call the function whether i click the link
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > then i tried this (using forms)
> > > > > > > > > <form action="<?php function(); echo "<script>"; echo
> > > > > > > > > "window.location.href=$_SERVER['PHP_SELF']"; echo '</script>';?>">
> > > > > > > > > <input type="submit" value="text" /></form>
> > > > > > > > > but it didnot work either.
> > > > > > > > > my browser said there were parse errors,T_STRING expected or
> > > > > > > > > something....:(
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > now i am thinking using a flag,say,$functioncall,
> > > > > > > > > href=$_server[request_url]&functioncall=1
> > > > > > > > > then if functioncall==1,call that function
> > > > > > > > > but is it right?
> > > > > > > > > is there some way simple to do that?
> > > > > > > > >
> > > > > > > >
> > > > > > > > PHP works on a server, not in your browser, so it can't just call
> > > > > > > > function when you click a link. You have to send a request to the
> > > > > > > > server which will cause your script to call this function. Your last
> > > > > > > > example is good way to do it. So you have such link:
> > > > > > > > script.php?call=helloworld
> > > > > > > >
> > > > > > > > and in your file script.php such code:
> > > > > > > >
> > > > > > > > if ($_GET['call'] == 'helloworld') {
> > > > > > > > echo 'Hello world!';
> > > > > > > > }
> > > > > > > >
> > > > > > > > Then after clicking the link your browser sends a request, PHP decides
> > > > > > > > what to do, then server sends you a appropriate response.
Navigation:
[Reply to this message]
|