Autor Zpráva
WordpressKokos
Profil
Zdravím!

Mám referální program a lidi jdou na register/?ref=dadadaad . Ale když z tohoto linku odejdou na Home a pak kliknou na register prostš ten ref= zmizí (Logicky).

Potřeboval bych vysvětlit jak poté co někdo přijde na register/?ref=adad tak jak vezmu tento ref= a uložím do 'SESSION kterou pak čekuji všude před registrací.

Díky !!
Slark
Profil
Na stránce s registrací:
<?php
if(isset($_GET["ref"]) && !empty($_GET["ref"]))
{
 $ref = htmlspecialchars($_GET["ref"]);
 $_SESSION["ref"] = $ref;
}
?>


Standardně se vlastně referenční číslo ukládá co cookies třeba s platností 30 dnů.

<?php
if(!isset($_COOKIE["ref"]) && isset($_GET["ref"]) && !empty($_GET["ref"]))
{
 $ref = htmlspecialchars($_GET["ref"]);
 setcookie("ref", $ref, time()+60*60*24*30, "/"); 
}
?>
WordpressKokos
Profil
Aha jasně takže potom co odejdou z registrace tak ale už ty cookie jsou zapsaný. A když znovu přijdou na registraci po 5 stránkách jak zavolám to $ref abych s ním mohl pracovat:

Nebo už ta $ref variable bude mít 30 dnů ten referální kód v sobě a já můžu jen pracovat s $ref přímo, žádné další volání ?

<?php
if(!isset($_COOKIE["ref"]) && isset($_GET["ref"]) && !empty($_GET["ref"]))
{
 $ref = htmlspecialchars($_GET["ref"]);
 setcookie("ref", $ref, time()+60*60*24*30, "/"); 
}
?>

Tenhle kod vlastně už ukládá i volá $ref že ?
Keeehi
Profil
WordpressKokos:
Tenhle kod vlastně už ukládá i volá $ref že ?
Ne. Ten ho jen ukládá do cookie.

Jinak funkce htmlspecialchars je tam úplně k ničemu. Ta by byla vhodná až v případě, že by se ten referenční kód někde vypisoval v HTML kontextu.
WordpressKokos
Profil
Jo no to je pravda :D

Takže když pak příjdou na registraci tak musím dostat $ref :

$ref = $_COOKIE['ref'];
Keeehi
Profil
Chceš to dostat snad z cookie, ne?
if(isset($_COOKIE["ref"])) {
   $ref = $_COOKIE["ref"];
}

Ještě musíš vyřešit situaci, kdy na stránku přijde člověk jak s nastavenou ref cookie tak i s ref v URL. Pokud jsou obě hodnoty stejné tak v pohodě ale pokud ne, musíš se rozhodnout, kterou upřednostníš. Na tom pak bude záviset pořadí bloků v kódu.

No a jelikož předpokládám, že to pak chceš cpát do databáze, tak to nezepomeň ošetřit, těsně před připojením do SQL dotazu vhodnou metodou.

A když už jsme u té bezpečnosti, tak cookie by měla být nastavená jako nezměnitelná javascriptem.
setcookie("ref", $ref, time()+60*60*24*30, "/", "", false, true);
A pokud ti stránky běží na https (což dnes lze doporučit u všech stránek) tak i předposlední parametr by měl být true.
WordpressKokos
Profil
Aha jasně mám to, díky moc !!


I tak když najedu na SESSION v prohlížeči, ukazuje mi to ref:


jakýkoliv typ spojení (Ne zabezpečený??)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: