Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di wTano
    Registrato dal
    Sep 2008
    Messaggi
    32

    setcookie.. Sto impazzendo..

    Salve, ho un problema con i setcookie. Ovvero:

    Lavorando in locale non ho avuto nessun tipo di problema, quando sono andato a fare le prove sul server non riesco a capire perche diavolo non mi fa il setcookie.. Ecco il codice:

    Codice PHP:
    <?php

        ?>


    <?php
        
        $hour 
    time() + 3600;
        
    setcookie(ciccio'mamt'$hour);
        echo 
    '......'.$_COOKIE['ciccio'];
        echo 
    '......'.$_COOKIE['ciccio2'];
        
    $link mysql_connect('***********''***********''*********');  
       if (!
    $link) {  
           die (
    'Non riesco a connettermi: ' mysql_error());  
       }  
         
       
    $db_selected mysql_select_db('*******'$link);  
       if (!
    $db_selected) {  
           die (
    "Errore nella selezione del database: " mysql_error());  
       }  
        
            
    ?>
    <table width="998" height="66" border="0" >
      <tr>
        <td width="660" height="62" colspan="2"></td>
      </tr>
    </table>
    <blockquote>
      <div id="apDiv1" style="overflow:auto">
        <?php

    // Connects to your Database 
    //mysql_connect('localhost', 'cagi76_burraco', 'tony') or die(mysql_error()); 
    //mysql_select_db("cagi76_burraco") or die(mysql_error()); 


    //Checks if there is a login cookie

    if(isset($_COOKIE['id']))

    echo 
    '.......!!!.......';
    //if there is, it logs you in and directes you to the members page

        
    $nickname $_COOKIE['id']; 
        
    $pass $_COOKIE['Key'];
        
        
    $check mysql_query("SELECT * FROM staff WHERE nickname = '$nickname'")or die(mysql_error());

        while(
    $info mysql_fetch_array$check ))     
            {

            if (
    $pass != $info['password']) 
                {
                    
    header("Location: [url]www.google.it[/url]");
                }

            else
                {
                
    header("Location: AdminMain.php");

                }

            }

    }


    //if the login form is submitted

    if ($_POST['submit']) 

    // if form has been submitted

    // makes sure they filled it in

        
    if(!$_POST['nickname'] | !$_POST['pass']) 
            die(
    'You did not fill in a required field.');

        
    $check mysql_query("SELECT * FROM staff WHERE nickname = '".$_POST['nickname']."'")or die(mysql_error());

    //Gives error if user dosen't exist

        
    $check2 mysql_num_rows($check);
        if (
    $check2 == 0
            die(
    'Questo user non esiste nel nostro database.');
                    


        while(
    $info mysql_fetch_array$check ))     
        {
            
    $info['password'] = stripslashes($info['password']);
            
    //gives error if the password is wrong

            
    if ($_POST['pass'] != $info['password']) 
                die(
    'Password non corretta, torna indietro e prova di nuovo.');
            else
            {
                
    // if login is ok then we add a cookie 
                
    $hour time() + 3600

                
    setcookie("id"$_POST['nickname'] , $hour) or die('errore');
                
    setcookie("Key"$_POST['pass'], $hour) or die('errore');
                
    setcookie(ciccio2'mamt2'$hour);    
        
                echo 
    $_COOKIE['id'];
                
    //then redirect them to the members area
                
    header("Location: AdminMain.php");
            }

        }

     } 
     else 
     {    

        
    // if they are not logged in
    ?>

    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
      <div align="center">
        <table width="364" border="0">
          <tr><td colspan=2 bgcolor="#FFFFFF" class="Stile1"><h1>Admin Login</h1></td></tr>
          <tr>
          <td width="98" bgcolor="#FFFFFF" class="Stile1">[b]Nickname:[/b]</td>
          <td width="256" bgcolor="#FFFFFF" class="Stile1">
            <input type="text" name="nickname" maxlength="40" style="border-style: solid; ">        </td></tr>
          <tr>
            <td bgcolor="#FFFFFF" class="Stile1">[b]password:[/b]</td>
          <td bgcolor="#FFFFFF" class="Stile1">
            <input type="password" name="pass" maxlength="50" style="border-style: solid; ">        </td></tr>
          <tr>
            <td colspan="2" align="right" bgcolor="#FFFFFF" class="Stile1"><input type="submit" name="submit" value="Entra" /></td>
          </tr>
        </table>
      </div>
    </form>
    <?php
    }


    ?>

    </div>
    Ora, provando a fare il setcookie all'inizio del codice non ci sono problemi, la pagina dopo mi stampa il contenuto del Cookie che viene conservato. Però quando provo a fare il setcookie nella condizione:

    Codice PHP:
    else
            {
                     echo 
    ' ELSE TROVATO ';
                 
    // if login is ok then we add a cookie 
                
    $hour time() + 3600

                
    setcookie("id"$_POST['nickname'] , $hour) or die('errore');
                
    setcookie("Key"$_POST['pass'], $hour) or die('errore');
                
    setcookie(ciccio2'mamt2'$hour);    
        
                echo 
    $_COOKIE['id'];
                
    //then redirect them to the members area
                
    header("Location: AdminMain.php");
            } 
    non mi fa il maledetto setcookie.. E mi stampa giustamente "errore". Ora, nell'else entra.. PErchè ho fatto la prova con l'echo e perchè mi stampa "errore". Però non riesco a capire per quale diavolo di motivo non mi setti il cookie..

    Qualcuno ha qualche idea? Sto impazzendo letterlmente.. E non riesco a capire perchè la stessa linea di codice funge sopra, ma non qualche linea di codice più in basso.. Inoltre funge in locale ma non sul server..


  2. #2

  3. #3
    Utente di HTML.it L'avatar di wTano
    Registrato dal
    Sep 2008
    Messaggi
    32
    Ma non ho problemi di sintassi.. i cookie riesco a gestirli benissimo.. L'unico problema si presenta quando ho bisogno di fare il setcookie all'interno di un if.

    se provo ad usare il costrutto "or die('errore')" mi stampa errore, il problema è che non so che errore è. In php non c'è un modo per catturare l'errore?

  4. #4
    setcookie(ciccio2, 'mamt2', $hour);

    dovrebbe essere:

    setcookie('ciccio2', 'mamt2', $hour);

    cmq prova a stampare i 3 cookie

    non ho mai visto or die('errore') dopo il setcookie

  5. #5
    Utente di HTML.it L'avatar di wTano
    Registrato dal
    Sep 2008
    Messaggi
    32
    Grazie per l'aiuto ma niente.. La cosa assurda è che il setcookie funge nella parte iniziale.. ma non li sotto..

    Non so proprio come sbattere la testa..

  6. #6
    Utente di HTML.it L'avatar di wTano
    Registrato dal
    Sep 2008
    Messaggi
    32
    Mi spiego meglio: Se il setcookie è effettuato nella parte iniziale del codice non ho errori..
    Al contrario, nella parte inferiore del codice ho errore
    Codice PHP:
    $nick_cookie $_POST['nickname'];
                
    $pass_cookie $_POST['pass'];
                
    setcookie('id''$nick_cookie'$hour) or die('errore1');
                
    setcookie('Key''$pass_cookie'$hour)or die ('errore2'); 
    ed è assurdo perchè sono le stesse linee di codice.. Anche provo a fare

    Codice PHP:
    setcookie('id''pippo'$hour) or die('errore1'); 
    ho errore.. inoltre in locale non ho avuto nessun tipo di problema.. Che sia il server?

  7. #7
    che sia il browser?

    prova a svuotare ogni tuo cookie da tuo brwoser

  8. #8
    Utente di HTML.it L'avatar di wTano
    Registrato dal
    Sep 2008
    Messaggi
    32
    Ho provato a svuotare i cookies, provare su due computer diversi.. Che sia il server? In locale va bene.. Ma ora non ho modo di provare su un altro server..

  9. #9
    Utente di HTML.it L'avatar di wTano
    Registrato dal
    Sep 2008
    Messaggi
    32
    Il problema sta nel fatto che il codice setcookie() deve essere eseguito prima di qualsiasi tags html.. Il problema ora è che il vado a fare il setcookie solo dopo che i dati inseriti sono giusti! Quindi ho bisogno di dichiarare per forza una inputbox..

  10. #10
    Utente di HTML.it L'avatar di wTano
    Registrato dal
    Sep 2008
    Messaggi
    32
    Ho risolto! In pratica l'errore è che il setcookie() va fatto necessariamente prima di qualsiasi tag.. Non so perchè, ma è cosi.. Ho risolto applicando questa restrizione.

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.