• User Newbie

    Loop infinito in javascript

    Ciao a tutti...
    Ho questo breve codice misto javascript e php...

    <?php
    if(!isset($_GET['width'])){
    ?>

    <script language="JavaScript">
    <!--
    document.location="<?php echo $_SERVER['PHP_SELF']; ?>?width="+screen.width;
    -->
    </script>
    <?
    }
    ?>

    <?php
    $width = $_GET['width'];
    $Nwidth = $width*2;

    echo "Larghezza: ".$widht;
    echo "Nuova Larghezza: ".$Nwidth;
    

    ?>

    Ora...m sapete dire perchè appena apro la pagina questa mi va in loop infinito?
    Grazie...

    CiAo...


  • Super User

    Edit: avevo detto molte baggianate

    :frust:

    :ciauz:


  • User Newbie

    Intanto ti ringrazio...
    Ti pongo 2 domande:

    1. ma teoricamente se io chiudo il php e apro un codice jscript, il flusso dovrebbe essere continuo e leggere diciamo automaticamente il tipo di linguaggio no?

    2. Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in C:\wamp\www\Medina PDA\Sito_DINAMICO_MEDINA_PDA\PORTAL\HomeMedina.php on line 11
      ...questo è l'errore che mi da...

    Grazie ancora...

    CiAo...


  • Moderatore

    Devo contraddirti Cla, può farlo.

    In pratica php legge la prima volta il codice; traduce i comandi php, controlla la presenza di eventuali errori, mette le variabili in memoria, rilegge e sostituisce i valori.

    <?php for &#40;$i=0;$i<10;$i++&#41; &#123; ?>
    **valore**: <?php echo $i;?> 
     
    <?php &#125; ?>
    

    Funziona perfettamente.

    Detto questo a me funziona.

    Ipotizzo: non avrai il safe_mode ad off?

    In tal caso il problema potrebbe essere quel
    $width = $_GET['width'];

    chiama $width in un altro modo: $Owidth ad esempio.. e controlla se va. :ciauz:


  • Super User

    @massy said:

    Devo contraddirti Cla, può farlo.

    In pratica php legge la prima volta il codice; traduce i comandi php, controlla la presenza di eventuali errori, mette le variabili in memoria, rilegge e sostituisce i valori.

    Nella fretta prima del pranzo ho scritto un po' incasinato.
    Il tuo esempio è corretto, ma nel caso del codice postato da bagheero la vedo diversamente, se l'argomento dell'if è 1 il codice risultato sarà:

    <script language="JavaScript">
    <!--
    document.location="<?php echo $_SERVER['PHP_SELF']; ?>?width="+screen.width;
    -->
    </script>

    Se l'argomento è 0 il codice non ha più senso, perchè come risultato ottengo comunque:

    <script language="JavaScript">
    <!--
    document.location=?width="+screen.width;
    -->
    </script>

    ecco perchè ho detto che non può farlo.
    Mi sbaglio? Forse ci vuole qualche ora di sonno? 🙂


  • Moderatore

    No. Se 0 non esegue nulla e salta alla fine della graffa 🙂

    Per me il problema è che avendo il safe_mode ad off, per l'interprete $_GET['width'] e $width son la stessa cosa.
    Ecco perché listando il codice trova $width ed ottiene sempre true, mai false, e va in loop.

    Chissà se son riuscito a spiegarmi. :mmm:

    :ciauz:


  • Super User

    Non mi ero spiegato male, era proprio che non avevo capito un cavolo....

    Essendo passato dalla conoscenza della sintassi del C, al Php senza dare troppo peso alle guide, questi sono gli effetti... :arrabbiato:

    Ho fatto questa prova e hai proprio ragione tu:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Untitled Document</title>
    </head>
    <body>
    </body>
    <?php
    if&#40;0&#41; &#123;?>
    Claudio non scemo!
    <?php
    &#125;?>
    <?php
    if&#40;1&#41; &#123;?>
    Claudio scemo!
    <?php
    &#125;?>
    </html>
    

    :frust:

    Grazie Massy, non si finisce mai di imparare 🙂
    Bagheero scusami se ti ho confuso.

    Ciao :ciauz:


  • User Newbie

    Nessun problema ragazzi...
    Cmq ho risolto utilizzando uno script trovato [url=http://www.phpfrance.com/tutoriaux/index.php/2005/03/13/23-detecter-la-resolution-decran]QUI...

    Se guardate la terza "finestrella" troverete un po' d codice (sotto La Transmettre à du code PHP) che utilizza una funzione posizionata nell'HEAD.
    Diciamo che ho dovuto aggiungere modificare la pagina e renderla da puramente PHP a "un po' anke HTML"...ma la dinamicità cmq non cambia. E a me va bene anche così...tanto non saranno quei tag che rompono los cojones...
    E in più così facendo ho la funzione che posso richiamare always se mi serve!

    Ragazzi non crucciatevi...devo fare un progetto da evolvere in tesi...quindi tra php, css, javascript e ca**i e mazzi ne avrete da aiutarmi...sono un pivello in queste cose...
    E già pivello è un complimento per me...
    Grazie ancora...

    CiAo...