Rezultate 1 la 9 din 9

Subiect: Verificarea datelor primite prin $_POST

  1. #1
    Avatarul lui Popescu Marian
    Popescu Marian este deconectat Ambasador
    Reputatie:
    47
    Data înscrierii
    18th April 2007
    Locaţie
    Bucuresti
    Vârstă
    45
    Posturi
    983
    Putere Rep
    47


    Implicit Verificarea datelor primite prin $_POST

    Salut, vreau sa creez o functie care sa verifice datele primite prin $_POST dintr-un formular. Daca un anumit camp nu a fost completat sa afiseze cate un mesaj pentru fiecare camp gol. Vreau sa folosesc functia sub forma asta:
    Cod PHP:
    function is_empty($_POST$camp_obligatoriu1$camp_obligatoriu2) {} 
    $_POST este array-ul cu datele primite iar $camp_obligatoriu1, 2, samd sunt campurile care trebuie sa fie completate.

  2. #2
    Avatarul lui big
    big
    big este deconectat Ambasador
    Reputatie:
    38
    Data înscrierii
    13th July 2007
    Locaţie
    Bucuresti
    Vârstă
    44
    Posturi
    864
    Putere Rep
    38


    Implicit

    Functia php care determina daca un camp e gol e: isset($_POST[$camp_obligatoriu1]);
    Totusi, imo e mai elegant sa verifici datele cu javascript, in momentul in care dai submit si sa dai mesajele corespunzatoare in timp real, ca sa nu mai reincarci pagina pt a lua $_POST.
    Those were fast strange times and we worked in fast strange ways.

  3. #3
    Avatarul lui Alex Dumitru
    Alex Dumitru este deconectat Administrator
    Reputatie:
    64
    Data înscrierii
    20th April 2006
    Locaţie
    Pitesti / Bucuresti
    Vârstă
    37
    Posturi
    3.339
    Putere Rep
    64


    Implicit

    Vezi aici

  4. #4
    Avatarul lui big
    big
    big este deconectat Ambasador
    Reputatie:
    38
    Data înscrierii
    13th July 2007
    Locaţie
    Bucuresti
    Vârstă
    44
    Posturi
    864
    Putere Rep
    38


    Implicit

    Sau poti sa incerci varianta asta (creata pe genunchi, dupa cateva beri, deci nu garantez ):
    presupunand ca form1 este formul tau iar camp1 si camp2 sunt textboxurile necompletate ai asa:

    in header:
    <SCRIPT language="JavaScript">
    function verificaSubmit() {
    if (document.form1.camp1.value=='') {document.getElementById('span1').innerHTML='You really fucked up!'; return false;};
    if (document.form1.camp2.value=='') {document.getElementById('span2').innerHTML='You really fucked up 2!'; return false;};

    };
    </script>

    unde vrei sa afisezi mesajul (de preferat cu rosu, langa textboxul cu eroarea):
    <span id='span1' ></span>
    <span id='span2' ></span>

    in atributele form-ului:
    <form name="form1" enctype="multipart/form-data" action="something.php" method="post" onSubmit="return verificaSubmit();">
    Daca vrei in loc de span colorat (si finut) sa ai pop up (de neam prost) inlocuiesti document.getElementById('span1').innerHTML='You really fucked up!'; cu alert('You really fucked up!');
    Those were fast strange times and we worked in fast strange ways.

  5. #5
    Avatarul lui andyradutza
    andyradutza este deconectat Membru SeoPedia
    Reputatie:
    38
    Data înscrierii
    29th March 2008
    Locaţie
    Bucharest
    Posturi
    146
    Putere Rep
    38


    Implicit

    Nu cred ca e o metoda buna sa folosesti numai validare cu javascript. Urmareste exemplul din acest tutorial, mie mi se pare o metoda mult mai buna si mai sigura, avand in vedere ca validarea se face server-side: PHP Tutorials Examples Validation Class
    Imi place sa ma joc jocuri 3d

  6. #6
    Avatarul lui -Rares-
    -Rares- este deconectat Ambasador
    Reputatie:
    53
    Data înscrierii
    14th May 2009
    Locaţie
    Bucuresti
    Vârstă
    40
    Posturi
    1.623
    Putere Rep
    53


    Implicit

    Man, nu zice nimeni ca folosste numai validare javascript. E vorba despre afisarea mesajelor de eroare. Nimeni sanatos la cap nu ar sari peste o validare server side
    Creștere putere, consum redus și optimizare software motor - servicii profesionale de chiptuning

  7. #7
    Avatarul lui evolution
    evolution este deconectat Membru SeoPedia
    Reputatie:
    40
    Data înscrierii
    29th October 2006
    Locaţie
    Bucuresti
    Posturi
    997
    Putere Rep
    40


    Implicit

    La indemana e solutia lui @big, dar campurile tot trebuie verificate prin PHP pentru cazul rau-voitorilor care dezactiveaza JS si scriu diverse coduri prin inputuri.

    @Alex Dumitru,nu stiam ca te pricepi si la programare

  8. #8
    Avatarul lui Mar
    Mar
    Mar este deconectat Ambasador
    Reputatie:
    34
    Data înscrierii
    3rd January 2008
    Locaţie
    Pitesti
    Vârstă
    49
    Posturi
    318
    Putere Rep
    34


    Implicit

    eu folosesc tehnica honeypot captcha + jquery validation + verific si server side daca am date pe campurile obligatorii - 100% flawless.

  9. #9
    Avatarul lui Gabriel Puscuta
    Gabriel Puscuta este deconectat Ambasador
    Reputatie:
    38
    Data înscrierii
    7th September 2006
    Locaţie
    Sibiu
    Posturi
    786
    Putere Rep
    38


    Implicit

    O varianta simpla ar fi:

    Cod PHP:
    class Input{
        
        static public 
    $index;
        
        public function 
    post($index=NULL){
            
    self::$index $index;
            
            if(
    $index == NULL){
                
    $toret = array();
                
                foreach(
    $_POST as $key => $value){
                    
    $toret[$key] = Input::sanitize(trim($value));
                }
                
                return 
    $toret;
            }
        }
        
        public function 
    sanitize($var,$santype=3){
            switch(
    $santype){
                case 
    1:
                    return 
    strip_tags($var);
                case 
    2:
                    return 
    htmlentities(strip_tags($var), ENT_QUOTES'UTF-8');
                case 
    3:
                    if(!
    get_magic_quotes_gpc())
                        return 
    addslashes(htmlentities(strip_tags($var), ENT_QUOTES'UTF-8'));
                    else
                       return 
    stripslashes(htmlentities(strip_tags($var), ENT_QUOTES'UTF-8'));
                break;
            }
            return 
    FALSE;
        }
        
        public function 
    valid_input($post,$mandatory){
            foreach(
    $mandatory as $key){
                if(!isset(
    $post[$key])){
                    return 
    FALSE;
                }
            }
            
            return 
    TRUE;
        }
        
    }
    $post Input::post();
    if(
    $post){
        
    $mandatory = array('field');
        if(!
    valid_input($post,$mandatory)){
              return 
    FALSE;
        }

    Javascript nu mai scriu ca s-a scris mai sus.

    PS: In cazul in care nu functioneaza clasa de mai sus da un reply, nu am testat-o, am scris-o acum.

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. Backlink-uri primite dupa acelasi IP
    De Ionut D în forumul Google
    Răspunsuri: 20
    Ultimul Post: 5th October 2010, 23:26
  2. Tools pentru verificarea competitiei
    De Prometeu în forumul Google
    Răspunsuri: 2
    Ultimul Post: 14th November 2009, 00:57
  3. Mesaje primite de un portal de stiri
    De Cristian Mezei în forumul Bar, lobby...
    Răspunsuri: 11
    Ultimul Post: 12th March 2009, 15:26
  4. Paypal si verificarea
    De guitz în forumul PayPal
    Răspunsuri: 10
    Ultimul Post: 21st August 2008, 14:42
  5. Completarea Datelor Din Profil
    De Dan.Rades în forumul Discutii administrative
    Răspunsuri: 2
    Ultimul Post: 9th May 2006, 10:52

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •