Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119

    [newbie] Dubbi su form, passaggio variabili, errore "forbidden"

    Salve,

    cercato di rendere funzionante questo elementare script php (link)

    Codice PHP:
    <form action="<? $_SERVER['PHP_SELF']; ?>">

    <input size='16' name='num1' value='<? echo $num1?>'>

    <input size='16' name='num2' value='<? echo $num2?>'>
        

    <input type='submit' name='Calcola' value=' = '>
        

    <input size='16' name='sum' value='<? echo $sum?>'>
        


    <?php
    if (isset($Calcola)){
        
    $sum $num1 $num2;
        echo 
    "Il risultato è $sum";
    }
    ?>

    </form>
    ..ho salvato il tutto in un file somma.html.

    La prima cosa strana è che a differenza degli input presenti nel link allegato a me compaiono le scritte "echo .." ecc in tutte le caselle, e non so come evitarlo.

    A me interessa riuscire a farmi restituire la stessa pagina con lo stesso modulo, solo con il risultato al posto giusto.

    Se provo ad eseguire una somma mi viene restutuito l'errore:

    "Forbidden
    You don't have permission to access /< on this server."

    Qualcuno sa aiutarmi a rendere operativo questo semplice script?
    E nel caso in cui io tenga il codice php su un file separato?

    Grazie, scusate per le richieste elementari.

  2. #2
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    mah... quando premi calcola, fa il refresh alla stessa pagina? (somma.html) controlla bene l'url...

  3. #3
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Codice PHP:
    <?php
    $calcola 
    = isset($_POST['calcola']);
    $num1 = isset($_POST['num1']) ? $_POST['num1'] : 0;
    $num2 = isset($_POST['num2']) ? $_POST['num2'] : 0;

    if (
    $calcola)){
        
    $sum $num1 $num2;
        echo 
    "Il risultato è $sum";
    }
    ?>

    <form action="#" method='POST'>
    <input size='16' name='num1' value='<?php echo $num1?>'>
    +
    <input size='16' name='num2' value='<?php echo $num2?>'>


    <input type='submit' name='calcola' value=' = '> 


    <input size='16' name='sum' value='<?php echo $sum?>'>


    </form>
    Così dovrebbe andare.
    I principali errori non in ordine di importanza:

    - Specifica un 'method' per il form, GET o POST
    - Evita di usare le variabili di server, potrebbero non esistere. Se il form dev'essere rimandato nella stassa pagina usa il # altrimenti puoi crearti una costante con la url del tuo sito.
    - Non usare gli short tag <?, potrebbero non essere abilitati, usa sempre i tag estesi <?php
    - Usa i nomi delle variabili sempre minuscoli, se sono nomi composti puoi utilizzare il camel case o l'underscore come preferisci ( io preferisco la prima soluzione es. $nomeVariabile )
    - Definisci le variabili che ti arrivano dal form ed eventualmente filtrale o forza un tipo es.
    Codice PHP:
    $num1 = isset($_POST['num1']) ? $_POST['num1'] : 0;
    che poteva anche essere
    $num1 
    = isset($_POST['num1']) ? (float)$_POST['num1'] : 0
    - Usa lo short if per fare il filtro ( sempre l'esempio di sopra )

    Penso di nn aver dimenticato nulla.. il codice nn l'ho testato ma dovrebbe andare.
    Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119
    Grazie mille per le risposte.

    Ho provato il codice, non da più l'errore "Forbidden" ma:

    - le caselle di testo riportano le stringhe "echo " ecc, che servono evidentemente per il passaggio delle variabili, ma nell'esempio del link non si vedono.

    - Non effettua la somma. La pagina viene correttamente richiamata, ma sostanzialmente resettata, non cambia nulla in pratica.

  5. #5
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ho passato il mouse sul link solo adesso...
    cambia l'estensione del file in .php
    Ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119


    Grazie mille.
    :rollo:

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.