PDA

Bekijk Volledige Versie : php doorsturen adhv referer



Netfreaky
28/11/05, 01:00
Hallo,

via een frame wordt een bepaalde (gratis) domainnaam doorverwezen
naar een pagina op m'n site (bvb http://www.writings.be naar
http://domain.netfreaky.be/index.php)

Aan de hand van de referer wil ik dan de juiste pagina openen. De
juiste koppelingen haal ik uit een mysql database.

Maar... hier begint php kennelijk te flippen, het afbeelden van de
query geeft en erg raar beeld:

de PHP-code:

----

<?php

$currentserver = $_SERVER['SERVER_NAME'];
$currentURL = $_SERVER['REQUEST_URI'];
$fullCurrentURL = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER
['REQUEST_URI'];
$ref = getenv('HTTP_REFERER');
$docroot = $_SERVER['DOCUMENT_ROOT'];
$scriptname = $_SERVER['SCRIPT_NAME'];

echo("CURRENT SERVER: " . $currentserver . "<br>");
echo("CURRENT URL: " . $currentURL . "<br>");
echo("FULL CURRENT URL: " . $fullCurrentURL . "<br>");
echo("REF: " . $ref . "<br>");
echo("DOCROOT: " . $docroot . "<br>");
echo("SCRIPTNAME: " . $scriptname . "<br>");


$connect_db_dhooret = mysql_connect('mysqlhost', 'DATABASE',
'PASWOORD');

echo("TEST<br>");

if (!mysql_select_db('DATABASE',$connect_db_DATABASE) )
{
print (htmlspecialchars("\n\n" . "DATABASEFOUT:" . "\n" . "Gelieve
contact op te nemen met de webmaster
(webmaster@netfreaky.be) en volgende fout te melden, aub: " . "\n") .
"<b>Database DATABASE is onbereikbaar.</b> <br>");
}

echo("TEST2<br>");

function get_foutmelding_database($query)
{
return htmlspecialchars("\n\n" . "DATABASEFOUT:" . "\n" . "Gelieve
contact op te nemen met de webmaster
(webmaster@netfreaky.be) en volgende fout te melden, aub: " . "\n" .
"query=\"".$query."\" \n");
}

echo("TEST3<br>");

if ($ref=="")
{
echo("GEEN REFERER <br>");
$ref = "http://www.writings.be";
}
else
{
echo("ER IS EEN REFERER: " & $ref & "<br>");
}

echo("TEST4 - " & $ref & "<br>");

$query = "SELECT * FROM domeinforwarding WHERE domein = \'" & getenv
('HTTP_REFERER') & "\'";

echo("QUERY: " & $query);

echo("TEST5<br>");
$result = mysql_query($query, $connect_db_DATABASE); //or die
(get_foutmelding_database($query) . "<br> <b>Onmogelijk query op
tabel domeinforwarding uit te voeren.</b> <br>");

$resultaat = false;

echo("TEST6<br>");

while (list($id, $domein, $verwijzing) = mysql_fetch_row($result))
{
$resultaat = true;
$URL= $verwijzing;
echo("TEST7");
}

echo("TEST8<br>");

mysql_close($connect_db_DATABASE);

echo("TEST9<br>");

if ($resultaat == false)
{
echo("TEST10<br>");
$URL="http://www.netfreaky.be";
}

echo("TEST11<br>");
echo("URL: " & $URL);
echo("TEST12<br>");
//header ("Location: $URL");

?>

----

(de databasenaam, gebruikersnaam en wachtwoord heb'k vanzelfsprekend
even veranderd in't script )

Dit geeft volgend resultaat:
----
CURRENT SERVER: domain.netfreaky.be
CURRENT URL: /
FULL CURRENT URL: http://domain.netfreaky.be/
REF: http://www.writings.be/
DOCROOT: /opt/www/dhooret/web/domain.netfreaky.be
SCRIPTNAME: /index.php
TEST
TEST2
TEST3
@ @P@TEST5
TEST6

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL
result resource in /opt/www/dhooret/web/domain.netfreaky.be/index.php
on line 63
TEST8
TEST9
TEST10
TEST11
@PD0 TEST12
----

Waarom hij die TEST4 weglaat, en naar speciale karaktertjes vervormt,
blijft mij een vraag...


De Tabelstructuur is de volgende

Veld Type Attributen Null Standaardwaarde Extra Actie
id int(11) Nee auto_increment
domein varchar(50) Nee
verwijzing varchar(255) Nee

en een record ziet er als volgt uit:

6;http://www.writings.be;http://www.netfreaky.be/writings

Meer info over de webserver is te vinden op
http://domain.netfreaky.be/phpinfo.php

Iemand enig idee waaraan dit zou kunnen liggen?


--
mvg, Netfreaky

Yesterday tomorrow was today, so why shouldn't you make your tomorrow
is just better than today... that will make your future better than
yesterday

Geert Wirken
28/11/05, 09:30
Netfreaky schreef op 28-11-2005 0:46:
[knip]
> $query = "SELECT * FROM domeinforwarding WHERE domein = \'" & getenv
> ('HTTP_REFERER') & "\'";
>
> echo("QUERY: " & $query);

Wat gebeurt er als je die '&' verandert in '.'?
Bovendien vergeet je addslashes().

--
Met vriendelijke groeten,
Geert Wirken

Ronald Klip
28/11/05, 10:15
Netfreaky schreef:
>
> via een frame wordt een bepaalde (gratis) domainnaam doorverwezen
> naar een pagina op m'n site (bvb http://www.writings.be naar
> http://domain.netfreaky.be/index.php)
>
> Aan de hand van de referer wil ik dan de juiste pagina openen.

Slecht plan. In nogal wat requests ontbreekt de referrer, bijvoorbeeld
omdat de gebruiker zijn browser daartoe heeft afgericht of omdat een
firewall de referrer wegfiltert. Je kunt je applicatie dus beter niet
rond die header bouwen.

--
groet, Ronald

Netfreaky
07/12/05, 21:30
Ronald Klip schreef op ma 28 nov 2005 10:05:18a:

> Netfreaky schreef:
>>
>> via een frame wordt een bepaalde (gratis) domainnaam doorverwezen
>> naar een pagina op m'n site (bvb http://www.writings.be naar
>> http://domain.netfreaky.be/index.php)
>>
>> Aan de hand van de referer wil ik dan de juiste pagina openen.
>
> Slecht plan. In nogal wat requests ontbreekt de referrer,
> bijvoorbeeld omdat de gebruiker zijn browser daartoe heeft
> afgericht of omdat een firewall de referrer wegfiltert. Je kunt je
> applicatie dus beter niet rond die header bouwen.

dit is de enige header die de originele domeinnaam meegeeft, mits de
eigenlijke pagina in 'n frame geladen wordt...
Tenzij u misschien 'n ander idee hebt?


--
mvg, Netfreaky

Yesterday tomorrow was today, so why shouldn't you make your tomorrow
is just better than today... that will make your future better than
yesterday

Netfreaky
07/12/05, 21:30
Geert Wirken schreef op ma 28 nov 2005 09:26:45a:

> Netfreaky schreef op 28-11-2005 0:46:
> [knip]
>> $query = "SELECT * FROM domeinforwarding WHERE domein = \'" & getenv
>> ('HTTP_REFERER') & "\'";
>>
>> echo("QUERY: " & $query);
>
> Wat gebeurt er als je die '&' verandert in '.'?
> Bovendien vergeet je addslashes().
>

die & veranderen in 'n . deed't ('k zat kennelijk iets te lang met
asp.net te werken ;-))



--
mvg, Netfreaky

Yesterday tomorrow was today, so why shouldn't you make your tomorrow
is just better than today... that will make your future better than
yesterday

Ronald Klip
08/12/05, 00:15
Netfreaky wrote:

> Ronald Klip schreef op ma 28 nov 2005 10:05:18a:
>
>>Netfreaky schreef:
>>
>>>Aan de hand van de referer wil ik dan de juiste pagina openen.
>>
>>Slecht plan. In nogal wat requests ontbreekt de referrer,
>>bijvoorbeeld omdat de gebruiker zijn browser daartoe heeft
>>afgericht of omdat een firewall de referrer wegfiltert. Je kunt je
>>applicatie dus beter niet rond die header bouwen.
>
> dit is de enige header die de originele domeinnaam meegeeft, mits de
> eigenlijke pagina in 'n frame geladen wordt...
> Tenzij u misschien 'n ander idee hebt?

Verzin een list die niet berust op de referrer.


--
groet, Ronald