php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.03.2009, 13:56  
Benutzer
 
Registriert seit: 30.03.2009
Beiträge: 31
Gibson befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Cookies setzen

Hallo Zusammen,

ich möchte meinen Kunden (KD) die Möglichkeit geben, meine Homepage weiterzuempfehlen und Geld zu verdienen. Dazu habe ich mir gedacht, dass meine KD´s einen Link z.B. http://www.meineseite.de/kd36 von mir bekommen, den Sie in Ihren Mails integrieren können. "kd36" ist zum Beispiel mein Kunde Hans Muster. Wenn dann der Empfänger der Mail diesen Link anklickt und sich für einen kostenpflichtigen Dienst anmeldet, möchte ich meinem KD eine Provision zahlen. Wie kann ich dies mit Hilfe von Cookies (Setzen und Auslesen) tun, um die Zuordnung zum "kd36" (Hans Muster) zu gewährleisten? Wäre echt super wenn mir da jemand weiterhelfen könnte.

Vielen Dank im Voraus. Schöne Grüße.
Gibson ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.03.2009, 14:05  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Mit setcookie() kannst Du den Wert setzen.
Diesen findest Du dann (ab dem nächsten Request) im Feld $_COOKIE.
David ist offline  
Alt 30.03.2009, 14:25  
Benutzer
 
Registriert seit: 30.03.2009
Beiträge: 31
Gibson befindet sich auf einem aufstrebenden Ast
Standard Danke

Vielen Dank. Wie man ein Cookie setzt und ausliest ist mir bekannt. Nur wo und welcher genaue Ablauf, dass weiss ich nicht. Wäre echt hilfreich, wenn ich die Beantwortung meiner Frage ausführlicher und eventuell mit Code ("Herausforderung") auf meine zugegebener Maßen anspruchsvollere Frage bekommen könnte. Schöne Grüße.
Gibson ist offline  
Alt 30.03.2009, 14:35  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Wenn Deine Seite über http://www.meineseite.de/kd36 aufgerufen wird, setzt Du den Cookie und wenn es daran geht, die Provision zu vermerken liest Du den Cookie wieder aus (sofern vorhanden).
Sorry, ich weiß nicht, was ich da sonst antworten soll.
David ist offline  
Alt 30.03.2009, 15:17  
Benutzer
 
Registriert seit: 30.03.2009
Beiträge: 31
Gibson befindet sich auf einem aufstrebenden Ast
Standard

Das ist der Unterschied zwischen "erfahrener Benutzer" und "unerfahrener Benutzer" wie mich. Ich habe folgenden Datei als cookies.php auf meinem Server geladen:

[CODE<?php
$AktuellesDatum = date("d.m.Y H:i:s");
$Gueltigkeit = time()+86400;
setcookie("ErsterBesuch", $AktuellesDatum, $Gueltigkeit);
?>

<html>
<head>
<title>Cookie setzen</title>
</head>
<body>

<?php
echo$_COOKIE['ErsterBesuch'];
?>
</body>
</html>[/code]

Gehe ich richtig, dass ich 2 Dateien brauche, nämlich eine mit setcookie und eine die ausliest?

die Bezeichnung "kd36" soll nur die Zuordnung zum Kunden sein.

Also, ich rufe die Seite www.meineseite.de auf, dann wird ein Cookie geschrieben, indem das "kd36" steht. Oder muss eine html-Seite "kd36" bestehen? Ich hatte nur vor die "kd36" in ein Cookie zu schreiben und den Inhalt des Cookie an anderer Stelle wieder auszulesen.
Wo finde ich eigentlich das Cookie um den Inhalt anzusehen?

Ich hoffe einigermaßen verständlich dargestellt. Ja, ich weiß, für Dich wahrscheinlich einfache Basics aber ich tue mich da echt schwer. Ich habe für dieses Problem niegends was gefunden.

Vielen Dank.
Gibson ist offline  
Alt 30.03.2009, 15:29  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Das sind mindestens zwei Einzelprobleme:
a) Wie erhalte ich den Wert kd36 beim Aufruf von http://www.meineseite.de/kd36 ?
b) Was fange ich mit dem Cookie an?


Zu a)
PHP stellt einen einfachen Mechanismus zur Verfügung, um auf GET-Parameter wie in http://www.meineseite.de/index.php?kd=36 zuzugreifen.
PHP-Code:
echo $_GET['kd']; 
Damit wird die selbe Information transportiert wie mit http://www.meineseite.de/kd36 (Kunde #36).
Willst Du des Aussehens wegen die Version mit /kd36 benutzen?
David ist offline  
Alt 30.03.2009, 15:43  
Benutzer
 
Registriert seit: 30.03.2009
Beiträge: 31
Gibson befindet sich auf einem aufstrebenden Ast
Standard

Nee, die Version mit php?kd=36 ist sehr gut.
Gibson ist offline  
Alt 30.03.2009, 16:03  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Dann musst Du nur so etwas wie
PHP-Code:
if ( isset($_GET['kd'])) {
  
setcookie("referer_id"$_GET['kd'], $Gueltigkeit);

zum Setzen und
PHP-Code:
if ( isset($_COOKIE['referer_id']) ) {
  echo 
'referer_id='htmlspecialchars($_COOKIE['referer_id']), "<br />\n";

zum Auslesen verwenden.

Der Wert $_COOKIE['referer_id'] ist frühestens beim nächsten Request nach setcookie() vorhanden (oder nie, wenn der Browser den Cookie nicht akzeptiert).
Und daran denken, dass man Dir (gerade aber nicht nur bei GET) alles mögliche unterjubeln kann. Also auf gültige Werte abtesten und ggf. absichern. Wenn die Kundennummer nur aus Ziffern 0-9 besteht, kannst Du $_GET['kd'] daraufhin abtesten, zum Beispiel mit
PHP-Code:
if ( !preg_match('/^[0-9]+$/'$_GET['kd']) ) {
  exit(
'ungültige referer id');

siehe pcre
David ist offline  
Alt 30.03.2009, 16:17  
Benutzer
 
Registriert seit: 30.03.2009
Beiträge: 31
Gibson befindet sich auf einem aufstrebenden Ast
Standard

Danke, dass mache ich.

Was wenn allerdings mehrere Links mit Kunden z.B. kd36 , kd57 usw. eingehen. Ich kann doch nur den letzten gesetzten Cookie auslesen, also kd57, oder?

Und wie erfolgt die Zuordnung? Nur mit kd36 kann zur Verprovisionierung noch nichts anfangen. Ich brauche da zumindest noch z.B. die E-Mail Adresse. Wie kriege ich das hin?
Gibson ist offline  
Alt 30.03.2009, 16:27  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Was wenn allerdings mehrere Links mit Kunden z.B. kd36 , kd57 usw. eingehen. Ich kann doch nur den letzten gesetzten Cookie auslesen, also kd57, oder?
Der Cookie wird auf dem Client-Rechner gespeichert. Das Problem tritt also praktisch nur auf, wenn ein Kunde mehrere xyz.php?kd=nummer Links (per mail oder sonstwie) erhalten. (Genauer, wenn von einem Rechner/Browserprofil aus verschiedene Links mit ?kd=nummer aufgerufen werden). Dann würde ich den letzten Wert nehmen ...und genau das passiert im Moment auch, der jeweils letzte Aufruf von setcookie() überschreibt einen eventuell bereits vorhandenen Wert.

Zitat:
Und wie erfolgt die Zuordnung?
Über Deine Datenbank auf dem Server. Also so etwas wie
PHP-Code:
$query 'SELECT
  name,email
FROM
  kunden
WHERE
  kunden_id="'
.mysql_real_escape_string($_COOKIE['referer_id'], $mysql)."'
"

David ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Cookies: Wie viele darf eine Website setzen? SvenLittkowski PHP Tipps 2007 8 09.12.2005 20:54
Cookies auslesen HSFighter PHP Tipps 2007 2 19.11.2005 14:56
[Erledigt] Gültigkeitsdauer eines Cookies lässt sich nicht setzen PHP Tipps 2005-2 8 21.10.2005 13:25
Cookies richtig setzen und ersetzen Bonaparte PHP Tipps 2005-2 6 30.08.2005 14:51
Sitzungsvariablen, Abfrage-Zeichenketten, Cookies dethlef14 PHP Tipps 2005-2 2 16.08.2005 15:42
anzahl von cookies irgendwann bedenklich?lieber DB-Anfrage? Crypi PHP Tipps 2005-2 9 16.08.2005 12:55
Cookies setzen mit PW und Name lessiv PHP Tipps 2005-2 10 04.08.2005 17:23
sessions und cookies... PHP Tipps 2005-2 7 31.07.2005 21:17
problem mit cookies... d4rki PHP Tipps 2005 1 20.04.2005 12:19
Cookies setzen PHP Tipps 2005 2 22.03.2005 10:00
cookies setzen schlägt fehl (counter einrichten) PHP Tipps 2005 16 06.01.2005 00:33
Cookies mit Variablen setzen? $$$ ThiKool $$$ PHP Tipps 2007 4 03.01.2005 20:27
Cookies setzen Crypi PHP Tipps 2004 10 24.09.2004 12:35
Probleme mit Cookies - headers already sent PHP Tipps 2004 28 21.08.2004 20:41
Prob beim Löschen von Cookies PHP Tipps 2004 4 07.06.2004 20:58

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
setcookie nur den letzen wert, email link cookie setzen, php seite setzt mehrere cookies

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum