In der Regel handelt es sich dabei um ein Partnerprogramm. Sie haben es in Ihrer Beschreibung ziemlich genau getroffen, aber ich würde die Empfehlung aus der $_GET-Variable auch in einer Sitzung oder einem Cookie speichern, so dass dem Benutzer eine Gutschrift erteilt werden kann, selbst wenn er von der Empfehlungsseite weg navigiert. Damit meine ich - normalerweise schreibt ein Partnerprogramm Benutzer X nur dann etwas gut, wenn Benutzer Y sich registriert oder etwas kauft. Benutzer Y kann also die Empfehlungsseite aufrufen, sich umsehen und dann den Weg zurück zu einer Registrierungs- oder Kaufseite finden. Zu diesem Zeitpunkt ist die Empfehlungsseite $_GET var verloren und damit auch die Gutschrift. Ihre Empfehlungsseite würde also die Sitzung oder das Cookie für den Empfehlungscode speichern, und Ihre Registrierungsseite oder der Checkout-Callback würde nach diesen Variablen suchen und entsprechend handeln. Ich glaube, dass Scotts Methode gut ist, wenn es Bedenken gibt, wie er erwähnt, aber alternativ könnten Sie wollen, dass die Empfehlung die ganze Zeit statisch bleibt, für Fälle wie Geschäftsempfehlungen, die Leute auf Visitenkarten setzen könnten. Das wird im MLM häufig gemacht, wo die Vertreter Profile auf einer zentralen Unternehmenswebsite erhalten, damit sie keine eigenen erstellen müssen.
Ich weiß nicht, was Sie mit dem Aktualisieren der DB-Zeile, die sie derzeit belegen, meinen. Schlagen Sie so etwas wie ein Zählfeld vor, das eine Zahl enthält, die die Gesamtzahl der Überweisungen darstellt? Wenn ja, würde ich sagen, das ist keine gute Idee. Sie sollten jede erfolgreiche Empfehlung als eigenen Eintrag in einer relationalen Tabelle mit der ID des Empfehlers als gemeinsamen Schlüssel speichern. Auf diese Weise können Sie alle Arten von Postdaten in der Empfehlung speichern, so dass Sie wissen, ob Sie verarscht werden. Zum Beispiel ein Benutzer, der 1.000 Yahoo-Konten erstellt und sich mit seinem eigenen Empfehlungscode anmeldet, nur um Bonuspunkte zu erhalten. Ihre relationale Tabelle könnte eine sich wiederholende IP-Adresse oder eine inkrementelle Empfehlungs-E-Mail erkennen (johndoe1000@yahoo.com, johndoe1001@yahoo.com usw.) und dann wissen Sie, dass Sie etwas unternehmen müssen.
Die Sicherheit Ihres Vorschlags hängt letztlich davon ab, wie Sie mit den Daten umgehen. Wenn Sie blindlings etwas in die DB einfügen, ist alles schädlich. Stellen Sie einfach sicher, dass Sie die Dinge richtig entkommen lassen und das Verhalten im Auge behalten, auch manuell. Dann sollte alles in Ordnung sein.