Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    [php]funzione controllo input

    Salve giovani.. sto usando la funzione di controllo proposta da Andr3a sulla pillola
    [PILLOLINA] Richieste più sicure con il PHP

    Ora volevo sapere una cosa.. io devo ovviamente controllare qualsiasi input provenga dall'utente..

    Nel caso del mio form di registrazione ho una sfilza di variabili $nome = $_POST[nome];
    come faccio a controllarli tutti in un unico passaggio??
    Questa volta, più che un voto.. è favoreggiamento.

  2. #2
    aiutino??
    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    foreach($_POST as $var)
    blaaa bla bla

  4. #4
    Scusa ma:


    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $email_utente = $_POST['mail'];


    foreach ($_POST as $var) {
    getRequest($_POST, $var);
    }

    Non credo funzioni...
    Questa volta, più che un voto.. è favoreggiamento.

  5. #5
    Beh l'assegnazione a una variabile interna va fatta DOPO i controlli... e getRequest cosa fa?

    Codice PHP:
    foreach ($_POST as $key => $var)
    {
        
    $_POST[$key] = controllainput($var);

    Dove controllainput è una funzione di fantasia, ovviamente.
    anija . è solo un blog
    www.anija.it

    «i'm a fountain of blood · in the shape of a girl»

  6. #6
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Originariamente inviato da angykiss
    Beh l'assegnazione a una variabile interna va fatta DOPO i controlli... e getRequest cosa fa?

    Codice PHP:
    foreach ($_POST as $key => $var)
    {
        
    $_POST[$key] = controllainput($var);

    Dove controllainput è una funzione di fantasia, ovviamente.
    Fai come dice angykiss, solo all'interno del foreach metti
    Codice PHP:
     $_POST[$key] = getRequest($_POST$key); 
    In questo modo puoi usare la funzione getRequest() descritta nella Pillolina
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  7. #7
    Grazie intanto per la risposta.. Ho provato a fare come dite e sembra funzioni.. adesso provo ad inserire righe particolari cosi vedo se mi dà problemi..

    Tra un pò vi fò sapere

    Questa volta, più che un voto.. è favoreggiamento.

  8. #8
    Come nn detto nn funziona.. Proviamo con un pò di codice:

    Codice PHP:
    <?php
    include("config.inc.php");
    require_once(
    "controlli.php");

    $utente $_POST['nickname'];
    $password md5($_POST['pass']);
    $password_email $_POST['pass'];
    $nome $_POST['nome'];
    $cognome =  $_POST['cognome'];
    $email_utente $_POST['mail'];
    $sesso $_POST['sesso'];
    foreach (
    $sesso as $sex)
        
    $sex $sesso;
    $indirizzo $_POST['indirizzo'];
    $comune $_POST['comune'];
    $cap $_POST['cap'];
    $provincia $_POST['provincia'];
    foreach (
    $provincia as $prov)
        
    $prov $provincia;
    $anniuso $_POST['anniuso'];
    $suono $_POST['suono'];
    foreach (
    $suono as $sound)
        
    $sound $suono;
    $dovesuono $_POST['dovesuono'];
    $tipomusica $_POST['tipomusica'];
    $messaggio $_POST['messaggio'];

    foreach (
    $_POST as $key => $var

        
    $_POST[$key] = getRequest($_POST$key); 
    }


    if (empty(
    $utente) || empty($password) || empty($nome) || empty($cognome) || empty($mail)) {
        echo 
    "I campi con l'asterisco sono obbligatori
    "
    ;
        echo 
    "<a href=\"registra.php\">" "torna alla pagina di registrazione</a>";
        } else {
            
    $db mysql_connect($db_host$db_user$db_password);
            if (
    $db == FALSE) die ("Non sono riuscito a connettermi al database. Rivedi i parametri del file config.inc.php");
            
    mysql_select_db ($db_name$db) or die ("Non sono riuscito a selezionare il database. Rivedi i parametri del file config.inc.php");

            
    $query "SELECT * FROM utenti " "WHERE nick_utenti = '$utente' " "OR email_utenti = '$email_utente'";
            
    $result mysql_query($query) or die ("Errore numero 1");

            if (
    mysql_num_rows($result) != 0){
                while (
    $row mysql_fetch_array($result))
                {
                if (
    $row['nick_utenti'] == $utente) {
                    echo 
    "

    "
    ;
                    echo 
    "Il nickname, [b]" $row['nick_utenti'] . "[/b] è già in uso da un altro utente, prova ad inserirne uno diverso";
                    echo 
    "</p>";
                }
                if (
    $row['email_utenti'] == $email_utente) {
                    echo 
    "

    "
    ;
                    echo 
    "La casella di posta elettronica, [b]" $row['email_utenti'] . "[/b] è già presente nel Database, non ti puoi registrare due volte..";
                    echo 
    "</p>";
                }
            }
            echo 
    "

    "
    ;
            echo 
    "<a href=\"registra.php\">";
            echo 
    "<<< Clicca qui per ritornare alla pagina precedente";
            echo 
    "</a>";
            echo 
    "</p>";
            } else {
            
    $db mysql_connect($db_host$db_user$db_password);
            if (
    $db == FALSE) die ("Non sono riuscito a connettermi al database. Rivedi i parametri del file config.inc.php");
            
    mysql_select_db ($db_name$db) or die ("Non sono riuscito a selezionare il database. Rivedi i parametri del file config.inc.php");

            
    $query "INSERT INTO utenti (nick_utenti, password_utenti, nome_utenti, cognome_utenti, email_utenti, sesso_utenti, indirizzo_utenti, comune_utenti, cap_utenti, provincia_utenti, anniuso_utenti, suono_utenti, dovesuono_utenti, tipomusica_utenti, messaggio_utenti, data_utenti) VALUES ('$utente', '$password', '$nome', '$cognome', '$email_utente', '$sesso', '$indirizzo', '$comune', '$cap', '$provincia', '$anniuso', '$suono', '$dovesuono', '$tipomusica', '$messaggio', NOW())";
            
    $result mysql_query($query) or die ("Errore 2: ".mysql_error());
            
    $id mysql_insert_id();

            
    $temp gettimeofday();
            
    $msec = (int) $temp["usec"];
            
    $msgid md5(time() . $msec);
            
    $db mysql_connect($db_host$db_user$db_password);
            if (
    $db == FALSE) die ("Non sono riuscito a connettermi al database. Rivedi i parametri del file config.inc.php");
            
    mysql_select_db ($db_name$db) or die ("Non sono riuscito a selezionare il database. Rivedi i parametri del file config.inc.php");

            
    $ins_conferma "INSERT INTO conferma (validatore_conferma, userid_conferma) VALUES ('$msgid', '$id')";
            
    $res mysql_query($ins_conferma) or die ("Errore numero 3");

            
    $ins_pannello "INSERT INTO pannello (id_utenti) VALUE ('$id')";
            
    $res mysql_query($ins_pannello) or die ("Errore numero 4");

            
    mysql_close($db);
            }
    ?>
    Ok.. questo è tutto quello ke fà la pagina save.php dopo aver riempito il form di registrazione..

    Se trovate errori.. Ben venga

    Un'altra cosa, le variabili $sesso, $provincia e $suono sono definite come array xke sono delle <select> pero quando le scrivo nel database mi esce "array" invece dell'opzione scelta.. Ke sbaglio???

    Vi amoooooooooooo... azz tutti soci onorari vi metto!!!!

    Grazie
    Questa volta, più che un voto.. è favoreggiamento.

  9. #9
    No, no, devi fare il foreach(...) PRIMA di assegnare, se no agisci su variabili che dopo non usi più!
    anija . è solo un blog
    www.anija.it

    «i'm a fountain of blood · in the shape of a girl»

  10. #10
    Originariamente inviato da Al_katraz984
    Un'altra cosa, le variabili $sesso, $provincia e $suono sono definite come array xke sono delle <select> pero quando le scrivo nel database mi esce "array" invece dell'opzione scelta.. Ke sbaglio???
    Se sono select singole (e credo lo sia a meno che non abbiate valutato la registrazione di ermafroditi e persone dotate del dono dell'ubiquità) non ha senso definirle come array, visto che il valore che ti arriva è solo quello scelto.
    anija . è solo un blog
    www.anija.it

    «i'm a fountain of blood · in the shape of a girl»

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.