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

    Php 5.0.3 e semplice script... sto impazzendo!

    Salve a tutti, sto impazzendo con uno script che con il mio vecchio php andava alla perfezione, ma con il 5.0.3 non ne vuole che sapere!!!
    La cosa che mi fa impazzire è che sia lo switch che il "Codice Incriminato " da soli funzionano alla perfezione!!!
    Quando sono assemblati però, una volta fatto il login, mi viene restituito "Impossibile Visualizzare la pagina" o se aggiungo dell'altro codice mi viene restituito "Azione Annullata"!!!
    Ecco il codice:
    Codice PHP:
    <?
    $dir 
    "/path/alla/cartella/";
    $login1 "pino";
    $pass1 "123";

    switch(
    $status) {

    case 
    "ready":
    if((
    $login == $login1) && ($pass == $pass1)){

    ////INIZIO CODICE INCRIMINATO

    function browse_tree($dir, &$filesize) { 
    if (
    is_dir($dir)) {
    if (!isset(
    $filesize)) $filesize=0;             
    $handle=opendir("$dir");
    while ((
    $file readdir($handle))!==false) { 
    if ((
    $file != ".") && ($file != "..")) {
    $new_dir=$dir."/".$file;
    if (
    is_dir($new_dir))  
    browse_tree($new_dir, &$filesize);
    else if (
    is_file($new_dir)); 
    $filesize+=filesize($new_dir);            


    closedir($handle); 

    return 
    "$filesize";
    }
    $usato=browse_tree($dir, &$filesize);

    function 
    size_readable($size$unit null$retstring null)
    {
    $sizes = array("B""KB""MB""GB""TB");
    $ii count($sizes) - 1;
    $unit array_search((string) $unit$sizes);
    if (
    $unit === null || $unit === false) {
    $unit $ii;
    }
    if (
    $retstring === null) {
    $retstring "%01.2f %s";
    }
    $i 0;
    while (
    $unit != $i && $size >= 1024 && $i $ii) {
    $size /= 1024;
    $i++;
    }
    return 
    sprintf($retstring$size$sizes[$i]);
    }

    ////FINE CODICE INCRIMINATO

    $usatox size_readable($usato);
    echo 
    $usatox;

    }else{
    echo 
    "Unauthorized Access!";
    }

    break;

    default:

    echo 
    "<form name=log method=\"post\" action=\"?status=ready\">";
    echo 
    "Username: <input type=\"text\" name=\"login\">
    "
    ;
    echo 
    "Password: <input type=\"text\" name=\"pass\">

    "
    ;
    echo 
    "<input type=\"submit\" value=\"Login\"></form>";
    break;

    }
    ?>
    Vi prego datemi una mano!
    What is the |\/|atrix?

  2. #2
    dovresti scrvere l' errore preciso comunque comincia a cambiare tutti

    browse_tree($new_dir, &$filesize);


    con


    browse_tree($new_dir, $filesize); // senza la &



    tranne dove dichiari la funzione


    function browse_tree($new_dir, &$filesize) {
    // qui la & e' ok, la & non si invia, si riceve e basta
    }


    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Innanzitutto ti ringrazio per la risposta!
    L'errore preciso non lo so neanche io poichè come ho scritto prima mi viene restituito solo un bel 404 "Impossibile Visualizzare la pagina" dopo che faccio il login!
    Le modifiche che mi hai detto tu le ho fatte ma non è cambiato nulla...
    La cosa strana è (come ho descritto nel mio primo post) che se tolgo il "Codice incriminato" e lo sostituisco con un echo "funziona"; ad esempio, dopo che faccio il login non ho più il 404... bensì la scritta "funziona"!
    Cosa più strana è che se metto il "Codice incriminato" dentro una pagina vuota (anche lasciando a browse_tree($new_dir, &$filesize); la & commerciale) il tutto funziona alla perfezione!
    Sono lo switch e il "Codice incriminato" che da soli funzionano ma che assemblati non vogliono funzionare, mi stanno facendo impazzire!
    What is the |\/|atrix?

  4. #4
    sviluppi con error reporting E_ALL ~E_NOTICE anche col php 5 ???

    metti solo l' e_all, la & non si passa, si riceve e basta, fidati

    per il resto non saprei che dire, mi spiace
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Sviluppo con error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT potrebbe essere questo il problema?
    Se potrebbe essere derivato da questo come lo cambio tramite php_value (poichè non ho accesso al php.ini ma all'httpd.conf)?
    Grazie ancora!
    What is the |\/|atrix?

  6. #6
    scusa ma tu in locale non ce l' hai php ?
    provalo in locale lo script, poi lo metti sul server ... di solito si fa cosi'


    cmq sia


    error_reporting(E_ALL);
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Stessa cosa!
    In locale mi crasha apache...
    What is the |\/|atrix?

  8. #8
    non posso testarlo in locale, pero' puoi provare a usare questa funzione per il size_readable

    http://www.devpro.it/php4_id_59.html

    clicka su code per esempio e codice o download


    P.S. e' anche buona norma dichiarare funzioni fuori da cicli o altro, cioe' a inizio pagina poi in caso sotto richiamarle
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    Ti ringrazio, ma il codice "Incriminato" da solo funziona!
    Voglio capire perchè mi fa dannare quando è inserito nello switch...
    What is the |\/|atrix?

  10. #10
    allora,


    1 - le funzioni vanno scritte esternamente, di norma
    2 - il codice si scrive indentato, di norma
    3 - ci sono cicli strani senza controllo variabili
    4 - c'e' un elseif con punto e virgola un po' fuori luogo, esempio

    codice:
    
    switch($status) {
    	case "ready":
    	if(($login == $login1) && ($pass == $pass1)){
    		function browse_tree($dir, &$filesize) { 
    			if (is_dir($dir)) {
    				if (!isset($filesize)) $filesize=0;             
    					$handle=opendir("$dir");
    					while (($file = readdir($handle))!==false) { 
    						if (($file != ".") && ($file != "..")) {
    							$new_dir=$dir."/".$file;
    							if (is_dir($new_dir))  
    								browse_tree($new_dir, &$filesize);
    							else if (is_file($new_dir)); // cos'e' ??? 
    								$filesize+=filesize($new_dir);            
    						} 
    					} 
    					closedir($handle); 
    				} 
    				return $filesize;
    			} // problemi di indentatura ?
    
    e' un casino ... scrivi codice indentato cosi' magari vedi se o dove stai sbagliando, in caso ripostalo indentato , controlla l' $handle, dai per scontato che si apra ...

    if( $handle = opendir() ) ... etc etc

    segui i consigli, senno' e' inutile
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.