Visualizzazione risultati 1 fino 2 di 2

Discussione: passaggio valori .html --> .php

  1. #1
    piero60turrini non è connesso Neofita
    Data registrazione
    10-11-2011
    Messaggi
    1

    Question passaggio valori .html --> .php

    Dovrei eseguire questo script php (è un esempio preso da un libro, tanto per imparare):
    Codice HTML:
    <html><body><script language="php">
    
    $ris = $w1 + $w2;
    echo "La somma di $w1 e  $w2 &egrave; $ris";
    
    </script></body></html>
    L'ho invocato da http://www.altervista.org/piero60turrini/index.html, ma a quanto pare i valori non arrivano allo script... Probabilmente manca qualcosa da una parte o dall'altra. Il libro fa riferimento a PHP 4, forse è cambiato qualcosa di importante!?

    grazie,
    Piero
    Ultima modifica di alemoppo : 12-11-2011 alle ore 15.50.00

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,806

    Predefinito

    Innanzitutto, il PHP non sta tra i tag <script>, ma tra <?php e ?>, e se in una pagina vuoi eseguire codice php, devi mettere l'estensione *.php e non *.html.

    Per passare i parametri da html a PHP, principalmente ci sono 2 modi: GET o POST.

    Il GET consiste nel passare i dati tramite l'indiritto (URL). Non so se hai notato, ma in molti siti trovi indirizzi del tipo:

    Codice:
    www.sito.com?par1=dato1&param1=dato2&param3=dato3...
    In questo caso, il php può usare $_GET['dato1'] che nel nostro caso vale param1, $_GET['dato2'] (= param2), $_GET['dato3'] (=dato3...).
    Usando i form html, impostando il "method" del form come GET, aprirà automaticamente la pagina php con i dati nell'url come ho scritto sopra.


    Il POST invece sfrutta l'header della pagina per inviare i dati (da non confondere con il contenuto di <head> della pagina html).
    Il modo più facile per inviare dati via POST, è impostare il "method" dei form con POST.


    Il tuo esempio:

    Via GET:

    Se ad esempio questa pagina si chiama "prova1get.php", prova ad aprirla con:
    prova1get.php?valore1=3&valore2=5
    Codice PHP:
    <?php
    $w1
    = $_GET['valore1']; //prendo i dati prelevati dall'url e lo assegno alla variabile w1
    $w2 = $_GET['valore2']; //prendo i dati prelevati dall'url e lo assegno alla variabile w2
    $ris = $w1 + $w2;
    echo
    "La somma di $w1 e $w2 &egrave; $ris";
    ?>
    Se invece vuoi fare una cosa in automatico (senza andar a modificare l'url), puoi utilizzare un form che farà quel lavoro per te:

    (l'action indica a che pagina inviare i dati)
    Codice PHP:
    <?php
    $w1
    = $_GET['valore1']; //prendo i dati prelevati dall'url e lo assegno alla variabile w1
    $w2 = $_GET['valore2']; //prendo i dati prelevati dall'url e lo assegno alla variabile w2
    $ris = $w1 + $w2;
    echo
    "La somma di $w1 e $w2 &egrave; $ris";
    ?>
    <form action='prova2get.php' method='get'>
    numero1: <input type="text" name="valore1"><br>
    numero2: <input type="text" name="valore2"><br>
    <input type='submit' value='somma i valori!'>
    </form>

    Invece, con POST:
    (nota che l'indirizzo lo vedi "pulito")
    Codice PHP:
    <?php
    $w1
    = $_POST['valore1']; //prendo i dati prelevati dall'header della pagina e lo assegno alla variabile w1
    $w2 = $_POST['valore2']; //prendo i dati prelevati dall'header della pagina e lo assegno alla variabile w2
    $ris = $w1 + $w2;
    echo
    "La somma di $w1 e $w2 &egrave; $ris";
    ?>
    <form action='prova1post.php' method='post'>
    numero1: <input type="text" name="valore1"><br>
    numero2: <input type="text" name="valore2"><br>
    <input type='submit' value='somma i valori!'>
    </form>
    --------------------

    Gli esempi sopra li ho fatti soltanto a scopo "didattico". Non li ho provati, ma dovrebbero funzionare correttamente.
    Se vuoi far le cose "per bene", prima di usare "$_POST[]" o "$_GET[]", dovresti verificare che il dato esista, con la isset().
    Poi, le pagine html andrebbero fatte con la loro struttura:
    Codice HTML:
    <!doctype html>
    <html>
    <head>
    <title> Titolo della pagina </title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
    Tutto il corpo della pagina, compresi eventuali form
    </body>
    </html>
    Ovviamente, se hai qualche dubbio chiedi pure!


    Ciao!
    Ultima modifica di alemoppo : 12-11-2011 alle ore 16.13.52

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •