Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Errore substr

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181

    Errore substr

    Non so bene quale sia il problema,ma funziona 'tutto' fino a quando non arrivo a $iden,questo è il codice(ho segnato dove c'è l'errore,è nelle prime righe):
    Codice PHP:
    <?php
    include 'dbc.php';
    page_protect();
        
    $path=$_GET['path'];
    if(
    $path!='' && $path!='null' && $path!='undefined') {
            
        
    $site_name='http://farebury.exofire.net/';
        
        
    $path=str_replace($site_name,'',$path);
        
    $sept=str_replace('tree/','',$path);
        
    $leng=intval(stripos('/',$sept));
        
    $iden=substr($sept,$leng); //errore
        
    $iden=trim($iden); //errore

        
        /*check if you can delete the folder*/
        
    $username=$_SESSION['user_nick'];
        
    $usid=$_SESSION['user_id'];
        
        
    $perm=$basepermfold.$usid.'/'.$username.'.txt';
        
        
    $var implode(''file ($perm));
        
    $arrperm=explode("\n",$var);
        
    $permissiondelete=false;
        
        for(
    $i=0;$i<count($arrperm);$i++){
            if(
    $arrperm[$i]==$iden){
                
    $permissiondelete=true;
                break;
            }                
        }
        
        
        if(
    $permissiondelete==true){
            
    /*Folder level*/
            
    $query="SELECT `folder_level` FROM `folder` WHERE `idd`='$iden'"
            
    $level=mysql_query($query,$link);
            
            
    $path=trim($path);
            
    $ceckph=str_replace('/','',$path);
            
    $ceckph=trim($ceckph);        
        
            
    $subfolder '2' ;
            
    $mainfolder '1' ;
        
            
    $permtxt '/'.$username.'.txt';
        
            if(
    $ceckph!='tree'){
                
    //elimino file
                
    if(is_file($path)==true){
                    
    unlink($path);    
                    echo 
    "The file has been deleted";
                }
                
    //elimino cartella
            
                //sub folder
                
    else if(is_dir($path) && $level==$subfolder){
                    
    $var implode(''file ($read));
                    
    $arr=explode("\n",$var);
                
                    
    $check=delete_directory($path);
                 
                    if(
    $check==true){
                    
                        echo 
    "The folder and his content has been deleted";         
                    }                
                    else
                        echo 
    "There was a problem,couldn't delete the subfolder,please contact the Administrator"
                }
                
    //main folder
                
    else if(is_dir($path) && $level==$mainfolder){
                    
    $read=$path.$infotxt;
                    
    pulisci($read);
                    
    $var implode(''file ($read));
                    
    $arr=explode("\n",$var);
                    if(
    count($arr)==1){ //only one person
                        
    $check=delete_directory($path);             
                        if(
    $check==true){
                            
    //delete permission
                            
    for($i=0;$i<count($arrperm);$i++){
                                if(
    $arrperm[$i]==$iden){
                                    
    $arrperm[$i]='';
                                    break;
                                }                
                            }
                            
    $file fopen($perm"w+");
                            
    fwrite($file,$arrperm."\n");
                            
    fclose($file);
                            
    pulisci($perm);
                            
    $operation="DELETE FROM folder WHERE idd='$iden'";
                            
    mysql_query($operation,$link);
                            echo 
    "The folder and his content has been deleted";         
                        }                
                        else
                            echo 
    "There was a problem,couldn't delete the main folder,please contact the Administrator"
                    }
                    else{
    //more than one person
                        
    for($i=0;$i<count($arr);$i++){
                            if(
    $arr[$i]==$username){
                                
    $arr[$i]='';
                                break;
                            }    
                        }                    
                        
    $file fopen($read"w+");
                        
    fwrite($file,$arr."\n");
                        
    fclose($file);
                        
    pulisci($read);
                    
                        
    //delete permission
                        
    for($i=0;$i<count($arrperm);$i++){
                            if(
    $arrperm[$i]==$iden){
                                
    $arrperm[$i]='';
                                break;
                            }                
                        }
                        
    $file fopen($perm"w+");
                        
    fwrite($file,$perm."\n");
                        
    fclose($file);
                        
    pulisci($perm);
                    
                    }
                }
            
                
    //no file or folder
                
    else {
                    echo 
    "There was a problem,couldn't identify the folder type,please contact the Administrator";
                }
            }
            else
                echo 
    "You can't delete the Parent Folder.";

        }
        else
            echo 
    "You can't delete this folder,because you don't own the permissions.";

    }
    function 
    delete_directory($dirname) {
           if (
    is_dir($dirname))
              
    $dir_handle opendir($dirname);
           if (!
    $dir_handle)
              return 
    false;
           while(
    $file readdir($dir_handle)) {
              if (
    $file != "." && $file != "..") {
                 if (!
    is_dir($dirname."/".$file))
                    
    unlink($dirname."/".$file);
                 else
                    
    delete_directory($dirname.'/'.$file);    
              }
           }
           
    closedir($dir_handle);
           
    rmdir($dirname);
           return 
    true;
        }
         

    function 
    pulisci($store){
    $arr=array();
        foreach( 
    file($store) as $line ){
                
    $line=trim($line);
            if(
    $line != ''$arr[]=$line;
            }
        
    file_put_contents($storeimplode("\n",$arr) );
    }
    ?>
    Qualcuno sa aiutarmi?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371
    che errore ti da?
    comunque in un caso simile è facile eseguire del debug

    aggiungi una serie di echo che ti visualizzano tutte le variabili che entrano in gioco cosi capisci subito cosa sbagli, per esempio io sostituirei le 2 righe

    Codice PHP:
    $iden=substr($sept,$leng); //errore 
    $iden=trim($iden); //errore 
    con
    Codice PHP:
    echo '
    $iden='
    .$iden;
    echo 
    '
    $sept='
    .$sept;
    echo 
    '
    $leng='
    .$leng;
    $iden=substr($sept,$leng); //errore 
    echo '

    $iden='
    .$iden;
    $iden=trim($iden); //errore 
    echo '


    $iden='
    .$iden
    e vedi che cosa ti restituisce...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    Ho fatto con gli alert,non mi resituisce niente,la parteprima invece funziona correttamente.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371
    controlli le variabili $iden $sept e $leng cosa contengono prima del substr?

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    Si,il codice prima va perfettamente

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    Le variabili contengono ciò che dovrebbero contenere,infatti il stripos restituisce,che è corretto

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    Ho trovato l'errore,avevo sbagliato a scrivere il primostrpos

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.