Was stimmt hier nicht?
Nelson
- php
http://www.coder-wiki.de/HowTos/PHP-Keyword-aus-Referer-auslesen
Parse error: parse error, unexpected T_VARIABLE in ...blabla\referer.php on line 2
Soweit ich es verstanden habe, sollte diese Fehlermeldung auf ein fehlendes Semikolon hinweisen oder?
Leider sehe ich aber die Fehlerstelle nicht im obigen Code...
Vielen Dank im Vorraus
Nelson
Hello out there!
Leider sehe ich aber die Fehlerstelle nicht im obigen Code...
Wir ohne Code auch nicht.
See ya up the road,
Gunnar
Hello out there!
Leider sehe ich aber die Fehlerstelle nicht im obigen Code...
Wir ohne Code auch nicht.
See ya up the road,
Gunnar
Ok dachte der Link wird beachtet :)
<?
function referer2keyword($referer=$_SERVER['HTTP_REFERER'])
{
$domain = explode('/', $referer);
$array = array(
array('google','q'),
array('alltheweb','query'),
array('altavista','q'),
array('aol','query'),
array('excite','search'),
array('hotbot','query'),
array('lycos','query'),
array('yahoo','p'),
array('t-online','q'),
array('msn','q'),
array('netscape','search')
);
for($i=0; $i<count($array); $i++) {
if(eregi($array[$i][0], $referer)) {
$parse = parse_url($referer);
parse_str($parse['query'], $output);
$keyword = $output[$array[$i][1]];
break;
}
}
return $keyword;
}
echo referer2keyword();
?>
Moin,
Ok dachte der Link wird beachtet :)
der Link war ja nicht wirklich ein Link. Mehr in der Forums-Hilfe.
Ich glaub, der Fehler kommt durch diese Zeile zustande:
function referer2keyword($referer=$_SERVER['HTTP_REFERER'])
Ein = in der Parameterdeklaration benutzt man, wenn man den Parameter mit einem Wert vorbelegen will, falls kein Parameter übergeben wurde.
Diesen aber mit einer Variablen vorzubelegen, scheint PHP nicht zu gefallen. Macht eigentlich auch nicht wirklich Sinn...
Es müsste also so lauten:
function referer2keyword($referer)
MfG,
Juan
Hallo Juan,
Es müsste also so lauten:
function referer2keyword($referer)
Damit ist der Parameter der Funktion aber nicht mehr optional.
Grüße aus Nürnberg
Tobias
Hi,
Es müsste also so lauten:
function referer2keyword($referer)
Damit ist der Parameter der Funktion aber nicht mehr optional.
stimmt, es müsste so lauten:
function referer2keyword($referer = '')
und dann in der Funktion, wie bereits von anderen Teilnehmern erklärt:
if (empty($referer)){
$referer = $_SERVER['HTTP_REFERER']
}
MfG,
Juan
Vielen Dank an alle!
Hello,
Leider sehe ich aber die Fehlerstelle nicht im obigen Code...
Du solltest unbedingt alle Fehlermeldungen einschalten zum Entwickeln.
Schreib an den Anfang Deines Scriptes (während der Entwicklung!)
<?php
error_reporting(E_ALL);
ini_set('display_errors','1');
Und dann versuch es nochmal.
MMn ist $_SERVER['HTTP_REFERER'] nur gesetzt, wenn vom Client ein Referrer mitgeliefert wurde.
--- ----
PHP mit einem 'r', HTTP mit zwei 'r', oder wie war das? *gg*
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
function referer2keyword($referer=$_SERVER['HTTP_REFERER'])
da liegt der fehler.
so könnte es gehen:
function referer2keyword()
{
$referer=$_SERVER['HTTP_REFERER'])
.....
}
Hallo Nelson,
http://www.coder-wiki.de/HowTos/PHP-Keyword-aus-Referer-auslesen
Parse error: parse error, unexpected T_VARIABLE in ...blabla\referer.php on line 2
Man kann Parametern von Funktionen keine Variable als Standardwert zuweisen, du müsstest also die Zeile:
function referer2keyword($referer=$_SERVER['HTTP_REFERER'])
z.B. in
function referer2keyword($referer='')
umschreiben und am Anfang der Funktion prüfen ob die Variable $referer leer ist (->empty()) und wenn ja ihr den Wert von $_SERVER['HTTP_REFERER'] zuweisen.
Grüße aus Nürnberg
Tobias
Hello,
Man kann Parametern von Funktionen keine Variable als Standardwert zuweisen, du müsstest also die Zeile:
function referer2keyword($referer=$_SERVER['HTTP_REFERER'])
z.B. in
function referer2keyword($referer='*')
umschreiben und am Anfang der Funktion prüfen ob die Variable $referer genau den Stern enthält, der ja bekanntlich kein gültiger Referrer wäre.
if ($referer == '*')
{
if isset($_SERVER['HTTP_REFERER'])
{
$referer = $_SERVER['HTTP_REFERER'];
}
else
{
$referer = '';
}
}
## hier $referer auf Schwachsinn und ggf. Injection prüfen
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
hi,
du müsstest also die Zeile [...] z.B. in
function referer2keyword($referer='')
umschreiben und am Anfang der Funktion prüfen ob die Variable $referer leer ist (->empty()) und wenn ja ihr den Wert von $_SERVER['HTTP_REFERER'] zuweisen.
Da würde ich dann doch aber
function referer2keyword($referer=false) {
if(!$referer) { $referer = ...; }
den Vorzug geben.
gruß,
wahsaga
Hello,
Da würde ich dann doch aber
function referer2keyword($referer=false)
{
if($referer === false)
{
$referer = REFERER_DEFAULT;
}
Zu beachten wäre immer noch, dass $_SERVER['HTTP_REFERER'] nur gesetzt ist, wenn der Client einen Referrer übertragen hat, unabhängig davon, ob dieser gefälscht ist.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
echo $begrüßung;
$referer = REFERER_DEFAULT;
Das ist in dieser Funktion gar nicht notwendig. Ein einfaches Irgendwas, wie '', reicht aus. Es geht ja nur darum, die eventuell vorhandenen Suchbegriffe aus dem eventuell mitgesendeten oder übergebenen Referrer rauszuholen.
Da die Quelle ja ein Wiki ist, habe ich mir mal erlaubt, sie zu korrigieren. Nur falls sich jemand wundert ...
echo "$verabschiedung $name";
Hello,
Da die Quelle ja ein Wiki ist, habe ich mir mal erlaubt, sie zu korrigieren. Nur falls sich jemand wundert ...
Das gefällt mir so.
Man könnte nun im WIKI noch den Punkt "externe Links zur Evaluation dieses Vorschlags" einbauen und auf diesen Thread verweisen :-))
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom