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

    Warning: session_start() [function.session-start]: Cannot send session cache limiter

    In una pagina del mio sito viene generato questo errore:
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/xxxxxx/public_html/calendario/index.php:2) in /home/xxxxxx/public_html/calendario/index.php on line 3

    mi potete gentilmente dire dove devo spostare
    codice:
    if (!isset($_SESSION)) {
      session_start();
    }
    ?

    le ho provate tutte ma il problema non si risolve

    ecco il codice intero



    codice:
    <?php require_once('Connections/server.php'); ?>
    <?php
    require("calendario/config.php");
    require("calendario/lang/lang." . LANGUAGE_CODE . ".php");
    mysql_connect(DB_HOST, DB_USER, DB_PASS) or die(mysql_error());
    mysql_select_db(DB_NAME) or die(mysql_error());
    $sql = "SELECT id, y, m, d, title, text, priv, TIME_FORMAT(start_time, '%k:%i') AS stime, ";
    $sql .= "TIME_FORMAT(end_time, '%k:%i') AS etime, " . DB_TABLE_PREFIX . "users.uid, fname, lname ";
    $sql .= "FROM " . DB_TABLE_PREFIX . "mssgs ";
    $sql .= "LEFT JOIN " . DB_TABLE_PREFIX . "users ";
    $sql .= "ON (" . DB_TABLE_PREFIX . "mssgs.uid = " . DB_TABLE_PREFIX . "users.uid) ";
    $sql .= "WHERE (y*10000+m*100+d) > ";
    $sql .= "(YEAR(NOW())*10000+MONTH(NOW())*100+DAYOFMONTH(NOW())) ";
    $sql .= "ORDER BY y, m, d, start_time LIMIT 3";
    $result = mysql_query($sql) or die(mysql_error());
    ?>
    <?php
    // *** Validate request to login to this site.
    if (!isset($_SESSION)) {
      session_start();
    }
    
    $loginFormAction = $_SERVER['PHP_SELF'];
    if (isset($_GET['accesscheck'])) {
      $_SESSION['PrevUrl'] = $_GET['accesscheck'];
    }
    
    if (isset($_POST['username'])) {
      $loginUsername=$_POST['username'];
      $password=$_POST['password'];
      $MM_fldUserAuthorization = "";
      $MM_redirectLoginSuccess = "amministrazione/modifica-assicurazioni.php";
      $MM_redirectLoginFailed = "index.php";
      $MM_redirecttoReferrer = false;
      mysql_select_db($database_server, $server);
      
      $LoginRS__query=sprintf("SELECT username, password FROM cai_utenti WHERE username=%s AND password=%s",
        GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 
       
      $LoginRS = mysql_query($LoginRS__query, $server) or die(mysql_error());
      $loginFoundUser = mysql_num_rows($LoginRS);
      if ($loginFoundUser) {
         $loginStrGroup = "";
        
    	if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
        //declare two session variables and assign them
        $_SESSION['MM_Username'] = $loginUsername;
        $_SESSION['MM_UserGroup'] = $loginStrGroup;	      
    
        if (isset($_SESSION['PrevUrl']) && false) {
          $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
        }
        header("Location: " . $MM_redirectLoginSuccess );
      }
      else {
        header("Location: ". $MM_redirectLoginFailed );
      }
    }
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    intanto il blocco è sbagliato:

    Codice PHP:
    // NON devi mettere l'if
    //if (!isset($_SESSION)) {
    session_start();
    //} 
    se usi le sessioni devi sempre inizializzarle.

    Inoltre quando chiudi e riapri i tag php (cioè dove c'è "?>" e poi a capo "<?php") il codice contiene un carattere di "ritorno a capo" che viene inviato nell'output, inviando automaticamente gli header, quindi ho elimini quegli a capo (puoi anche non chiudere e riaprire, semplicemente) o metti l'inizializzazione come prima istruzione all'inizio della pagina

  3. #3
    in pratica:

    Codice PHP:
    <?php
    session
    -start(); 
    require_once(
    'Connections/server.php');
    require(
    "calendario/config.php");
    ......
    tenendo presente che devono essere le prime righe dello script. Se non inizializzi la sessione non puoi vedere il contenuto di $_SESSION.

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

  4. #4
    Originariamente inviato da eiyen
    intanto il blocco è sbagliato:

    Codice PHP:
    // NON devi mettere l'if
    //if (!isset($_SESSION)) {
    session_start();
    //} 
    se usi le sessioni devi sempre inizializzarle.

    Inoltre quando chiudi e riapri i tag php (cioè dove c'è "?>" e poi a capo "<?php") il codice contiene un carattere di "ritorno a capo" che viene inviato nell'output, inviando automaticamente gli header, quindi ho elimini quegli a capo (puoi anche non chiudere e riaprire, semplicemente) o metti l'inizializzazione come prima istruzione all'inizio della pagina
    grazie! il problema era solo quel ritorno a capo!

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.