Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    File PHP elaborato 2 volte invece di 1

    beh.. sì.. il titolo è un po' strano. ma strana è anche la faccenda!
    pagina frutto di un file (utente.php) che ne include altri di funzioni e logica. Nonostante la renderizzazione sia corretta, il browser elabora 2 volte utente.php
    Però! Questo succede quando si accede alla pagina via post, get e location.href mentre il file viene elaborato una sola volta se torno indietro e poi avanti col browser.
    Devo ricontrollare un altra volta eventuali 'include' o qualcuno ha altre idee?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Come fai a dire che viene eseguito 2 volte? Cosa succede? Mostra anche un po' di codice, per esempio in che modo viene chiamato il file utente.php e il suo contenuto (almeno le cose che ti fanno capire che viene eseguito 2 volte).

  3. #3
    non l'ho passato subito perchè speravo fosse una mia ignoranza tra le dinamiche php...

    <?phpsession_start();
    $conta = 0;
    include("accesso_db.php");
    include("funzioni_mw.php");
    include("funzioni_utente.php");
    include('funzioni_email.php');
    include('funzioni_post.php');


    ?>
    <!doctype html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    salto i i meta, i css e gli script javascript
    </head><body>
    <?php
    $id = substr($_SESSION['utente_loggato_id'],1);
    $utenteScadenza = '';

    if(isset($_POST['pubblica_utente'])) {
    if($_SESSION['utente_tipologia'] == 'attivita') {
    if($_SESSION['pagina_provenienza'] == 'primo_accesso') {
    $id = utenteRegistraAccessoPrimo($connessione,'attivita' );
    $_SESSION['utente_loggato_id'] = 'a'.$id;
    }
    else
    utenteRegistraAggiornamentoAttivita($connessione,$ id);
    }
    else {
    if($_SESSION['pagina_provenienza'] == 'primo_accesso') {
    $id = utenteRegistraAccessoPrimo($connessione,'persone') ;
    $_SESSION['utente_loggato_id'] = 'p'.$id;
    }
    else
    utenteRegistraAggiornamentoPersona($connessione,$i d);
    }
    }
    echo "<script type='text/javascript'>alert('pre-prebandana : -".$_SESSION['utente_tipologia']."+".$_SESSION['utente_loggato_id']."-');</script>";
    if($_SESSION['utente_tipologia'] == 'attivita') {
    $dom = "select scadenza from attivita_registrazioni where id='".$id."'";
    $risp = mysqli_query($connessione,$dom);
    while($a = mysqli_fetch_assoc($risp)) {
    if(is_null($a['scadenza']))
    $utenteScadenza = 'in attesa';
    elseif(date('Y-m-d') > $a['scadenza'])
    $utenteScadenza = 'scaduto';
    echo "<script type='text/javascript'>alert('prebandana ".$conta." : -".$a['scadenza']."+".$utenteScadenza."-');</script>";$conta++;
    }
    }

    include("bandana.php");
    echo "<script type='text/javascript'>alert('".$conta." : -".$a['scadenza']."+".$utenteScadenza."-');</script>";$conta++;
    si arriva a utente.php in diversi modi : tramite tag a, tramite form via post o tramite chiamate js location.href. a seconda dell'operazione dell'utente.
    Mi sono accorto della doppia elaborazione quando ho aggiunto il controllo della scadenza del contratto. Certe volte il controllo veniva ignorato. Così.. debug artigianale con 3 alert.. e questi diventatavano 5. Non 6 perchè durante la prima elaborazione $_SESSION['utente_tipologia'] era vuota.
    son stato chiaro? serve altro?

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.