Page 1 sur 2

tache cron

MessagePosté: Mar 18 Déc 2018 09:41
de acrobat
Bonjour à tous,

Besoin d'un peu d'aide sur les taches cron prévues d'origine dans le script. J'explique mon probleme: la tache nettoie la bdd lorsque l'on se connecte en tant qu'admin au site et ce à n'importe quelle heure, i e, si je mùe connecte à 9h du mat' la tache cron nettoie à 9h, si je me connecte (pour la premier fois de la journée bien sur) à 14h, la tache cron nettoie à 14h, en soi c'est logique...sauf que le soucis réside dans le fait que si des membres cliques sur des liens ptc acant le nettoyage, ils peuvent cliquer une seconde fois après le nettoyage, et ca sa pose probleme pour les liens ptc avec capping égal à 1 car forcément des liens rémunéré censés rémunérer 1 fois par 24h et donc une perte net pour moi et donc devrait baisser le taux que j'ai fixer assez haut et que je compte ne pas bouger (en théorie).

ma demande: comment peut on modifier l'heure du nettoyage de la tache cron notemment celle qui nettoie les ip au niveau des liens ptc? Est- possible de l'automatiser et faire en sorte qu'elle nettoie la base de donnée sans que l'on soit obligé de se connecter et faire en sorte que la tache nettoie automatiquement à 00h00 chaque jour par exemple?

Merci pour ceux qui saurons et qui voudrons bien m'aider sur ce point.

Cordialement
Richard
http://www.surf-remunere.tk

Re: tache cron

MessagePosté: Mer 19 Déc 2018 09:15
de creadunet
Bonjour

Attention, vous avez mal compris ce que fait la tâche CRON.
Le nettoyage n'influe en rien sur la journée en cours.
Ce qui est nettoyé, ce sont les "anciennes" stats.

Pour votre exemple des PTC, les stats nettoyées par la tâches cron, ce sont les stats à J-31 (sauf si vous avez modifié les tâches CRON).

Et sinon, vous pouvez tout à fait programmer la tâche CRON comme une vraie tâche CRON, depuis votre hébergement.

Vous avez les explications sur l'admin de votre PTP :
- version 3, c'est dans Configuration / Réglages Spéciaux
- version 2, c'est dans Aide

Re: tache cron

MessagePosté: Mer 19 Déc 2018 10:44
de acrobat
Bonjour,

Je vous remercie pour la réponse. En revanche ce que je ne comprend pas c'est alors pourquoi les cliques rémunérés repartent à 0 lorsque la tache cron automatique est achevée? de fiat les cliques s'affichent deux fois et les membres gagnent de fait 2 fois alors que les liens ont bien un capping de 1.

Dois je regarder dans le dossier flux que j'ai créé dans ce fait? Le problème pourrait il provenir de la?

Cordialement

Richard
http://www.surf-remunere.tk

Re: tache cron

MessagePosté: Mer 19 Déc 2018 11:13
de creadunet
Pouvez-vous vérifier votre table : ptc_tracking
Avant le déclenchement de la tâche CRON, et après ?

Et comparer le contenu, notamment au niveau des dates ?

Si vous constatez un problème, n'hésitez pas à m'envoyer les sauvegardes de la table (avant et après CRON) comme ça je verrai le problème.

Pour le Flux que vous avez créé, est-ce qu'il est bien tracké dans la table ptc_tracking ?
Logiquement oui, si vous l'avez bien intégré comme prévu.

Re: tache cron

MessagePosté: Mer 19 Déc 2018 13:29
de acrobat
je ne pense pas avoir les compétences pour savoir si il y un problème au niveau des dates, je copierai la table et vous la mettrais sur un post.

Pour le flux, j'ai simplement fait un peu copier coller avec la page flux webincntive etr j'ai mis mes paramètres selon le site en question. Les liens fonctionnent très bien en soi et sont correctement validés de l'autre côté...

Je pense pour le coup ne pas m'être trompé mais ne sait on jamais...

Re: tache cron

MessagePosté: Mer 19 Déc 2018 18:52
de acrobat
Bonsoir ,

en fait c'est même pire que ça puisque les pubs de ce flux s'affichent deux fois dans la liste des ptc. Pouvez vous me dire ou est ce que j'ai pu faire une erreur?

Voici le script:

<?php
/*
* partie Configuration à modifier
*/
$activation_mp_multiclic = 1;
$activation_mp_timer = 1;
$identifiant_mp = 'acrobat';
$timerPTC_mp = 3;
$typebonusPTC_mp = 'pts';
$bonusPTC_mp = 1;
$prefixFlux = 'mp';//put a unique Prefix for each Flux
/*
* partie Script, ne pas modifier sauf pour vos besoins.
*/
$fichier = 'http://www.mozi-ptp-regie.com/flux.php?ip='.$ip;
$xml_MP = lit_xml_moziptp($fichier, 'CAMP', array('IMGSRC', 'IDPUB', 'TIMER', 'CLICS'));

if ($xml_MP != '') {
$affiche = 1;

foreach ($xml_MP as $fid => $row) {
if ($activation_mp_multiclic == 0 && $row[3] > 0) {
continue;//pas de multiclic
}
if ($activation_mp_timer == 0 && $row[2] > 0) {
continue;//pas de timer
}

//$tablePTC['mp'.$fid]['id_ad']="10-".$row[1];
$tablePTC[$prefixFlux.$fid]['url'] = 'http://www.mozi-ptp-regie.com/lien.php?idpub='.$row[1].'&pseudo='.$identifiant_mp;
$tablePTC[$prefixFlux.$fid]['timer'] = $row[2]+$timerPTC_mp;
$tablePTC[$prefixFlux.$fid]['ad_clics'] = $row[3];
$tablePTC[$prefixFlux.$fid]['bonus'] = $bonusPTC_mp;
$tablePTC[$prefixFlux.$fid]['typebonus'] = $typebonusPTC_mp;
$tablePTC[$prefixFlux.$fid]['banniere'] = $row[0];
$tablePTC[$prefixFlux.$fid]['width'] = 468;
$tablePTC[$prefixFlux.$fid]['height'] = 60;
}
}

function lit_xml_moziptp($fichier,$item,$champs)
{
$tmp3 = array();
if ($chaine = @implode('', @file($fichier))) {
$tmp = preg_split("/<\/?".$item.">/",$chaine);
for ($i = 1; $i < sizeof($tmp) - 1; $i += 2) {
foreach ($champs as $champ) {
$tmp2 = preg_split("/<\/?".$champ.">/", $tmp[$i]);
$tmp3[$i-1][] = @$tmp2[1];
}
}
return $tmp3;
}
}


Avec tous mes remerciements

Re: tache cron

MessagePosté: Mer 19 Déc 2018 21:07
de creadunet
Je ne vois pas d'erreur dans le fichier.

Est-ce le seul flux actif ?

Ajoutez un

print_r($tablePTC);

Ca va vous afficher tout le tableau.
Vous pourrez voir ce qui sort exactement, et si c'est réellement en double.

Re: tache cron

MessagePosté: Mer 19 Déc 2018 22:19
de acrobat
Code: Tout sélectionner
<?php
$module_actif = 1;//mettre 0 pour ne pas le charger
$txtPtcFlux = '';
$ip = getip();
if ($module_actif == 1) {
    //inclusion de tous les flux PTC
    require_once dirname(__FILE__).'/webincentive/flux.php';
   require_once dirname(__FILE__).'/moziptp/flux.php';
   require_once dirname(__FILE__).'/adsavertissement/clic/flux.php';
   require_once dirname(__FILE__).'/adsavertissement/timer/flux.php';
   
    $_SESSION['fluxPTC'] = array();
    //on classe les PTC flux selon les critères choisis
    if (isset($tablePTC)) {
        foreach ($tablePTC as $resu) {
             $sortAux1[] = $resu['typebonus'];
             $sortAux2[] = $resu['bonus'];
        }
        array_multisort($sortAux1, SORT_ASC, $sortAux2, SORT_DESC, $tablePTC);

        //mise en session des  $limiteFluxPTC PTC
        $iii = 0;

        $date = date('Y-m-d H:i:s');
       
        foreach ($tablePTC as $idPTC => $infos) {
            //on vérifie si cliqué dans les 2 heures précédentes pour savoir si on affiche ou pas
            // ce sera également vérifié sur la page /ptcbar.php au niveau : $datelimite
            $datelimite = strftime('%Y-%m-%d %H:%M:%S', strtotime("$date + 2 hours ago"));
            $database->query('SELECT userid FROM `'.PREFIX.'ptc_tracking` WHERE userid=:idM AND url=:url AND cdate>"'.$datelimite.'"');
            $database->bind(':idM', $idMember, PDO::PARAM_INT);
            $database->bind(':url', $infos['url'], PDO::PARAM_STR);
            $resSingle = $database->single();
           
            if ($database->rowCount() ==0 ) {
                $iii++;
            } else {
                continue; // on n'affiche pas ce clic
            }

            if (isset($limiteFluxPTC) && $limiteFluxPTC != 0 && $iii > $limiteFluxPTC) {
                break;
            }
           
            $_SESSION['fluxPTC'][$idPTC]['url'] = $infos['url'];
            $_SESSION['fluxPTC'][$idPTC]['timer'] = $infos['timer'];
            $_SESSION['fluxPTC'][$idPTC]['ad_clics'] = $infos['ad_clics'];
            $_SESSION['fluxPTC'][$idPTC]['bonus'] = $infos['bonus'];
            $_SESSION['fluxPTC'][$idPTC]['typebonus'] = $infos['typebonus'];
           
            $txtPtcFlux .= '<div class="ptc ptcflux'.$idPTC.'">';
            $txtPtcFlux .= '<p class="ptcPhrase"><b>'._t("Gagnez %1s %2s en cliquant cette bannière", array($infos['bonus'], $infos['typebonus'] == 'cash' ? $devise : _t("pts"))).'</b></p>';
            $txtPtcFlux .= '<p class="ptcLien"><a href="#" onclick="window.location.reload();crea_openptc(\''.$siteurl.'/ptcClic.php?fid='.$idPTC.'&action=start\',\'PaidtoClickPage\',\'640\',\'480\');">';
            $txtPtcFlux .= '<img src="'.$infos['banniere'].'" width="'.$infos['width'].'" height="'.$infos['height'].'" border="0" alt="" /></a></p>';
            $txtPtcFlux .= '</div>';
        }       
    }
}



l erreur peut elle venir de la ligne 29?

Re: tache cron

MessagePosté: Mer 19 Déc 2018 22:36
de creadunet
En effet, cette ligne prend les clics dans les 2h précédentes.
Si pas de clic, ça passe.
Si clic, ça passe pas

Re: tache cron

MessagePosté: Mer 19 Déc 2018 23:04
de acrobat
quelle valeur dois-je mettre ?