Visualizzazione risultati 1 fino 10 di 10

Discussione: contatore visite resettato

  1. #1
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito contatore visite resettato

    Il mio contatore visite ogni tanto si resetta, è capitato più volte, ma non riesco a spiegarmi perchè!il codice è questo:
    Codice PHP:
    <?php
    function scrivi($f,$var,$nome){
    $file=fopen($f,"w");
    fwrite($file,"<?\n$nome=".var_export($var,true).";\n?>");
    fclose($file);
    }
    function
    controlla($f){
    if(!
    file_exists($f)){
    $file=fopen($f,"w");
    fclose($file);
    }
    }
    $pagi="http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
    if(!isset(
    $contatore)){
    $contatore="contatore.txt";
    }
    if(!isset(
    $a)){
    $a="prova@prova.it";
    }
    $da="\"Carlo\"<karl8@tiscali.it>";
    if(
    $r=="3.14159265358979"){
    $file=fopen($contatore,"w");
    fwrite($file,0);
    echo
    "Contatore azzerato<br>";
    }else if(
    $r=="0"){
    $pag="http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?r=3.14159265358979&contatore=$contatore";
    $oggetto="azzeramento contatore $contatore";
    $testo="È stata attivata la funzione di azzeramento del contatore $contatore, per confermarla clicca sul link $pag";
    $testoh="È stata attivata la funzione di azzeramento del contatore $contatore, per confermarla clicca <a href=\"$pag\">qui</a>";
    invmail($a,$oggetto,$testo,"from: $da",$testoh);
    }else{
    if(
    file_exists($contatore)){
    $file=fopen($contatore,"r");
    $conta=fread($file,filesize($contatore));
    }else{
    $conta=0;
    }
    $conta++;
    $file=fopen($contatore,"w");
    fwrite($file,$conta);
    $file=fopen("da_".$contatore,"a");
    fwrite($file,"$conta ° visita: ".date("H:i:s d/m/Y")." ip: ".$_SERVER['REMOTE_ADDR']." pagina di provenienza: ".$_SERVER['HTTP_REFERER']."\n");
    controlla("giorni_$contatore");
    require(
    "giorni_$contatore");
    $giorni[date("d/m/Y")]=$giorni[date("d/m/Y")]+1;
    scrivi("giorni_$contatore",$giorni,"\$giorni");
    if(
    $vis=="img"){
    settype($conta,"string");
    $car=ImageCreateFromGif("immagini/numeri.gif");
    $x=ImageSx($car)/10;
    $y=ImageSy($car);
    $lar=strlen($conta)*$x;
    $alt=$y;
    $vis=ImageCreate($lar,$alt);
    for(
    $i=0;$i<strlen($conta);$i++) {
    $c=ord($conta{$i})-48;
    ImageCopy($vis,$car,$i*$x,0,$c*$x, 0, $x, $y);
    }
    header("Content-Type: image/gif");
    ImageGIF($vis);
    ImageDestroy($vis);
    ImageDestroy($car);
    }
    if(isset(
    $ogni)&&$ogni!=""){
    if (
    $conta % $ogni==0){
    $oggetto="visitatori per il contatore $contatore";
    $testo="n° di vitatori per il contatore $contatore=$conta.\nPer azzerarlo, clicca sul link $pagi?r=0&contatore=$contatore";
    $testoh="n° di vitatori per il contatore $contatore=$conta.<br>\nPer azzerarlo, clicca <a href=\"$pagi?r=0&contatore=$contatore\">qui</a>";
    invmail($a,$oggetto,$testo,"from: $da",$testoh);
    }
    }
    }
    fclose($file);
    ?>
    Il contatore viene chiamato con il tag
    Codice HTML:
    <img src="http://www.karl94.altervista.org/conta.php?contatore=ponga_web.txt&ogni=&vis=img">

  2. #2
    Guest

    Predefinito

    mmm non è che percaso ha una backdoor? forse mi sbalgio però basta inserire come variabile
    in append all'url r=3.1414......bla bla per azzerare il contatore...

    bhooo ciao

  3. #3
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Io ti consiglierei di metterlo offline immediatamente, non ho analizzato il codice in modo approfondito ma a prima vista sembrerebbe permettere il libero accesso e la modifica dei tuoi files e in teoria quindi permettere a chiunque di modificarti il sito.

    Usa piuttosto il contatore di AlterVista o di qualche servizio esterno.
    Gianluca

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da demenziale
    mmm non è che percaso ha una backdoor? forse mi sbalgio però basta inserire come variabile
    in append all'url r=3.1414......bla bla per azzerare il contatore...

    bhooo ciao
    l'avevo detto io :))) ti consiglio anche io di farlo. Sebbene il consiglio di Gianluca sarà "piu' meglio assai" del mio.

  5. #5
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    @demenziale:sì, facendo così il contatore si azzererebbe, adesso metto anche una notifica e-mail dopo averlo azzerato, indicando anche la visite al momento dell' azzeramento

    @gianluca:ho già quasi pronta una nuova idea, solo da migliorare in modo che scriva solamente in un unico file



    grazie per l' aiuto!
    Ultima modifica di karl94 : 21-09-2006 alle ore 15.12.11

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da karl94
    @dementialsite:sì, facendo così il contatore si azzererebbe, adesso metto anche una notifica e-mail dopo averlo azzerato, indicando anche la visite al momento dell' azzeramento
    hem hhemehe :) come mi chiamo io? altro che contatore resettato... ti resetto il computer io :))) scherzo. Cmnq io sono Demenziale. Quell'altro li :))) Dementialsite è un altro. Da notare anche la differenza di età (di registrazione) di almeno 30 giorni. Un po' di rispetto per i piu' anziani ;)

  7. #7
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    scusa, demenziele ho letto i post molto in fretta e non ho notato che eri tu a scrivere

    il nuovo codice è questo:
    Codice PHP:
    <?php
    function scrivi($f,$var,$nome){
    $file=fopen($f,"w");
    fwrite($file,"<?\n$nome=".var_export($var,true).";\n?>");
    fclose($file);
    }
    function
    controlla($f){
    if(!
    file_exists($f)){
    $file=fopen($f,"w");
    fclose($file);
    }
    }
    $pagi="http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
    require
    "funz.php";
    if(!isset(
    $contatore)){
    $contatore="contatore";
    }
    if(!isset(
    $a)){
    $a="karl8@tiscali.it";
    }
    $adef="karl8@tiscali.it";
    $da="\"Carlo\"<karl8@tiscali.it>";
    controlla("contatore.txt");
    require(
    "contatore.txt");
    if(
    $r=="3.14159265358979"){
    $oggetto="azzeramento contatore $contatore";
    $testo="È stato azzerato il contatore $contatore, le visite erano a quota ".$conta[$contatore][0];
    $testoh="È stato azzerato il contatore $contatore, le visite erano a quota ".$conta[$contatore][0];
    invmail($a,$oggetto,$testo,"from: $da",$testoh);
    if(
    $a!=$adef)
    invmail($adef,$oggetto,$testo,"from: $da",$testoh);
    unset(
    $conta[$contatore]);
    echo
    "Contatore azzerato<br>";
    }else if(
    $r=="0"){
    $pag="http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?r=3.14159265358979&contatore=$contatore";
    $oggetto="azzeramento contatore $contatore";
    $testo="È stata attivata la funzione di azzeramento del contatore $contatore, per confermarla clicca sul link $pag";
    $testoh="È stata attivata la funzione di azzeramento del contatore $contatore, per confermarla clicca <a href=\"$pag\">qui</a>";
    invmail($a,$oggetto,$testo,"from: $da",$testoh);
    if(
    $a!=$adef)
    invmail($adef,$oggetto,$testo,"from: $da",$testoh);
    }else{
    $conta[$contatore][0]++;
    $conta[$contatore][1][$conta[$contatore][0]][0]=date("H:i:s d/m/Y");
    $conta[$contatore][1][$conta[$contatore][0]][1]=$_SERVER['REMOTE_ADDR'];
    $conta[$contatore][1][$conta[$contatore][0]][2]=$_SERVER['HTTP_REFERER'];
    $conta[$contatore][2][date("d/m/Y")]=$conta[$contatore][2][date("d/m/Y")]+1;
    if(
    $vis=="img"){
    $num=$conta[$contatore][0];
    settype($num,"string");
    $car=ImageCreateFromGif("immagini/numeri.gif");
    $x=ImageSx($car)/10;
    $y=ImageSy($car);
    $lar=strlen($num)*$x;
    $alt=$y;
    $vis=ImageCreate($lar,$alt);
    for(
    $i=0;$i<strlen($num);$i++) {
    $c=ord($num{$i})-48;
    ImageCopy($vis,$car,$i*$x,0,$c*$x, 0, $x, $y);
    }
    header("Content-Type: image/gif");
    ImageGIF($vis);
    ImageDestroy($vis);
    ImageDestroy($car);
    }
    if(isset(
    $ogni)&&$ogni!=""){
    if (
    $conta[$contatore][0] % $ogni==0){
    $oggetto="visitatori per il contatore $contatore";
    $testo="n° di vitatori per il contatore $contatore=$conta[$contatore][0].\nPer azzerarlo, clicca sul link $pagi?r=0&contatore=$contatore";
    $testoh="n° di vitatori per il contatore $contatore=$conta[$contatore][0].<br>\nPer azzerarlo, clicca <a href=\"$pagi?r=0&contatore=$contatore\">qui</a>";
    invmail($a,$oggetto,$testo,"from: $da",$testoh);
    }
    }
    }
    scrivi("contatore.txt",$conta,"\$conta");
    ?>
    Ultima modifica di karl94 : 21-09-2006 alle ore 18.36.45

  8. #8
    Guest

    Predefinito

    funz.php cosa ha al suo interno?

  9. #9
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Citazione Originalmente inviato da demenziale
    funz.php cosa ha al suo interno?
    Le due funzioni che ho messo in testa al file e questa per mandare le e-mail che mi sono dimenticato di mettere:
    Codice PHP:
    function invmail($a,$ogg,$testo,$headers,$testoh){
    $boundary = "==String_Boundary_x" .md5(time()). "x";
    $headers .= "\nX-Mailer: PHP\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/alternative;\n";
    $headers .= " boundary=\"$boundary\";\n\n";
    $messaggio = "$testo\n";
    $messaggio .= "--$boundary\n";
    $messaggio .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
    $messaggio .= $testo ."\n\n";
    $messaggio .= "--$boundary\n";
    $messaggio .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
    $messaggio .= $testoh ."\n";
    $temp = fopen("mail.txt","r");
    $b=fread($temp,sizeof("mail.txt"));
    while (
    time() < $b+1){}
    $riuscita = mail($a,$ogg,$messaggio,$headers);
    $temp = fopen("mail.txt","w");
    fwrite($temp,time());
    fclose($temp);
    return
    $riuscita;
    }

  10. #10
    Guest

    Predefinito

    manca del codice.. nel codice postato da te si fa riferimento ad un $r che viene eguagliato a dei numeri... dove viene settata questa variabile?
    Mi viene il dubbio che lo script usi i superglobal array (una cosa del genere).
    Praticamente prima era possibile utilizzare utilizzare le variabili per individuare un elemento : esempio hai un form con un campo name = "r" ? lo riusi nello script con la variabile $r ma questa ppuo' essere settata anche con www.paginaweb.it/?r=quellochemipare

    quindi le soluzioni sono due:
    1) ti sei dimenticato un pezzo di codice
    2) è uno script vecchio (che sicuramente ha una backdoor)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •