Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [PHP] Codice che blocca il parser

    Ciao a tutti,

    Ho un file .php che, richiamato dalla pagina web (php pure lei) DOVREBBE visualizzare in una cella 6 numeri presi con delle formule, invece BLOCCA l'esecuzione del parser, http://www.eugy.net/eubegin.php
    In questa pagina potete vedere (visualizzando il codice) che è troncata di netto...

    La porzione che richiama è questa:

    Codice PHP:
    <td align="center"><font face="Arial Narrow">[b]<? require "random.php" ?>[/b]</font></td>
    La pagina risulta troncata al [B] ...

    e questo è il file random.php:

    Codice PHP:
    <?
    function conv8($a){
    $i=0;
    while(
    $a>7) {
                
    $nu[$i]=$a%8;
                
    $a=intval($a/8);
                
    $i++;
                }
    $nu[$i]=$a;    
    $a=0;
    for (
    $b=count($nu)-1;$b>=0;$b--){
                                    
    $a=$a+$nu[$b]*bcpow(10,$b);
                                    }
    return 
    $a;
    }
    $giorno=date("d");
    $mese=date("m");
    $anno=date("Y");
    settype ($giorno"integer");
    settype ($mese"integer");
    settype ($anno"integer");
    $numeri[0]=($giorno*$mese*($anno-$mese))%90+1;
    $numeri[1]=($giorno*$mese*($anno-$giorno))%90+1;
    $numeri[2]=(($giorno+$mese)*($anno-$giorno))%90+1;
    $numeri[3]=conv8($giorno*$mese+$anno)%90+1;
    $numeri[4]=conv8($giorno+$mese+$anno)%90+1;
    $a="";
    for (
    $b=0;$b<=4;$b++){
                        
    $a=$a.$numeri[$b];
                        }
    $numeri[5]=$a%90+1;
    sort($numeri,SORT_NUMERIC);                   
    for (
    $b=1;$b<=5;$b++){
                        for (
    $c=0;$c<=$b-1;$c++){
                                            if (
    $numeri[$b]==$numeri[$c]) $numeri[$b]++;
                                            }
                        }
    echo 
    "I numeri fortunati di oggi:
    "
    ;
    $a="";
    for (
    $b=0;$b<=5;$b++){
                        
    $a=$a.$numeri[$b]."-";
                        }
    echo 
    substr($a,0,strlen($a)-1)
    ?>
    La cosa che mi fa uscire matto... è che in locale, CON EASYPHP, funziona BENISSIMO.

    Se elimino quella chiamata require il resto della pagina funziona perfettamente (anche gli altri require...).

    Una cosa strana è che se chiamo direttamente http://www.eugy.net/random.php mi escono delle intestazioni HTML (e non esegue il codice, non arriva all'echo dei numeri)

    Per dire... se chiamo direttamente invece un altro programmino, rfrasi.php, invece lo esegue perfettamente, e manda il solo contenuto del suo echo, senza nessun codice o intestazione HTML...

    Ragazzi, vi chiedo una mano, perchè ho finito le idee...

    Grazie in anticipo. Ciao

  2. #2
    easyphp e' una ciofeca...

    prova a mettere il tag php esteso.

    <?php

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3

    Nah...

    Non funzica il tag esteso...

    Sempre troncato

    Se a qualcuno servisse per la diagnosi... c'è http://www.eugy.net/phpinfo.php per vedere le info sul php caricato sul server...

    Aggiornamento...

    Ho invertito due righe nell'HTML principale, ora chiama prima rfrasi.php e nella cella dopo chiama random.php...

    rfrasi funziona perfettamente, e random.php tronca sempre...

    COSA diavolo c'è in quel codice che non va??

    EDIT:

    OK, ho inserito un po' di echo nel codice...

    Questa è la riga che non viene eseguita e blocca tutto:

    Codice PHP:
    $numeri[3]=conv8($giorno*$mese+$anno)%90+1
    Evidentemente sul server non gli piace questa chiamata di funzione...

  4. #4

    INCAPONITO e...

    OK, mi ci sono INCAPONITO....

    Risultato:
    1) Non gli piaceva la funzione bcpow()

    2) Allora l'ho creata io, nidificata nella funzione conv8() , ma alla seconda chiamata si ribloccava

    3) L'ho creata esterna e finalmente funziona...


    il codice che va... (per quelli a cui interessa) [avevo rinominato conv8 in cambia]

    Codice PHP:
    <?php  
    function pot10($p){
        if (
    $p==0) return 1;
        elseif (
    $p==1) return 10;
        else {
            
    $po=10;
            for (
    $j=2;$j<=$p;$j++){
                
    $po=$po*10;
            }
            return 
    $po;
            }
        }
    function 
    cambia($a){
    $i=0;
    while(
    $a>7) {
    $nu[$i]=$a%8;
    $a=intval($a/8);
    $i++;
    }
    $nu[$i]=$a;
    $a=0;
    for (
    $b=count($nu)-1;$b>=0;$b--){
    $a=$a+$nu[$b]*pot10($b);
    }
    return 
    $a;
    }

    $giorno=date("d");
    $mese=date("m");
    $anno=date("Y");
    settype ($giorno"integer");
    settype ($mese"integer");
    settype ($anno"integer");
    $numeri[0]=($giorno*$mese*($anno-$mese))%90+1;
    $numeri[1]=($giorno*$mese*($anno-$giorno))%90+1;
    $numeri[2]=(($giorno+$mese)*($anno-$giorno))%90+1;
    $numeri[3]=cambia($giorno*$mese+$anno)%90+1
    $numeri[4]=cambia($giorno+$mese+$anno)%90+1
    $a="";
    for (
    $b=0;$b<=4;$b++){
                        
    $a=$a.$numeri[$b];
                        }
    $numeri[5]=$a%90+1;
    sort($numeri,SORT_NUMERIC);
    for (
    $b=1;$b<=5;$b++){
                        for (
    $c=0;$c<=$b-1;$c++){
                                            if (
    $numeri[$b]==$numeri[$c]) $numeri[$b]++;
                                            }
                        }
    echo 
    "I numeri fortunati di oggi:
    "
    ;
    $a="";
    for (
    $b=0;$b<=5;$b++){
                        
    $a=$a.$numeri[$b]."-";
                        }
    echo 
    substr($a,0,strlen($a)-1)
    ?>
    Il risultato: http://www.eugy.net/eubegin.php


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.