javascript - How to not update database if $_POST value is empty? -


i have been having problems form of website of mine. form values equal corresponding $_post values, parameters used updating database.

i not want empty form values updated. however, don't want of input areas obligatory.

that means able update specific content, not needing type values in input areas not want update. i'm having problems this, however. empty form values being uploaded, values in database being changed blank values. i've looked tutorials in , on internet, , (functional) ones turn input boxes obligatory. not how intend work, doesn't fit.

i think best way this, , not sure, change, through javascript, "name" attribute of input areas blank when submit button set if values equal empty or null. not know how this, nor know if possible, or best way.

here current code on matter:

(first, form javascript)

<script> function validade(){     var formid = document.getelementbyid("configform");     var allinputs =  formid.getelementsbytagname("input");     var input, i;      (i=0; input = allinputs[i]; i++){         if (input.value == null || input.value == "") {             input.name = "";         }     } } 

<form method="post" action="" id="configform"> <label for="home">home:</label> <br> <input type="text"  id="home" name="home"> <br> <label for="apendix">apêndice:</label> <br> <input type="text" name="apendix"> <br> <label for="about">sobre:</label> <br> <input type="text" name="sobre"> <br> <label for="contato">contato:</label> <br> <input type="text" name="contato"> <br><br> <input type="submit" value="carregar" name="submit"> </form>  <?php require_once('editaforma.php'); ?>  

(secondly, database query , $_post values:)

<?php //credentials if (isset($_post["submit"])){     $server = 'hypotetical';     $user = 'hypotetical';     $pw = 'hypotetical';     $bd = 'hypotetical';      //estabelece conexão     $conn = mysqli_connect($server, $user, $pw, $bd);     if (!$conn) {         die ('<span style="color: #ff0000;">"connection failed: "</span>' .  mysqli_connect_error());     }      $home = $_post["home"];     $apendix = $_post["apendix"];     $sobre = $_post["sobre"];     $contato = $_post ["contato"];      $query = "update form set      home= '$home',     apendix= '$apendix',     sobre= '$sobre',     contato= '$contato'     id='1'";        //$query = "insert form (home, apendix, sobre, contato) values ('$home', '$apendix', '$sobre', '$contato')";      if (mysqli_query($conn, $query)){         echo "alterações feitas com sucesso";     } else {         echo "erro!" . $query . "<br>" . mysqli_error($conn);     }      mysqli_close($conn);  } ?> 

yes, know db prone sql injection. i'm trying , running first, , once of set, i'll onto security matters before website online.

i've been having problem on week , can't figure way out of it.

thank time , attention, in advance.

edit

i wish select 2 answers solving ones. both of them right down led me solving of problem, each helping me see holes in code. cannot choose both, chose 1 helped me solve last issues. thank much!

build query dynamically, skipping empty values

$p = &$_post; //make $p refer $_post  $query = "update set ";  if($p['home'])    $query .= " home = '$p[home]' ,"; if($p['apendix']) $query .= " apendix = '$p[apendix]' ,"; if($p['sobre'])   $query .= " sobre = '$p[sobre]' ,"; if($p['contato']) $query .= " concato = '$p[contato]' ,";  $query = trim($query, ','); //remove trailing comma  $query = "where id = 1"; 

you can execute query. oh , don't forget check @ least 1 of variables available. if they're empty, don't execute.

and yeah, code highly vulnerable.


Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -