Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Impossibile scrivere un cookie!!!

    Ciao a tutti.

    Ho installato sul mio sito la Coppermine Photo Gallery, la quale prevede anche il multilanguage.
    Ho settato il tutto in modo che sia possibile vedere la galleria con menu in italiano e inglese, tale informazione e' conservata sulla macchina dell'utente, tramite un cookie che si chiama cpg133_data.

    Dal momento che voglio anche inserire una piccola pagina di notizie in stile blog, e' necessario che il linguaggio del blog e quello della galleria siano solidali.

    Leggere il cookie scritto da Coppermine e ricavarne le informazioni sul linguaggio correntemente selezionato e' facile e se voglio ora posso far si' che il blog "segua" la lingua scelta nella galley.

    Il problema sorge quando voglio SETTARE il linguaggio nel blog e riottenerlo uguale nella galleria. In sostanza anche se faccio un setcookie in modo corretto (almeno mi sembra che lo sia!) il cookie precedentemente scritto dalla gallery rimane invariato!!!

    La funzione che utilizzo e' questa:
    codice:
    function my_set_language($cookieName, $cookie, $newLang)
    {
        //mi ricavo il linguaggio dal cookie corrispondente
        //serve la decodifica perche' coppermine salva le info di lingua assieme a molta altra roba
        $decoded = base64_decode($cookie);
        $lines = explode (":",$decoded);
        $lastline = array_pop($lines);
        $pieces = explode("\"",$lastline);
        $currentLanguage = $pieces[1];
       
        //creo una nuova string uguale a quella letta, ma con il nuovo linguaggio settato
        $decoded = base64_decode($cookie);
        $nonLanguageText = explode($currentLanguage, $decoded);
        $newLanguageString = base64_encode($nonLanguageText[0].$newLang.$nonLanguageText[1]);
       
        //scrivo il nuovo cookie con la stringa appena ricavata
        //questa parte non funziona!!!
        setcookie ($cookieName, $newLanguageString, time() + 86400, "/");
       
    }
    Ho provato anche semplicemente a cancellare il cookie invece che sovrascriverlo, ma quello se ne fa ugualmente un baffo e rimane li'!!!!

    Aiut!

  2. #2

  3. #3
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    assicurati di nvocare la funzione prima di qualsiasi output e con questo intendo anke il comunissimo spaziettino bianco bastardo..

    attiva tutti cgli errori e posta quelli rilevati, mi baso sull'ipotesi che sia un problema di header..

    ma una volta scrive o neanke una?

    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  4. #4
    il problema è probabilmente che la galleria lo mette nel suo percorso tu invece nella root

    devi verificare questo possibilità subito dopo il controllo che ti è stato suggerito

  5. #5
    Dunque...

    Quando leggo dal cookie la pagina php per ora non fa nulla se non fare un echo del language settato, e ovviamente lo fa dopo aver letto il cookie stesso. In questo caso TUTTO FUNZIONA.

    Quando tento di scriverlo ho provato di tutto, ma senza successo.
    L'ultimo tentativo e' stato con una pagina che contenesse solo il comand setcookie ("cpg_133", $laMiastringa, time() + 86400, "/") e nessun output, poi controllavo il valore del cookie al successivo riavvio del browser direttamente da firefox, ma anche il questo caso il cookie rimaneva invariato

    Ho tentato anche semplicemente di cancellare il cookie settandone il tempo di expire a time()-3000 ma nulla da fare, quindi presumo che sto veramente sbagliando qualcosa.
    Di errori la pagina non me ne restituisce...



    il problema è probabilmente che la galleria lo mette nel suo percorso tu invece nella root

    devi verificare questo possibilità subito dopo il controllo che ti è stato suggerito
    Ho controllato la funzione che usa la galleria per salvarsi i cookie, e lei li salva con l'opzione "/" sul path.
    La galleria pero' si trova nella sottodirectory /gallery.

    Questo significa che il cookie appartera' a "/gallery" o a "/"?!?!

  6. #6
    Salve a tutti

    Anche io sono interessato al problema, dal momento che uno script che prima mi funzionava, e che faceva affidamento su un cookie che registrava l'utente corrente, ora non mi funge più. Purtroppo ho dovuto far fronte ad una seconda installazione del pacchetto apache+php+mysql, quindi temo di aver dimenticato qualche settaggio

    Il mio codice per cookie.php è il seguente:

    codice:
    <?php
    include("includes\open_session.inc.php");
    	$username = $_POST['username'];
    	$password = $_POST['password'];
    	$query = "SELECT * FROM enti_servizi WHERE username_ente='$username' AND password_ente='$password'";
    	$result = mysql_query($query) or die("Query non valida: ".mysql_error());
    	$row = mysql_fetch_array($result);
    	$rows = mysql_num_rows($result);
    	if (mysql_num_rows($result) == 1) {
    		setcookie("cookie_user",$username);
    		echo "$username, sei dentro!!";
    	}
    	else {
    		echo "utente non esistente!";
    	}
    	header("Location: index.php");
    	exit;
    ?>
    Quando un form carica cookie.php, i messaggi di errore sono i seguenti:

    codice:
    Warning: Cannot modify header information - headers already sent by (output started at C:\Programmi\Apache Group\Apache2\htdocs\includes\open_session.inc.php:29) in C:\Programmi\Apache Group\Apache2\htdocs\cookie.php on line 13
    bruno, sei dentro!!
    Warning: Cannot modify header information - headers already sent by (output started at C:\Programmi\Apache Group\Apache2\htdocs\includes\open_session.inc.php:29) in C:\Programmi\Apache Group\Apache2\htdocs\cookie.php on line 19
    (bruno è un utente a caso )

    Cosa potrebbe impedirmi di scrivere il cookie?
    Il discorso del "niente output prima degli header" vale solo da una certa versione in avanti di PHP?
    Sono senza idee...

  7. #7
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    te lo dice lui stesso: output in linea 13 e 19 in cookie.php; eliminali e risolvi il problema..

    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  8. #8
    Mi sembra che il tuo sia un problema differente.
    -_-

    Nel mio caso non ci sono messaggi di errore e io non riesco a scrivere il cookie, mentre da quel che dici sembra che tu il cookie lo scrivi bene ("Bruno" viene letto dalla pagina) e che l'errore si generi per questioni legate all'header...

  9. #9
    risolto!
    mi è bastato settare a ON l'output_buffering...

    grazie comunque per l'attenzione

  10. #10
    Peccato che IO non abbia risolto e il topic l'ho postato io...

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.