Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Comment créer une page de capture virale
<?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);
}
Owner

titomus commented Mar 10, 2017

Retrouvez l'article Comment créer une page de capture virale sur le blog.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment