Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509

    [php]Cannot send session cache limiter?

    che significa?
    ho cercato di creare una sessione per far si che i dati vengano passati di pagina in pagina..
    in pratica: form con 6 campi, li invia alla pagina di visualizzazione. se i risultati sono piu' di 5 fa apparire i link pagina avanti e pag indietro.
    problema: se faccio pagina avanti perde i valori della query e mi da errore per aver fatto una query al db con i dati vuoti..
    allora ho creato una sessione all'inizio della pagina con scritto cosi:
    codice:
    <?php 
    include "db.php";
    include "header.php"; 
    
    session_start();
    if (isset($_POST["submit"])){
    	$_SESSION['contract']=$contract;
    	$_SESSION['type']=$type;
    	$_SESSION['zone']=$zone;
    	$_SESSION['price']=$price;
    	$_SESSION['sizemin']=$sicemin;
    	$_SESSION['sicemax']=$sizemax;
    }
    ?>
    ma il risultato è questa stringa di errore:
    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/risultati.php:4) in /var/www/risultati.php on line 8
    che significa? non so un H di sessioni

  2. #2
    session_start(); andrebbe messo sempre all'inizio.
    Prova a spostarlo, dovrebbe andare.

  3. #3
    La sessione dev'essere avviata prima di qualsiasi output poichè il cookie va comunicato prima dei contenuti al browser dell'utente.

    Per poter iniziare/rinnovare le sessioni anche dopo aver utilizzato print/echo o anche dopo che t'è scappato qualche errore puoi utilizzare i buffer che trattengono tutto l'output e lo rilasciano (tipicamente) alla fine dello script.

    Nel tuo caso volendo usare i buffer

    codice:
    <?php 
    
    ob_start();
    
    include "db.php";
    include "header.php"; 
    
    session_start();
    if (isset($_POST["submit"])){
    	$_SESSION['contract']=$contract;
    	$_SESSION['type']=$type;
    	$_SESSION['zone']=$zone;
    	$_SESSION['price']=$price;
    	$_SESSION['sizemin']=$sicemin;
    	$_SESSION['sicemax']=$sizemax;
    }
    ?>
    se non vuoi usare i buffer segui il consiglio che hai già ricevuto. Apri la sessione prima di effettuare qualsiasi altra operazione.



    Lungo le due rive del fiume gelato si stendeva la cupa e tetra foresta di abeti, dai quali il vento aveva appena spazzato il manto di brina. Nella luce crepuscolare quegli abeti neri e sinistri sembravano inclinarsi l'uno verso l'altro. Un silenzio minaccioso incombeva sul paesaggio, privo di qualsiasi segno di vita o di movimento, e desolato e freddo al punto da non poter ispirare che un solo sentimento: quello della più triste malinconia. E nello stesso tempo pareva che da quel paesaggio trapelasse una specie di riso, un riso ben più spaventoso di qualsiasi malinconia o tristezza, un riso tragico, come quello di una sfinge, un riso agghiacciante più della brina e che rammendava l'incombere minaccioso dell'ineluttabile. Era la saggezza potente e impenetrabile dell'eternità che irrideva alla vita, alla sua futilità e agli sforzi degli uomini.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    girovagando qua e la avevo trovato la stessa risposta e avevo risolto. ma il problema iniziale non l'ho risolto
    se provo a scorrere le pagine i dati vengono persi.
    pero' ho scoperto una cosa, ovvero che con lo script che sto usando per generare le pagine prende di volta in volta i valori del form, cosi se il form è bianco lui perde tutto.

    domanda, come li mantego sti benedetti dati?un aiutino melo date?
    codice:
     <form name="cercocasaris1" method="get" action="cerco_casa_risultatir.php">
                <h3 align="left">
                <h4><span class="gras_arancio">RICERCA RAPIDA</span> 
    
                    Rif                
                        <input name="rif" type="text" id="rif" size="5">
    
      <input type="submit" name="Submit" value="vai">
      </h4>
          </form>
    <form name="cercocasaris2" method="post" action="cerco_casa_risultati.php">
    <table>
    <tr>
      <td><h4><span class="gras_arancio">NUOVA RICERCA</span>
     
          tipologia contratto:
        
          <input name="fcontract" type="radio" value="Vendesi" onclick="Visualizza(1)">
          vendita
          <input name="contract" type="radio" value="Affittasi" onclick="Visualizza(2)">
          affitto
    
      </h4></td>
    </tr>
    <tr><td>
      <h4>localit&agrave;:
    
          <select name="zone" class="menu02">
                    <option>orgrimar</option>
                   
          </select>
      </h4></td></tr>
    <tr><td>
      <h4>edificio
    
          <select name="type" class="menu02">
            <option>castello</option>
          </select>
      </h4></td></tr>
    <tr id="tr2" class="trSel">
    <td>
    <h4>prezzo &euro;
    
        <select name="price" class="menu02">
            <option>8464</option>
         </select>
    </h4>
    </h4><td></tr>
    <tr id="tr1" class="trSel">
    <td>
      <h4>prezzo &euro;
    
          <select name="price" class="menu02">
            <option>546235</option>
          </select>
      </h4>
    <td></tr>
    <tr><td>
    <table>
    <tr><td><h4>superficie mq:</h4></td></tr>
    <tr><td><h4>mq min</h4></td><td><input name="sizemin" type="text" size="5"></td>
    </tr>
    <tr><td><h4>mq
      max</h4></td><td><input name="sizemax" type="text" size="5"></td>
    </tr>
    </table>
    </td></tr>
    </table>
    <input type="submit" name="Submit" value="cerca">
                </form>
    inizia con la sessione e in mezzo tanta fuffa in javascript.
    riuscireste a darmi qualche suggeriemnto?
    grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    dimenticavo la funzione per la navigazione:
    codice:
    function navlimitsell ($offset = 0,$this_script="") {
    		global $limit;
    		global $PHP_SELF;
    		global $zone;
    		global $type;
    		global $contract;
    		global $price;
    		global $sizemax;
    		global $sizemin;
    		if (empty($this_script)) { $this_script = $PHP_SELF; }
    if (empty($offset)) { $offset= 0; }
    		
    $result = safe_query("SELECT count(*) FROM sell WHERE contract='$contract'");
    
    list($total_row) = mysql_fetch_array($result);
    
    if ($offset > 0) {print "<h4><span class=grassetto><a href=\"$this_script?offset=".($offset-$limit)."\">
    &lt;&lt; precedente</a></span>";
    			}
    else
    {print "";
    }
    
    if (!isset($total_row))
    {print "<span class=gras_arancio>- Nessun dato trovato- </span>";}
    
    else {print "<span class=gras_arancio>- ".$total_row[5]." 
    casa- </span>";
    				}
    
    if ($offset+$limit < $total_row) 
    {print "<a href=\"$this_script?offset=".($offset+$limit)."\">
    <span class=grassetto>successiva &gt;&gt;
      </span></h4>";
    		 }
    }

  6. #6
    sostanzialmente per mantenere i valori ti conviene seguire questa scaletta nel file

    --

    if ( dati inviati )
    prendi i dati
    if (tutto ok) salva e vai dove vuoi
    end if

    costruici il form
    se i dati sono settati imposti i valori

    ---

    Esistono metodi migliori utilizzando gli oggetti.
    Io per esempio se devo fare un form per un articolo prima realizzo un oggetto "articolo" poi creo il form.
    La funzione che manda in output il form può ricevere un oggetto articolo oppure no.
    Se lo riceve popola i campi con i valori presi dall'oggetto.

    Lungo le due rive del fiume gelato si stendeva la cupa e tetra foresta di abeti, dai quali il vento aveva appena spazzato il manto di brina. Nella luce crepuscolare quegli abeti neri e sinistri sembravano inclinarsi l'uno verso l'altro. Un silenzio minaccioso incombeva sul paesaggio, privo di qualsiasi segno di vita o di movimento, e desolato e freddo al punto da non poter ispirare che un solo sentimento: quello della più triste malinconia. E nello stesso tempo pareva che da quel paesaggio trapelasse una specie di riso, un riso ben più spaventoso di qualsiasi malinconia o tristezza, un riso tragico, come quello di una sfinge, un riso agghiacciante più della brina e che rammendava l'incombere minaccioso dell'ineluttabile. Era la saggezza potente e impenetrabile dell'eternità che irrideva alla vita, alla sua futilità e agli sforzi degli uomini.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    ho provato a fare come dici ma probabilmente non son capace io.
    ti spiego come è strutturata che forse mi son espresso male o quello che voglio fare è sbagliato.

    ho una pagina con una colonna laterale dove trovo un form per la ricerca in base ai campi.
    compilo il form, invio alla stessa pagina i dati, i dati vengono presi (e qui ho provato a metterci la sessione per mantenerli ma per non vada) una funzione recupera i dati e fa una query al db controlla quanti sono i record e mi stampa a video alcune parti.
    se sono troppi visualizza piu' pagine.
    se premo avanti lui andrebbe cambierebbe pagina ricaricando la stessa passando in GET la variabile offset.
    il problema forse è nel ricaricamento della pagina che uso $PHP_SELF e che quindi i dati non vengono mantenuti...non lo so
    ho modificato la sessione cosi:
    codice:
    session_start();
    if (isset($_POST["submit"])){
    	$_SESSION['contract']=$contract;
    	$_SESSION['type']=$type;
    	$_SESSION['zone']=$zone;
    	$_SESSION['price']=$price;
    	$_SESSION['sizemin']=$sicemin;
    	$_SESSION['sicemax']=$sizemax;
    $contract=$_SESSION['contract'];
    $type=$_SESSION['type'];
    $zone=$_SESSION['zone'];
    $price=$_SESSION['price'];
    $sicemin=$_SESSION['sizemin'];
    $sizemax=$_SESSION['sicemax'];
    e scritto questo riga nell'input radio:
    codice:
    <?php if ($contract == "Vendesi"){print "checked=\"checked\""; }?>
    sperando che cosi facendo vada a riprendersi i dati almeno del primo input ma nulla.
    come faccio a far ricaricare la pagina conservando i dati se nemmeno questo funziona?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    up

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 © 2024 vBulletin Solutions, Inc. All rights reserved.