Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Controllo errori

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139

    Controllo errori

    Ciao a tutti ho un'array dove ogni chiave ha due valori

    $dati = array(
    "roma" => array("30","5"),
    "milano" => array("9","7")
    }

    ho un form con due campi testuali dove inserisco i due nomi delle città

    <form action ="pagina.php" method ="post">
    Localita A: <input type ="text" name ="prima" />
    Localita B: <input type ="text" name ="seconda" />
    <input type ="submit" name ="submit" value ="cerca" />
    </form>

    recupero i dati e li inserisco dentro due variabili, la funzione strtolower converte il maiuscolo in minuscolo e la funzione trim rimuove gli spazi bianchi

    $c1 = strtolower(trim($_POST['prima']));
    $c2 = strtolower(trim($_POST['seconda']));


    Adesso eseguo in ciclo che parte solo se le variabili che recuperano i dati del form hanno dentro tutte e due un valore lo controllo con la funzione !empty se sono vuote o solo una delle due ha un valore stampo a video di inserire entrambi i valori


    if (!empty($_POST['prima']) && !empty($_POST['seconda'])) {

    foreach( $nome as $chiave => $valore ) {

    if ( $chiave == $c1 ) {
    $lat1 = $nome[$chiave][0];
    $lon1 = $nome[$chiave][1];
    } elseif ( $chiave == $c2) {
    $lat2 = $nome[$chiave][0];
    $lon2 = $nome[$chiave][1];
    } }

    qui farò una serie di operazioni matematiche con i dati numerici che recupero dalle chiavi

    } else { echo "Inserire i valori in entrambi i campi"; }


    il problema é questo praticamente se inserisco i due valori dentro al form esegue il ciclo e anche se le chiavi non esistono mi esegue le operazioni matematiche stampando a video 0 non essendoci valori. Come posso far partire le operazioni matematiche solo se il valore che inserisco nel form coincide con la chiave dell'array?

  2. #2
    è tutto abbastanza confuso ma la prima cosa che mi balza all'occhio è:

    Codice PHP:

    foreach( $nome as $chiave => $valore ) { 
    da dove arriva $nome????
    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    Utente di HTML.it L'avatar di bode
    Registrato dal
    Feb 2007
    Messaggi
    304
    Prova ad usare isset invece di empty
    Codice PHP:
    if (isset($_POST['prima']) && isset($_POST['seconda'])) { 

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    nomi sarebbe $dati avevo sbagliato a scrivere


    La funzione !empty il suo lavoro lo fa, finche non inserisco i due valori nel form assieme mi esegue l'else e va bene, quando inserisco i due valori, passa alla parte successiva del codice esegue il ciclo, controlla se i due valori sono presenti nell'array se sono presenti tutti e due anche qui va bene esegue le operazioni matematiche e mi stampa a video il risultato. Il problema nasce quando i due valori inseriti nel form non coincidono con quelli dell'array (i nomi delle città),mi esegue comunque le operazioni matematiche con risultato 0 invece non dovrebbe eseguirle se i due valori non vengono trovati nell'array.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    ho risolto inserendo dopo il ciclo

    if (!empty($lat1) && !empty($lon1) && !empty($lat2) && !empty($lon2)) {

    operazioni matematiche

    }


    in questo modo mi esegue le operazioni matematiche solo se i valori coincidono.


    A volte ci si perde via in stupidate grazie lo stesso a tutti.

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.