Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329

    Errore nei blocchi IF ELSE....

    Codice PHP:
    <?php
         
          $pw 
    $_POST['password'];
          
    $time 3600;
          
    $numCli 5;
          
          if(isset(
    $_POST['password']) && $_POST['password'] != "" ){
          
                     if(
    $pw=="XXXXXXXXXXXX"){ $_SESSION['password']=$pwheader("Location: index.php"); }
                     
                     else{ 
                          for(
    $i=1$i<$numCli+1$i++){
                                  
    $open fopen("cli".$i."/ciao.txt","r");
                                     if(
    fread($open,10) == $pw){
                                            
    $_SESSION['password']=$pw
                                            
    $_SESSION['cliente']="cli".$i
                                            
    $c fread($open,10);
                                            
    fclose($open);
                                            
    header("Location: cliente.php");
                                    }
    //IF
                                     
    else header("Location: error.php?errore=La password \"".$pw."\" è errata!");
                                     
                          }
    //FOR
                          
                      
    }//ELSE
                      
           
    }//IF
                  
                 
          
    else{ header("Location: error.php"); }//ELSE
          
    ?>
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  2. #2
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    No vabbeh qui ho sbagliato a mettere l'ELSE nel FOR con l'IF...
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  3. #3
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Codice PHP:
    <?php
         
          $pw 
    $_POST['password'];
          
    $time 3600;
          
    $numCli 5;
          
          if(isset(
    $_POST['password']) && $_POST['password'] != "" ){
          
                     if(
    $pw=="XXXXXXXXXXXX"){ $_SESSION['password']=$pwheader("Location: index.php"); }
                     
                     else{ 
                          for(
    $i=1$i<$numCli+1$i++){
                                  
    $open fopen("cli".$i."/ciao.txt","r");
                                     if(
    fread($open,10) == $pw){
                                            
    $_SESSION['password']=$pw
                                            
    $_SESSION['cliente']="cli".$i
                                            
    fclose($open);
                                            
    header("Location: cliente.php");
                                            return;
                                     }
    //IF
                                     
    else header("Location: error.php?errore=La password \"".$pw."\" è errata!");
                                     
                          }
    //FOR
                          
                      
    }//ELSE
                      
           
    }//IF
                  
                 
          
    else{ header("Location: error.php"); }//ELSE
          
    ?>
    Stranamente funge.... :berto:
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Semplice.
    Il probl e' dove fai il redirect con header location.
    Se fai cosi' lo script continua l'esecuzione dopo la chiamata header(...) eseguendo il codice sottostante.

    Codice PHP:
    <?php
         
          $pw 
    $_POST['password'];
          
    $time 3600;
          
    $numCli 5;
          
          if(isset(
    $_POST['password']) && $_POST['password'] != "" ){
          
                     if(
    $pw=="XXXXXXXXXXXX"){ $_SESSION['password']=$pwheader("Location: index.php");die();}
                     
                     else{ 
                          for(
    $i=1$i<$numCli+1$i++){
                                  
    $open fopen("cli".$i."/ciao.txt","r");
                                     if(
    fread($open,10) == $pw){
                                            
    $_SESSION['password']=$pw
                                            
    $_SESSION['cliente']="cli".$i
                                            
    fclose($open);
                                            
    header("Location: cliente.php");
                                            return;
                                     }
    //IF
                                     
    else{ header("Location: error.php?errore=La password \"".$pw."\" è errata!");die();}
                                     
                          }
    //FOR
                          
                      
    }//ELSE
                      
           
    }//IF
                  
                 
          
    else{ header("Location: error.php"); die();}//ELSE
          
    ?>
    Se metti i die() dopo il redirect sei sicuro che lo script si ferma.

  5. #5
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Infatti come un mi...ione ci sono arrivato solo ora, per questo ho messo un return...
    Grazie.
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  6. #6
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Non riuscirò mai a capire come mai....sarò che ora sono troppo rintronato, ma non mi era mai successo....come mai non funziona????

    INDEX

    Codice PHP:
    <?php

    if(!isset($_SESSION['password'])){
       echo
    '

          <div id="content">
              <div id="pw">
                  <form name="campoPw" action="accesso.php" method="post" > 
                       <input type="password" title="password" size="12" name="password" id="pw" />
                        <input type="submit" id="bottInvio" value="Accedi">
                  </form>
              </div>
          </div>'
    ;
    }
    else{
      echo
    '
         <div id="content"> 
           <div id="logOut">
                <form id="formLogOut" name="LogOut" action="index.php"  method="post">
                     <input  type="submit"  title="Log Out" name="logOut" value="Log-Out" />
                </form>
           </div>'
    ;
           
           if(
    $_SESSION['password']=="**********")
                echo
    ' [url="gestioneClienti.php"]Gestione Clienti[/url]';
           
           else echo
    '<span></span>
           
      </div>'
    ;


    ?>
    ACCESSO
    Codice PHP:
    <?php
         
          $pw 
    $_POST['password'];
          
    $time 3600;
          
    $numCli 5;
          
          if(isset(
    $_POST['password']) && $_POST['password'] != "" ){
          
                     if(
    $pw=="**********"){ $_SESSION['password']=$pwheader("Location: index.php"); }
                     
                     else{ 
                          for(
    $i=1$i<$numCli+1$i++){
                                  
    $open fopen("cli".$i."/ciao.txt","r");
                                     if(
    fread($open,10) == $pw){
                                            
    $_SESSION['password']=$pw
                                            
    $_SESSION['cliente']="cli".$i
                                            
    fclose($open);
                                            
    header("Location: cliente.php");
                                            return;
                                     }
    //IF
                                     
    else header("Location: error.php?errore=La password \"".$pw."\" è errata!");
                                     
                          }
    //FOR
                          
                      
    }//ELSE
                      
           
    }//IF
                  
                 
          
    else{ header("Location: error.php"); }//ELSE
          
    ?>

    In locale mi funziona...in rete niente di niente :berto:
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Allora nel php ci sono ancora gli errori di prima.
    Metti i die() o return dopo le chiamate header("Location: .... ")

  8. #8
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Codice PHP:
    <?php
         
          $pw 
    $_POST['password'];
          
    $time 3600;
          
    $numCli 5;
          
          if(isset(
    $_POST['password']) && $_POST['password'] != "" ){
          
                     if(
    $pw=="********"){ $_SESSION['password']=$pwheader("Location: index.php"); }
                     
                     else{ 
                          for(
    $i=1$i<$numCli+1$i++){
                                  
    $open fopen("cli".$i."/ciao.txt","r");
                                     if(
    fread($open,10) == $pw){
                                            
    $_SESSION['password']=$pw
                                            
    $_SESSION['cliente']="cli".$i
                                            
    fclose($open);
                                            
    header("Location: cliente.php");
                                            return;
                                     }
    //IF
                                     
                                     
                          
    }//FOR
                          
    header("Location: error.php?errore=La password \"".$pw."\" è errata!");
                          return;
                      }
    //ELSE
                      
           
    }//IF
                  
                 
          
    else{ header("Location: error.php"); }//ELSE
          
    ?>
    anche nell'ultimo?
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  9. #9
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Nell'ultimo non servirebbe cmq e' buona norma usare il comando die(); dopo ogni header("Location:..."); cosi' sei assolutamente sicuro che l'esecuzione dello script cessa dopo il redirect.

    Per cui abituati a mettere il die(); dopo ogni redirect.

  10. #10
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    OK, ma niente da fare.....ho FTPpato ho aggiornato ma ancora niente...mi da pagina bianca sia se sbaglio che se do una pw giusta... :master:
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

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.