Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558

    Perchè non setta il cookie?

    Attraverso il codice che vi posto devo settare un cookie con il nome del visitatore del sisto se questo è registrato sul mio database.
    Lui inserisci in un form NomeUtente e Password e, se esiste nel DB, gli setto un cookie col suo UserName e aggiorno alcuni valori nel DB.

    I dati nel DB vengono aggiornati ma il cookie però non viene creato. Ho provato io e non compare neanche nella cartella con tutti i cookies.

    Ecco il codice:
    Codice PHP:
    <?php
      
    // Connessione al database
      
    include ("../database/connessione.inc.php");

      
    // Aquisizione Dati
      
    $UserName $_POST[UserName];
      
    $Password $_POST[Password];
      echo 
    '<font size="1">';

        
    // Controlla che l'username esista
        
    $SQLquery "SELECT * FROM `registered_users` WHERE `UserName` = '" $UserName "' LIMIT 0, 9999 ";
        
    $result mysql_query($SQLquery$db);
        
    $row mysql_fetch_array($result);
        if (
    $row[UserName]!='') {

          
    // Controlla che la passowrd sia esatta
          
    if ($row[Password]==$Password) {

            
    // Controlla che l'utente sia attivo
            
    If ($row[On]=='1') {

                
    // Setta i cookie e aggiorna il DB

                  // Il cookie non viene settato...
                  
    setcookie ("JoeRegVisNAME"$row[UserName], time()+1000000000"/""joeproductions.altervista.org" );

                  
    // ... ma tutte le righe qui sotto vengono eseguite correttamente!
                  
    $SQLquery "UPDATE registered_users SET LastVisit='" time() . "' WHERE UserName='" $UserName "'";
                  
    mysql_query($SQLquery$db);
                  
    $SQLquery "UPDATE registered_users SET ThisVisit='" time() . "' WHERE UserName='" $UserName "'";
                  
    mysql_query($SQLquery$db);
                  
    $SQLquery "UPDATE registered_users SET LastIP='" $REMOTE_ADDR "' WHERE UserName='" $UserName "'";
                  
    mysql_query($SQLquery$db);
                  include(
    "SendSuccessCookie.txt");

            }
            else {
              include (
    "SendNoActive.txt");
            }
            
          }
          else {
            include (
    "SendNoExist.txt");
          }
            
        }
        else {
          include (
    "SendNoExist.txt");
        }

      echo 
    '</font>';
    ?>
    Dove sta l'errore?
    Aiutatemi, per favore!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    952
    <?php

    // Connessione al database

    include ("../database/connessione.inc.php");



    // Aquisizione Dati

    $UserName = $_POST[UserName];

    $Password = $_POST[Password];




    // Controlla che l'username esista

    $SQLquery = "SELECT * FROM `registered_users` WHERE `UserName` = '" . $UserName . "' LIMIT 0, 9999 ";

    $result = mysql_query($SQLquery, $db);

    $row = mysql_fetch_array($result);

    if ($row[UserName]!='') {



    // Controlla che la passowrd sia esatta

    if ($row[Password]==$Password) {



    // Controlla che l'utente sia attivo

    If ($row[On]=='1') {



    // Setta i cookie e aggiorna il DB



    // Il cookie non viene settato...

    setcookie ("JoeRegVisNAME", $row[UserName], time()+1000000000, "/", "joeproductions.altervista.org" );



    // ... ma tutte le righe qui sotto vengono eseguite correttamente!

    $SQLquery = "UPDATE registered_users SET LastVisit='" . time() . "' WHERE UserName='" . $UserName . "'";

    mysql_query($SQLquery, $db);

    $SQLquery = "UPDATE registered_users SET ThisVisit='" . time() . "' WHERE UserName='" . $UserName . "'";

    mysql_query($SQLquery, $db);

    $SQLquery = "UPDATE registered_users SET LastIP='" . $REMOTE_ADDR . "' WHERE UserName='" . $UserName . "'";

    mysql_query($SQLquery, $db);

    include("SendSuccessCookie.txt");



    }

    else {

    include ("SendNoActive.txt");

    }



    }

    else {

    include ("SendNoExist.txt");

    }



    }

    else {

    include ("SendNoExist.txt");

    }



    echo '</font>';

    ?>


    C'era un comando di output (echo) prima del setcookie che non ci deve mai essere.

  3. #3
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    l'ho tolto ma non ho risolto nulla...

    non è che anche l'include è un output?
    (un altra cosa: prima del codice che ho postato c'è del codice HTML; non deve esserci?)

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    952
    Non deve esserci NESSUN codice di output al browser.
    Racchiudi tutto l'html in una var:


    <?
    $temp="<html><head>....etc...etc....";


    ......
    .....

    setcookie(.....);

    echo "$temp";

    ......

    ?>

  5. #5
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    ho risolto...

    ho tolto il codice html prima (per poi scriverlo attraverso un include() dopo il settaggio cookie)

    GRAZIE MILLE!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    952
    Nulla!
    Ricorda che ciò vale per ogni tipo di header! Nessun output prima.

    Buon lavoro, vado a fare la pappa!

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    391
    Ciao ragazzi,
    ho lo stesso problema, ma dando un'occhiata non ho output se non confenuti in degli IF che se veri bloccano tutto.

    es:

    if($num2!=0)
    {
    echo"Spiacenti"
    include ("menu.php");
    die();
    }
    else
    {
    setcookie ("CookieID", "$CookieID", time()+8640000,"/","www.tuningvideo.com");
    }

    In questo caso la regola dell'output non vale vero???
    Ma allora quale altro problema potrei aver beccato, tenendo presente che il setcookie è stato copiato da un mio script funzionante (ho solo cambiato la variabile)????

  8. #8
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Echo() è un Output!!!
    E credo lo sia anche l'include()

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    391
    Originariamente inviato da JoeP
    Echo() è un Output!!!
    E credo lo sia anche l'include()
    Ciao, prima di tutto grazie mille della risposta, comunque ho risolto.
    Gli echo() nell'IF non vengono calcolati come pensavo ed era logico,
    gli include() non valgono come output, o almeno non mi hanno dato nessun problema quindi credo sia così.

    Ho scoperto il problema, era una query che non dava nessun valore al variabile all'interno del cookie, e quindi non lo inviava.

  10. #10
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Ciao, prima di tutto grazie mille della risposta, comunque ho risolto.
    Gli echo() nell'IF non vengono calcolati come pensavo ed era logico,
    gli include() non valgono come output, o almeno non mi hanno dato nessun problema quindi credo sia così.

    Ho scoperto il problema, era una query che non dava nessun valore al variabile all'interno del cookie, e quindi non lo inviava.

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.