• User

    Traduzione da Asp a Php

    La domanda che pongo è molto semplice. Premesso che ci capisco poco di asp e zero di php ( cioè non conosco la sintassi ), dovrei tradurre queste poche righe di codice in asp in php:

    <% 
    IF Request.QueryString&#40;"rid"&#41; = "" THEN 
    id = 29 
    ELSE 
    id = CInt&#40;Request.QueryString&#40;"rid"&#41;&#41; 
    END IF 
    %>
    

    e nel codice dei collegament che in asp sono:

    [url="nome_pagina.asp?rid=<%=id%>"]Nome Pagina
    

    In sostanza quello che fanno queste quattro righe, è che se non digito niente dietro al dominio ( http://www.dominio.ext ), si imposta di default http://www.dominio.ext/?rid=29 e i collegamenti di conseguenza vengono seguiti da /?rid=29, mentre se digiti http://www.dominio.ext/?rid=100, si imposta su tutti i collegamenti rid=100


  • Super User

    Ciao Guestone,

    il codice che ti serve è :

    
    $id=isset&#40;$_GET&#91;'rid'&#93;&#41;?$_GET&#91;'rid'&#93;:29;
    
    

    Modifico il tuo titolo in quanto tutte le richieste hanno la stessa priorità :ciauz:


  • Super User

    [legg. OT]
    è una sintassi abbreviata, quindi esiste anche il classico IF...THEN...ELSE, o è standard?

    ho letto il manuale di php giusto un paio di volte, ma non usandolo mai non so nemmeno la sintassi degli IF, però mi affascina l'agilità di questa riga 🙂
    [/OT]


  • User Attivo
    <?php 
    if &#40;$_GET&#91;'rid'&#93; == ""&#41; //la condizione si mette chiusa tra tonde
    &#123;  /*l'apertura della graffa indica l'inizio delle operazioni se la condizione è vera, il THEN*/
    $id = 29;
    &#125; // la chiusura della graffa indica la fine del blocco THEN
    else
    &#123;  // inizio del blocco di operazioni se la condizione e FALSE, l'ELSE
    $id = $_GET&#91;'rid'&#93;; 
    &#125; // fine del blocco ELSE
    ?>
    

    In realtà la versione sopra è quella più completa. La versione più efficente e corta è quella di Tymba sopra postata.
    Ci sono delle vie di mezzo:
    nel tuo caso il blocco di operazioni del THEN consiste in un'unica operazione quindi puoi anche omettere le graffe (è poco intuitivo, ma si può fare), lo stesso per il blocco else. Ad esempio:

    <?php
    if &#40;$a = 'gino'&#41;
    echo "viva gino";
    echo "gino è scemo";
    ?>
    

    il codice sopra mostrerà viva gino solo se la condizione del IF è vera. Invece, gino è scemo verrà mostrato sempre e comunque perchè senza graffe solo la prima operazione dopo l'IF è soggetta alla condizione.

    [url="nome_pagina.asp?rid=<?php echo id; ?>"]Nome Pagina
    

    ps: ho editato il post perchè era stato smebrato da un serial moderator ... meglio così ho aggiunto qualche dettaglio in più :ciauz:


  • Super User

    grazie a tutti.

    (editato di conseguenza sennò sembravo un pazzo che parlava di tutt'altro 😉 )


  • Super User

    chiedo umilmente scusa a centrix.
    ho fatto un pastisccio, al posto di quotare il suo messaggio l'ho modificato per errore.

    verifico con il super boss se c'è un modo (che ignoro) per ripristinare il suo messaggio.


  • User

    Grazie per le risposte.

    Mi scuso con il moderatore per sbagliato il titolo ignorando il regolamento