| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

20-11-2010, 18:05
|
|
ricober
Registrierter Benutzer
|
|
Registriert seit: Jun 2004
Beiträge: 63
|
|
Problem mit mod_rewrite und Session
Ich habe ganz simples Affiliate-System für One-Page-Website. Mit diesem System möchten wir Vermittlungen unserer Affiliate ermitteln. Das System ist folgendermassen aufgebaut:
Die One-Page-Website befindet sich auf einer eigenen Domain.
Sie besteht aus einer index.php und einer bestellen.php Datei. Dann gibt es da noch eine .htaccess Datei welche alles was hinter dem .com/ kommt in eine Variable (afID) packt.
Die .htaccess Datei enthält folgenden Code:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?afID=$1 [L,QSA]
Zuoberst in der index.php Datei ist folgender PHP-Code:
// Affiliate
session_start();
if(isset($_GET['afID'])){
// neuer Affiliate setzen
$_SESSION['afIDtmp'] = $_GET['afID'];
setcookie("afIDco",$_GET['afID'], time()+600000,"/");
}else{
if(isset($_COOKIE['afIDco'])) $_SESSION['afIDtmp'] = $_COOKIE['afIDco'];
}
Es wird ein Cookie und eine Session erstellt. Auf der bestellen.php Seite wird dann, falls eine Session vorhanden ist, der Bestellung die Variable mit dem Affiliate-Code angefügt.
Das Problem ist nun, dass anstelle des übergebenen Affiliate-Code, "favicon.ico" übergeben wird. Auch im Cookie wird als Inhalt "favicon.ico" gespeichert. Wiso passiert das, hat jemand eine Idee?
|

20-11-2010, 19:58
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Moderne Browser möchten von jeder Domain erstmal das Favicon laden, um das Tab damit zu schmücken.
Du solltest nicht rigoros alles nach der TLD als ID ansehen sondern ein gewisses Format verlangen und/oder Ausnahmen festlegen.
|

21-11-2010, 11:52
|
|
ricober
Registrierter Benutzer
|
|
Registriert seit: Jun 2004
Beiträge: 63
|
|
Danke, jetzt geht es!
Ich habe die .htaccess Datei angepasst:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-_]+)$ index.php?afID=$1 [L,QSA]
|

21-11-2010, 12:22
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Der Unterschied zwischen (.*) und ([a-zA-Z0-9-_]+) bewirkt aber keinesfalls, dass Anfragen für /favicon.ico nicht mehr umgeschrieben werden.
Hast vermutlich inzwischen einfach mal eine Datei namens favicon.ico angelegt, so dass nun !-f greift.
|

21-11-2010, 14:47
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Zitat:
Zitat von onemorenerd
Der Unterschied zwischen (.*) und ([a-zA-Z0-9-_]+) bewirkt aber keinesfalls, dass Anfragen für /favicon.ico nicht mehr umgeschrieben werden.
|
Doch, letzteres enthält u.a. den Punkt nicht!
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|