Re: Re[2]: [PHP] Newbie redirect/variable question
| From: | James Holloway | Date: | Thu, 10 May 2001 14:28:49 +0000 |
| Subject: | Re: Re[2]: [PHP] Newbie redirect/variable question | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-52287@lists.php.net to get a copy of this message | ||
Steve,
The way you are doing things could leave yourself open with all kinds of
problems - one of which is address spoofing. A better way would be to TEST
the link against values in the database before updating the link with a hit
and exiting. Have the URL's marked against an auto-incremented id:
id: 23
name: Steve's page
url: http://www.somewhere.com
Url: redirect.php?id=23
redirect.php:
________________________________________________________
<?
$check = @mysql_query("SELECT url FROM links WHERE id = '$id'",
$connection);
if (mysql_num_rows($check) != 0) {
$update = @mysql_query("UPDATE links SET out = out + 1 WHERE id =
'$id'", $connection);
while($row = mysql_fetch_array($check)) {
$url = $row['url'];
}
header("location: $url");
exit;
} else {
?>
<HTML>
<HEAD>
<TITLE>Link not found</TITLE>
</HEAD>
<BODY>
No corresponding link found!
</BODY>
</HTML>
<? } ?>
________________________________________________________
Much better that way, IMO. At present, if someone typed in a fake address,
the database would attempt to update a non-existant entry....
You could go further, and log the IP of the user, and perhaps even set a
cookie if you were totally paranoid about people repeatedly clicking their
links so that they got more hits out.
Have fun ;)
James.
""Steve Wade"" <swadie@zipworld.com.au> wrote in message
news:MABBKCBDLHPGCKNPPFEKEELHCFAA.swadie@zipworld.com.au...
> Ahh - thanks - that's helped :-) (Line 9 was the http_referrer line)
>
> Now the only trouble is, it seems to still treat $fred as null.
>
> The passing line is from index.php:
>
> <a href="redirect.php?fred=www.fusion.org.au">test link</a>
>
> Should this work?
>
> Thanks,
>
> Steve
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Steve Wade
> Youth Outreach Coordinator
> Fusion Australia Ltd (Sydney North)
> ABN 26 001 273 105
> +61 2 9477 1110
>
>
> -----Original Message-----
> From: Adaran (Marc E. Brinkmann) [mailto:vielmailer@adaran.net]
> Sent: Thursday, 10 May 2001 22:20
> To: php-general@lists.php.net
> Subject: Re[2]: [PHP] Newbie redirect/variable question
>
>
> Hi Steve,
>
> Thursday, May 10, 2001, 1:39:36 PM, you wrote:
> Steve> Ok - thanks - my new redirect.php is
>
> Steve> <?php
> Steve> if ($fred != "") {
> Steve> # $statement = "UPDATE links SET hits=hits+1 WHERE
href=\"$u\"";
> Steve> # mysql_query($statement);
> Steve> Header("Location: $fred");
> Steve> exit;
> Steve> } else {
> Steve> Header("Location: $HTTP_REFERRER");
> Steve> exit;
> Steve> }
> ?>>
>
> Steve> I get the following message...
> Steve> Warning: Cannot add header information - headers already sent by
> (output
> Steve> started at /home/swadie/public_html/redirect.php:2) in
> Steve> /home/swadie/public_html/redirect.php on line 9
>
> Make sure you have NO Blanks or any other Text before the <?php ! "<?" has
> to be
> the first two characters in the file. Which line is line 9 ?
>
> -----------------------
> EnjoY,
> Adaran (vielmailer@adaran.net)
> check http://www.adaran.net
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net
> For additional commands, e-mail: php-general-help@lists.php.net
> To contact the list administrators, e-mail: php-list-admin@lists.php.net
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net
> For additional commands, e-mail: php-general-help@lists.php.net
> To contact the list administrators, e-mail: php-list-admin@lists.php.net
>