Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Form e php

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    residenza
    Parma
    Messaggi
    104

    Form e php

    Ho questo script che non ne vuole sapere di girare dov'è l'errore???

    <form action="index.php" method="post">
    Giorno : <input type="text" name="giorno" maxlength="2" size=2>

    Mese : <input type="text" name="mese" maxlength="2" size=2>

    Anno : <input type="text" name="anno" maxlength="2" size=2>


    <input type="submit" value="Calcola">




    </form>
    <?php

    if ($giorno && $mese && $anno) {

    $calc = ($giorno[0] * $giorno[1]) + ($mese[0] * $mese[1]) + ($anno[0] * $anno[1]);

    echo "IL TUO NUMERO FORTUNATO &Egrave $calc";

    }

    grazie per l'aiuto

    ?>

  2. #2
    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <title>            editor
            </title>
        </head>
        <body bgcolor="#FFFFFF" style="margin:5px;">
            <form action="index.php" method="post">
                Giorno :
                <input type="text" name="giorno" maxlength="2" size=2>
                
    Mese :
                <input type="text" name="mese" maxlength="2" size=2>
                
    Anno :
                <input type="text" name="anno" maxlength="2" size=2>
                

                

                <input type="submit" value="Calcola">
                

                

            </form>
    <?php

    if (array_key_exists("giorno",$_POST) && array_key_exists("mese",$_POST) && array_key_exists("anno",$_POST)):
        if (
    $_POST["giorno"] && $_POST["mese"] && $_POST["anno"]):
            
    $_POST["giorno"]=sprintf("%02d",$_POST["giorno"]);
            
    $_POST["mese"]=sprintf("%02d",$_POST["mese"]);
            
    $_POST["anno"]=sprintf("%02d",$_POST["anno"]);
            
    $calc = (intval($_POST["giorno"][0]) * intval($_POST["giorno"][1])) + (intval($_POST["mese"][0]) * intval($_POST["mese"][1])) + (intval($_POST["anno"][0]) * intval($_POST["anno"][1]));
            echo 
    "IL TUO NUMERO FORTUNATO &Egrave ".$calc;
        endif;
    endif;
        
    ?>
        </body>
    </html>
    Ciao!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  3. #3
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    I dati trasmessi tramite form devono essere inviati con il "metodo" dichiarato nell'intestazione del form.

    Nel tuo caso hai specificato nel tag <form> il metodo POST (method="post") quindi tutte le informazioni contenute nel modulo saranno inviate nel corpo della richiesta HTTP (non come parte dell'URL come accade per il metodo GET) per poi essere recuperate con l'apposito array:

    codice:
    //pagina che riceve i dati inviati dal form
    
    $giorno = $_POST['giorno'];
    $mese = $_POST['mese'];
    
    //ecc...
    Sempre riguardo al codice che hai postato, per controllare l'avveunto invio del modulo, cioè se si è fatto click sul pulsante submit del form, per intenderci, è utile l'utilizzo dell'istruzione isset(), funzione che si occupa proprio di controllare se una variabile è definita o meno. Ovviamente per farlo dovrai aggiungere l'attributo "name" al submit-type del form.

    Sono solo linee di guida, niente di più. In merito al fatto che il tuo script non funzioni (non gira vuol dire poco o niente) dovresti ricevere qualche segnalazione d'errore almeno... ne sai nulla?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2004
    residenza
    Parma
    Messaggi
    104
    Shores grazie per l'aiuto, avevo pensato alle array ma non in quel modo, ora si che funge.

    x Neida, grazie per i consigli ne farò tesoro, devo precisare che lo script cosi come l'ho postato io ha sempre funzionato fino a quando non ho fatto l'upgrade del servizio del mio sito, presumo che abbiano aggiornato la versione di PHP, e alcuni script come questo e qualcun altro FREE trovato in giro non girano più (scusa il gioco di parole).

    Segnalazioni di errore non ne ricevo, lo script non gira, nel senso che non ritorna il risultato finale, ricarica la stessa pagina ma senza risultato.

    Ed è quello che succede con un altro script Free che si trova in rete, l'Oroscopo Celtico
    ad esempio in questa stringa di form:

    <form method=\"POST\" name=\"oroscopo\" action=\"".$_SERVER['PHP_SELF']."?url=trova\">

    l'action è quello della nuova versione che ho sostituito al posto del vecchio $PHP_SELF, nello script sicuramente ci saranno altri codici da sostituire, ma non essendo io aggiornato posso solo intuire che qualcosa non và, ma dall'intuire al sapere con certezza cosa non và ce ne passa.

    cmq sia ringrazio sempre tutti quanti coloro che mi aiutano a sistemare i vari codici e con html.it ho una lunga storia alle spalle

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.