Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Logica in una funzione

  1. #1

    Logica in una funzione

    Ciao ragazzi, sto diventando matto!

    Allora, ho creato una classe e dentro ho inserito questa funzione che IN TEORIA dovrebbe prendere il tempo corrente e vedere se c'è la sessione nel database per capire gli utenti che sono in linea.

    Codice PHP:
    function onLine(){
            
    // inizio la sessione
            
    session_start();
            
    // connessione al database
        
    require('./databases/dbConnect.php');
            
    // tempo di timeout
        
    $timeout 100// 5 minuti e non si è considerati in linea
            // tempo corrente
        
    $time time();
            
    // sottrazione per la differenza
        
    $esatto $time $timeout;
            
    // recupero l'ip
        
    $ip $_SERVER['REMOTE_ADDR'];
            
    // recupero l'id di sessione
        
    $session_id session_id();
        
    // elimino tutti i record vecchi
        
    $query=mysql_query("DELETE FROM online WHERE time = '$esatto'") or die ("Impossibile eseguire la query: ".mysql_error());
        
    // controllo se la sessione esiste già
        
    $query=mysql_query("SELECT ip,session_id FROM online WHERE ip = '$ip' AND session_id = '$session_id'") or die ("Impossibile eseguire la query: ".mysql_error());
        
    // controllo sessione
        
    if ($result mysql_num_rows($query) > 0){
            echo 
    "sessione già presente...";
        }else{
        
    $query=mysql_query("INSERT INTO online (id,ip,session_id,time) VALUES ('','$ip','$session_id','$time')") or die ("Impossibile eseguire la query :".mysql_error());
            echo 
    "Dati inseriti....";
        }
        
    $linea=mysql_query("SELECT id FROM online") or die ("Impossibile eseguire la query: ".mysql_error());
        
    $totale=mysql_num_rows($linea);
        echo 
    $totale;

    Il problema è che non mi leva il campo dal database pure essendo passati i 100 secondi....Come mai?

    Aiutatemi vi prego, sto impazzendo!!
    Realizzazione script php/mysql, per info:
    delrossofabio@gmail.com

    http://forum.html.it/forum/showthread.php?s=&threadid=1478962

  2. #2
    Fa quello che gli chiedi tu...

    codice:
    DELETE FROM online WHERE time = '$esatto'
    elimina solo i record che hanno esattamente 100 secondi di permanenza, ovviamente assumendo che il campo "time" nel db contenga un unix timestamp.

    dovresti mettere WHERE time <= '$esatto'

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Funzionaaaaaaaaaaa! VVoVe: VVoVe: VVoVe:

    Piero se un mitooooo!

    Mi sono sbattuto dalle 11 su questo script!

    Grazie infinite!!!!
    Realizzazione script php/mysql, per info:
    delrossofabio@gmail.com

    http://forum.html.it/forum/showthread.php?s=&threadid=1478962

  4. #4
    Ascolta, mi da ancora un errore....

    Codice PHP:

    Warning
    session_start(): Cannot send session cookie headers already sent by (output started at c:\documents and settings\fabio\documenti\webserver\********\includes\menuSx.php:90in c:\documents and settings\fabio\documenti\webserver\*********\functions\visiteClass.php on line 6

    Warning
    session_start(): Cannot send session cache limiter headers already sent (output started at c:\documents and settings\fabio\documenti\webserver\*********\includes\menuSx.php:90in c:\documents and settings\fabio\documenti\webserver\*********\functions\visiteClass.php on line 6 
    Nel menu sx che manda solo tramite dell if il menù dinamico....a che cosa è dovuto?

    EDIT: Ho risolto, ho fatto un errore io. Grazie ancora, ciao!
    Realizzazione script php/mysql, per info:
    delrossofabio@gmail.com

    http://forum.html.it/forum/showthread.php?s=&threadid=1478962

  5. #5
    evidentemente prima di session start() mandi un output verso il browser.

    session_start() deve essere messo prima di qualsiasi output al browser.

    Vedo ora che metti session_start() dentro la funzione .... direi di non farlo, sicuramente prima hai qualche codice html o altro .

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Sisi, infatti avev sbagliato me ne sono accorto dopo però

    Comunque ora funziona alla perfezione
    Realizzazione script php/mysql, per info:
    delrossofabio@gmail.com

    http://forum.html.it/forum/showthread.php?s=&threadid=1478962

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.