Last active
February 13, 2022 17:29
-
-
Save titomus/c7c275f44f10820dac0b22f425ec5f57 to your computer and use it in GitHub Desktop.
Comment créer une page de capture virale
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
CONFIG | |
*/ | |
$get_email = 'Email'; | |
$get_name = 'Name'; | |
$get_referby = 'refby'; | |
$site_name = 'Titre'; | |
$site_slogan = 'Slogan'; | |
require('smplPDO.php'); | |
function randomString() { | |
$length = 5; | |
$characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'; | |
$string = ''; | |
for ($p = 0; $p < $length; $p++) { | |
$string .= $characters[mt_rand(1, strlen($characters))]; | |
} | |
return $string; | |
} | |
function track(){ | |
global $get_referby; | |
if(isset($_GET[$get_referby]) && $_GET[$get_referby] !=""){ | |
setcookie($get_referby, $_GET[$get_referby], time()+(3600*24*365)); | |
} | |
} | |
function save_lead($email,$name,$rfby){ | |
global $db; | |
$randomid = (isset($_COOKIE['randomid'])) ? $_COOKIE['randomid']: randomString(); | |
if( $email!= false && !$db->exists( 'viral', array( 'email'=>$email ) ) ){ | |
setcookie("randomid", $randomid, time()+(3600*24*365)); | |
$db->insert( 'viral', array( 'name'=>$name, 'email'=>$email, 'randomid'=> $randomid, 'count' =>0 ,'entry_time' => time() ) ); | |
# ajouter un point au referer | |
$refer_points = (int)get_points_id($rfby)+1; | |
//echo $refer_points; | |
$db->update( 'viral', array( 'count'=>$refer_points ), array('randomid'=>$rfby) ); | |
mail_referer($rfby); | |
return $randomid; | |
}else if (isset($_COOKIE['randomid'])){ | |
return $_COOKIE['randomid']; | |
}else{ | |
return get_randomid($email); | |
} | |
} | |
function get_dir(){ | |
$ssl = ( ! empty( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] == 'on' ); | |
$sp = strtolower( $_SERVER['SERVER_PROTOCOL'] ); | |
$protocol = substr( $sp, 0, strpos( $sp, '/' ) ) . ( ( $ssl ) ? 's' : '' ); | |
$url = $_SERVER['REQUEST_URI']; //returns the current URL | |
$parts = explode('/',$url); | |
$dir = $protocol.'://'.$_SERVER['SERVER_NAME']; | |
for ($i = 0; $i < count($parts) - 1; $i++) { | |
$dir .= $parts[$i] . "/"; | |
} | |
return $dir; | |
} | |
/* DB */ | |
function get_points($randomid){ | |
global $db; | |
return $db->get_var( 'viral', array( 'randomid'=>$randomid ), 'count' ); | |
} | |
function get_name($randomid){ | |
global $db; | |
return ucfirst($db->get_var( 'viral', array( 'randomid'=>$randomid ), 'name' )); | |
} | |
function get_randomid($email){ | |
global $db; | |
return $db->get_var( 'viral', array( 'email'=>$email ), 'randomid' ); | |
} | |
function get_points_id($randomid){ | |
global $db; | |
return $db->get_var( 'viral', array( 'randomid'=>$randomid ), 'count' ); | |
} | |
#fonction pour extraire la position dans le cas d'un accès restreint | |
function find_place($randomid){ | |
global $db; | |
$db->order_by = "`count` DESC"; | |
$all = $db->get_all( 'viral'); | |
//echo '<pre>'; var_dump($all); | |
$place = array_search($randomid, array_column($all, 'randomid')); | |
return (int)$place+1; | |
} | |
#fonction affichage pour concours. | |
function get_lasts(){ | |
global $db; | |
$db->order_by = "`count` DESC"; | |
$db->limit = "0,10"; | |
return $db->get_all( 'viral'); | |
} | |
function mail_referer($randomid){ | |
global $db; | |
$user = $db->get_row( 'viral', array( 'randomid'=>$randomid )); | |
$sujet = ucfirst($user['name']).', un de vos amis vient de vous suivre'; | |
$message = ucfirst($user['name']).',<br/><br/>Un de vos amis vient de s\'incrire sur notre site. Vous avec donc 1 chance de plus de recevoir votre accès rapidement. <br/>Partagez votre lien personnalisé le plus possible pour augmenter vos chances:<br/><a href="'.get_dir().'?'.$get_referby.'='.$user['randomid'].'">'.get_dir().'?'.$get_referby.'='.$user['randomid'].'</a><br/><br/> Amicalement'; | |
$headerMail= "Content-Type:text/html;charset=UTF-8\n";//permet d'envoyer les message au format html | |
$headerMail.= "Content-Transfer-Encoding: 8bit\n";//permet d'envoyer les message au format html | |
$headerMail.='From: test <test@test.com>';//pour répondre au message | |
mail($user['email'],$sujet,$message,$headerMail); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Retrouvez l'article Comment créer une page de capture virale sur le blog.