rafinos Δημοσ. 1 Ιανουαρίου 2012 Δημοσ. 1 Ιανουαρίου 2012 Χρόνια πολλά και καλή χρονιά σε όλους με υγεία! Παρακάτω έχω ένα jquery σκριπτάκι και ένα php για validate σε εμαιλ.... Μπορεί κάποιος να μου πει γιατί συνεχίζει αν πατηθεί το submit ενώ κανονικά επιστρέφει false; Δηλαδή αν στη φόρμα που τρέχει το σκριπτ δώσω email που υπάρχει στη βάση αυτό κάνει κανονικά redirect... και μου δημιουργεί εγγραφή με ίδιο email... > function validatemail() { if (email.val().length < 1) { $("#ckemail").html("Το email είναι κενό!<br />"); return 1; } else if(email.val().match(/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/)) { $.post("check/check_email.php", { email : email.val() }, function (emailresult) { if (emailresult < 1) { $("#ckemail").html(""); return ''; } else if(emailresult == 1) { $("#ckemail").html("Το email δεν είναι διαθέσιμο!<br />"); return 1; } }); }else { $("#ckemail").html("H μορφή του email δεν είναι έγκυρη!<br />"); return 1; } return ''; } $("#form").submit(function () { var check = validatemail(); if (check == '') { $("#table_check").hide(); return true; } else { $("#table_check").show(); return false; } }); ><?php if (isset($_POST['email'])){ include('connect.php'); $email = mysql_real_escape_string(strtolower($_POST['email'])); $query = mysql_query("SELECT email FROM user_data WHERE email='$email'"); $count = mysql_num_rows($query); if ($count == 1){ echo 1; }else{ echo 0; } } ?>
prekageo Δημοσ. 2 Ιανουαρίου 2012 Δημοσ. 2 Ιανουαρίου 2012 Καλή χρονιά! Είναι λάθος η λογική σου. Το $.post πραγματοποιεί ασύγχρονη κλήση και επιστρέφει πάντα άμεσα. Το callback καλείται όταν έρθει η απάντηση.
rafinos Δημοσ. 2 Ιανουαρίου 2012 Μέλος Δημοσ. 2 Ιανουαρίου 2012 Δεν καταλαβαίνω τι εννοείς... θέλεις να μου το εξηγήσεις λίγο;
prekageo Δημοσ. 3 Ιανουαρίου 2012 Δημοσ. 3 Ιανουαρίου 2012 Δε μπορείς να κάνεις έτσι έλεγχο για διπλότυπες εγγραφές στο email. Τον έλεγχο πρέπει να τον κάνεις server-side και αν βρεθεί διπλότυπο να επιστρέφεις πίσω στη φόρμα με μήνυμα λάθους στο χρήστη. Αν δε θέλεις να το κάνεις με αυτόν τον τρόπο, ο κώδικας Javascript που πρέπει να γράψεις δυσκολεύει αρκετά.
Uberalles_gr Δημοσ. 3 Ιανουαρίου 2012 Δημοσ. 3 Ιανουαρίου 2012 Σωστά το έχεις γράψει με μια πρόχειρη ματιά που έριξα, ΑΝ και δεν δηλώνεις πουθενά το email, δηλαδή γράφεις με την μία email.val().length και λογικά θα πρέπει να σου χτυπάει το javascript. Δεν υπάρχουν errors;; Γιατί όλα μια χαρά τα βλέπω εκτός από αυτό. Για να δεις τι σου επιστρέφει η check/check_email.php, δηλαδή εκεί που ποστάρεις το email για να δεις εάν υπάρχει η όχι κάνε το παρακάτω: Έστω ότι το id από το field που συμπληρώνεις το email στην φόρμα είναι το myemail, τότε γράψε το εξής javascript και κάθε φορά που θα γράφεις κάτι στο field του email θα τρέχει το παρακάτω: > $("#myemail").blur(function() { var email = $(this).val(); if (email.length < 1) { $("#ckemail").html("Το email είναι κενό!<br />"); } else if(email.match(/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/)) { $.post("check/check_email.php", { email : $(this).val() }, function (emailresult) { if (emailresult < 1) { $("#ckemail").html(""); alert("OLA OK!!") } else if(emailresult == 1) { $("#ckemail").html("Το email δεν είναι διαθέσιμο!<br />"); } }); } else { $("#ckemail").html("H μορφή του email δεν είναι έγκυρη!<br />"); } } μόνο όταν σου βγει το alert Που έχω βάλει τότε όλα είναι μια χαρά.
rafinos Δημοσ. 3 Ιανουαρίου 2012 Μέλος Δημοσ. 3 Ιανουαρίου 2012 το κανονικό μου script είναι αυτό ... και κάνει check σε ολόκληρη φόρμα εγγραφής.... έχω ακριβώς το ίδιο πρόβλημα και με το username.... >$(document).ready(function(){ $("#table_check").hide(); var fieldset = $("#fieldset").width(); var x = fieldset - 20; $("#check").css("width", x); var username = $('#username'); var password = $('#password'); var password2 = $('#password2'); var email = $('#email'); var email2 = $('#email2'); var name = $("#name"); var surname = $("#surname"); var year = $("#year"); var month = $("#month"); var day = $("#day"); var fathersname = $('#fathersname'); var placeofdate = $('#placeofdate'); var children = $('#children'); var url = $('#url'); var sex = $("#sex"); function validateusername() { if (username.val().length < 1) { $("#ckusername").html("Το ψευδώνυμο είναι κενό!<br />"); return 1; } else if (username.val().length > 3) { $.post("check/check_username.php", { username : username.val() }, function (result) { if (result < 1) { $("#ckusername").html(""); return ''; } else { $("#ckusername").html("Το ψευδώνυμο δεν είναι διαθέσιμο!<br />"); return 1; } }); } else { $("#ckusername").html("Το ψευδώνυμο πρέπει να αποτελείται τουλάχιστον από 4 χαρακτήρες!<br />"); return 1; } return ''; } function validatemail() { if (email.val().length < 1) { $("#ckemail").html("Το email είναι κενό!<br />"); return 1; } else if(email.val().match(/^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/)) { $.post("check/check_email.php", { email : email.val() }, function (emailresult) { if (emailresult < 1) { $("#ckemail").html(""); return ''; } else if(emailresult == 1) { $("#ckemail").html("Το email δεν είναι διαθέσιμο!<br />"); return 1; } }); }else { $("#ckemail").html("H μορφή του email δεν είναι έγκυρη!<br />"); return 1; } return ''; } function validatemail2() { if (email2.val().length < 1) { $("#ckemail2").html("Η επαλήθευση του email είναι κενή<br />"); return 1; } else if (email2.val() != email.val()) { $("#ckemail2").html("Η επαλήθευση του email δεν είναι σωστή!<br />"); return 1; } else { $("#ckemail2").html(""); return ''; } } function validatepassword(){ if (password.val().length<1){ $("#ckpassword").html("Ο κωδικός είναι κενός!<br />"); return 1; }else if (password.val().length<5){ $("#ckpassword").html("Ο κωδικός είναι μικρός!<br />"); return 1; }else if(password.val().length>=5){ if((password.val().match(/\d+/)) && (password.val().match(/[a-z]/)) || (password.val().match(/[A-Z]/))){ if(password.val() == username.val()){ $("#ckpassword").html("Ο κωδικός δεν πρέπει να είναι ίδιος με το ψευδώνυμο!<br />"); return 1; }else{ $("#ckpassword").html(""); return ''; } }else{ $("#ckpassword").html("Ο κωδικός πρέπει να περιέχει τουλάχιστον ένα γράμμα και έναν αριθμό!<br />"); return 1; } } } function validatepassword2(){ if(password2.val().length<1){ $("#ckpassword2").html("Η επαλήθευση του κωδικού είναι κενή!<br />"); return 1; }else if(password2.val() != password.val()){ $("#ckpassword2").html("Η επαλήθευση του κωδικού δεν είναι σωστή!<br />"); }else if(password2.val() == password.val()){ $("#ckpassword2").html(""); return ''; } } function validatename(){ if(name.val().length<1){ $("#ckname").html("Το όνομα είναι κενό!<br />"); return 1; }else if(name.val().length<5){ $("#ckname").html("Το όνομα πρέπει να αποτελείται τουλάχιστον από 5 χαρακτήρες<br />"); return 1; }else{ $("#ckname").html(""); return ''; } } function validatesurname(){ if(surname.val().length<1){ $("#cksurname").html("Το επώνυμο είναι κενό!<br />"); return 1; }else if(surname.val().length<5){ $("#cksurname").html("Το επώνυμο πρέπει να αποτελείται τουλάχιστον από 5 χαρακτήρες<br />"); return 1; }else{ $("#cksurname").html(""); return ''; } } function validatedate(){ if(day.val() == 0 || month.val() == 0 || year.val() == 0){ $("#ckdate").html("Η ημερομηνία δεν είναι σωστή<br />"); return 1; }else{ $("#ckdate").html(""); return ''; } } function validatefathersname() { if(fathersname.val().length < 1){ $("#ckfathersname").html(""); return ''; }else if (fathersname.val().length > 0 ) { if(fathersname.val().length < 5){ $("#ckfathersname").html("Το πατρώνυμο πρέπει να αποτελείται τουλάχιστον από 5 χαρακτήρες!<br />"); return 1; } else { $("#ckfathersname").html(""); return ''; } } } function validateplaceofdate(){ if(placeofdate.val().length < 1){ $("#ckplaceofdate").html(""); return ''; }else if(placeofdate.val().length>0){ if(placeofdate.val().length < 3){ $("#ckplaceofdate").html("Ο τόπος γέννησης πρέπει να αποτελείται τουλάχιστον από 3 χαρακτήρες!<br />"); return 1; }else{ $("#ckplaceofdate").html(""); return ''; } } } function validateurl(){ if(url.val().length < 1){ $("#ckurl").html(""); return ''; }else if(url.val().length > 0){ if(url.val().match("^(http:\/\/|https:\/\/|http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([0-9A-Za-z]+\.)")){ $("#ckurl").html(""); return ''; }else{ $("#ckurl").html("Ο τιμή του ιστότοπου δεν είναι έγκυρη!<br />"); return 1; } } } function validatechildren(){ if(children.val().length < 1){ $("#ckchildren").html(""); return ''; } else if(children.val().length >0){ if(children.val().match("^[0-9\]+$")){ $("#ckchildren").html(""); return ''; }else{ $("#ckchildren").html("Το πεδίο 'Παιδιά' πρέπει να αποτελείται μόνο από αριθμούς!</br />"); return 1; } } } function validatesex(){ if(sex.val() == 0){ $("#cksex").html("Δεν έχει επιλεχτεί φύλο!<br />"); return 1; }else{ $("#cksex").html(""); return ''; } } $("#form").submit(function () { var check = validateusername(); check += validatemail(); check += validatemail2(); check += validatepassword(); check += validatepassword2(); check += validatename(); check += validatesurname(); check += validatefathersname(); check += validatedate(); check += validateplaceofdate(); check += validatesex(); check += validateurl(); check += validatechildren(); if (check == '') { $("#table_check").hide(); return true; } else { $("#table_check").show(); return false; } }); $("#reset").click(function(){ $('#username').val(''); $('#password').val(''); $('#password2').val(''); $('#email').val(''); $('#email2').val(''); $("#name").val(''); $("#surname").val(''); $("#year").val(0); $("#month").val(0); $("#day").val(0); $("#fathersname").val(''); $("#placeofdate").val(''); $("#sex").val(0); $("#url").val(''); $("#children").val(''); $("#kids").hide(); $("input[name=married]:radio").prop('checked', false); $("#ckusername").text(''); $("#ckpassword").text(''); $("#ckpassword2").text(''); $("#ckemail").text(''); $("#ckemail2").text(''); $("#ckname").text(''); $("#cksurname").text(''); $("#ckdate").text(''); $("#ckfathersname").text(''); $("#ckplaceofdate").text(''); $("#cksex").text(''); $("#ckurl").text(''); $("#ckchildren").text(''); $("#table_check").hide(); $('html, body').animate({scrollTop: '0px'}, 300); return false; }); });
Uberalles_gr Δημοσ. 3 Ιανουαρίου 2012 Δημοσ. 3 Ιανουαρίου 2012 Κάνε αυτό που σου είπα. Δες τι σου γυρνάει το ajax που κάνεις.
prekageo Δημοσ. 4 Ιανουαρίου 2012 Δημοσ. 4 Ιανουαρίου 2012 Δεν έχεις κατανοήσει πλήρως πως λειτουργεί το AJAX. Σε γενικές γραμμές γίνεται το εξής: Καλείς την $.post("check/check_email.php", foo, bar). Η κλήση επιστρέφει αμέσως και εκτελείται η επόμενη εντολή. Στο παράδειγμά σου return ''. Ο browser στέλνει ένα HTTP POST request στο server. Ο server απαντάει στο request σου. Καλείται η συνάρτηση που έχεις περάσει σαν παράμετρο στην $.post. Στο παράδειγμά σου η συνάρτηση κάνει κάποια return τα οποία όμως χάνονται.
Uberalles_gr Δημοσ. 4 Ιανουαρίου 2012 Δημοσ. 4 Ιανουαρίου 2012 Δεν έχεις κατανοήσει πλήρως πως λειτουργεί το AJAX. Σε γενικές γραμμές γίνεται το εξής: Καλείς την $.post("check/check_email.php", foo, bar). Η κλήση επιστρέφει αμέσως και εκτελείται η επόμενη εντολή. Στο παράδειγμά σου return ''. Ο browser στέλνει ένα HTTP POST request στο server. Ο server απαντάει στο request σου. Καλείται η συνάρτηση που έχεις περάσει σαν παράμετρο στην $.post. Στο παράδειγμά σου η συνάρτηση κάνει κάποια return τα οποία όμως χάνονται. Νομίζω ότι κάνεις λάθος, και η σειρά είναι η παρακάτω Καλείς την $.post("check/check_email.php", foo, bar). Ο browser στέλνει ένα HTTP POST request στο server. Ο server απαντάει στο request σου. Καλείται η συνάρτηση που έχεις περάσει σαν παράμετρο στην $.post. Τέλος, εκτελείται ότι υπάρχει μέσα στην συνάρτηση, δηλαδή το $("#ckemail").html και η return. Ας με διορθώσει κάποιος.
defacer Δημοσ. 4 Ιανουαρίου 2012 Δημοσ. 4 Ιανουαρίου 2012 Νομίζω ότι κάνεις λάθος, και η σειρά είναι η παρακάτω Καλείς την $.post("check/check_email.php", foo, bar). Ο browser στέλνει ένα HTTP POST request στο server. Ο server απαντάει στο request σου. Καλείται η συνάρτηση που έχεις περάσει σαν παράμετρο στην $.post. Τέλος, εκτελείται ότι υπάρχει μέσα στην συνάρτηση, δηλαδή το $("#ckemail").html και η return. Ας με διορθώσει κάποιος. Όχι, καλά τα λέει. Κι εσύ καλά τα λες, αλλά δεν αναφέρεστε στο ίδιο πράγμα. Όταν λέει "εκτελείται η return ''", εννοεί αυτή στο τέλος της validateusername(), όχι αυτή που είναι μέσα στο callback. Δεν είναι δυνατόν να γραφτεί ο κώδικας ως έχει, το return μέσα από την callback της $.post δεν έχει κανένα νόημα γιατί όταν αυτή εκτελεστεί η validateusername() θα έχει ήδη επιστρέψει προ πολλού. Απλά αυτό που προσπαθεί να κάνει ο OP (να εμποδίσει την υποβολή της φόρμας κάνοντας κάτι validate στον server) είναι λάθος σα λογική. Θα πρέπει η φόρμα κατ' αρχήν να υποβάλλεται κανονικά άσχετα με το αν είναι αποδεκτό το email ή όχι -- αν δεν είναι, θα πρέπει ο server να την απορρίπτει και να σε επιστρέφει πίσω σ' αυτή για πραγματοποίηση αλλαγών. Διαφορετικά "οποιοσδήποτε" μπορεί να στείλει μια POST "με το χέρι" και να κάνει αυτό που προσπαθείς εδώ να αποφύγεις. Πάντα πρέπει το validation να γίνεται στον server (ή και στον server). Απο κει και πέρα, μπορείς να βάλεις το validation και με AJAX για διευκόλυνση. Η ιδέα είναι ότι παρακολουθείς τις αλλαγές στο πεδίο (π.χ. με handler στο blur event) και κάνεις κανονικά τον έλεγχο. Αν και όταν ο server απαντήσει, θέτεις κάπου ένα flag σχετικά με το αν το πεδίο είναι valid ή όχι και ελέγχεις αυτό το flag μέσα στη submit. Δεν δίνω κώδικα γιατί βασικά θα πρέπει να ξαναγραφτεί όλο από την αρχή. Αλλά έχω μια απορία: πριν γραφτούν όλα αυτά με το χέρι, μήπως είναι καλό να κάνουμε ένα google για "jQuery validation"?
Uberalles_gr Δημοσ. 4 Ιανουαρίου 2012 Δημοσ. 4 Ιανουαρίου 2012 Παραθέτω έναν κώδικα, όπου υπάρχει μία φόρμα με Username, Password και Re-Password και κάνω με jquery τους παρακάτω ελέγχους Εάν έχει συμπληρώσει το Username Εάν υπάρχει ήδη το Username Εάν έχει συμπληρώσει το password και να είναι μεγαλύτερο από 3 χαρακτήρες Εάν έχει συμπληρώσει το Re-Password Εάν το Password ταιριάζει με το Re-Password και ορίστε και ο κώδικας > <script language="javascript" type="text/javascript"> $(document).ready(function() { $("#cl_username").blur(function() { document.getElementById("hidden_username").value = "false"; //remove all the class add the messagebox classes and start fading $("#msgbox_username").removeClass().addClass('messagebox').html('<img src="../images/ajax-loader.gif" border="0" align="absmiddle" /> Έλεγχος...').fadeIn("slow"); var username = $("#cl_username").val(); if(username.length > 0) { //check the username exists or not from ajax $.post("../ajax_php/availability_username.php",{ username:$(this).val() , type:"add_client" } ,function(data) { if(data == "NO") //if username not avaiable { $("#msgbox_username").fadeTo(200,0.1,function() //start fading the messagebox { //add message and change the class of the box and start fading $(this).html('<img src="../images/error.png" border="0" align="absmiddle" /> Υπάρχει ήδη!').addClass('messageboxerror').fadeTo(900,1); }); } else { $("#msgbox_username").fadeTo(200,0.1,function() //start fading the messagebox { //add message and change the class of the box and start fading $(this).html('<img src="../images/tick.gif" border="0" align="absmiddle" />').addClass('messageboxok').fadeTo(900,1); }); document.getElementById("hidden_username").value = "true"; } }); } else { $("#msgbox_username").fadeTo(200,0.1,function() //start fading the messagebox { //add message and change the class of the box and start fading $(this).html('<img src="../images/error.png" border="0" align="absmiddle" /> Συμπληρώστε το πεδίο!').addClass('messageboxerror').fadeTo(900,1); }); } }); $("#cl_password").blur(function() { document.getElementById("hidden_password").value = "false"; $("#msgbox_password").removeClass().addClass('messagebox').html('<img src="../images/ajax-loader.gif" border="0" align="absmiddle" /> Έλεγχος...').fadeIn("slow"); var password = $("#cl_password").val(); if (password.length == 0) { $("#msgbox_password").fadeTo(200,0.1,function() { $(this).html('<img src="../images/error.png" border="0" align="absmiddle" /> Συμπληρώστε το πεδίο!').addClass('messageboxerror').fadeTo(900,1); }); } else if (password.length < 4) { $("#msgbox_password").fadeTo(200,0.1,function() { $(this).html('<img src="../images/error.png" border="0" align="absmiddle" /> Πρέπει να είναι μεγαλύτερο από 3 χαρακτήρες!').addClass('messageboxerror').fadeTo(900,1); }); } else { $("#msgbox_password").fadeTo(200,0.1,function() { $(this).html('<img src="../images/tick.gif" border="0" align="absmiddle" />').addClass('messageboxok').fadeTo(900,1); }); document.getElementById("hidden_password").value = "true"; var re_password = $("#re_cl_password").val(); if (re_password.length > 0) { $("#msgbox_re_password").removeClass().addClass('messagebox').html('<img src="../images/ajax-loader.gif" border="0" align="absmiddle" /> Έλεγχος...').fadeIn("slow"); if (password == re_password) { $("#msgbox_re_password").fadeTo(200,0.1,function() { $(this).html('<img src="../images/tick.gif" border="0" align="absmiddle" />').addClass('messageboxok').fadeTo(900,1); }); document.getElementById("hidden_re_password").value = "true"; } else { $("#msgbox_re_password").fadeTo(200,0.1,function() { $(this).html('<img src="../images/error.png" border="0" align="absmiddle" /> Δεν είναι το ίδιο με το password!').addClass('messageboxerror').fadeTo(900,1); }); } } } }); $("#re_cl_password").blur(function() { document.getElementById("hidden_re_password").value = "false"; $("#msgbox_re_password").removeClass().addClass('messagebox').html('<img src="../images/ajax-loader.gif" border="0" align="absmiddle" /> Έλεγχος...').fadeIn("slow"); var re_password = $("#re_cl_password").val(); if (re_password.length == 0) { $("#msgbox_re_password").fadeTo(200,0.1,function() { $(this).html('<img src="../images/error.png" border="0" align="absmiddle" /> Συμπληρώστε το πεδίο!').addClass('messageboxerror').fadeTo(900,1); }); } else if (re_password == $("#cl_password").val()) { $("#msgbox_re_password").fadeTo(200,0.1,function() { $(this).html('<img src="../images/tick.gif" border="0" align="absmiddle" />').addClass('messageboxok').fadeTo(900,1); }); document.getElementById("hidden_re_password").value = "true"; } else { $("#msgbox_re_password").fadeTo(200,0.1,function() { $(this).html('<img src="../images/error.png" border="0" align="absmiddle" /> Δεν είναι το ίδιο με το password!').addClass('messageboxerror').fadeTo(900,1); }); } }); $("form").submit(function() { var hidden_username = $("#hidden_username").val(); var hidden_password = $("#hidden_password").val(); var hidden_re_password = $("#hidden_re_password").val(); if (hidden_username == "true" && hidden_password == "true" && hidden_re_password == "true") { return true; } else { alert("Παρακαλώ συμπληρώστε όλα τα υποχρεωτικά πεδία!"); return false; } }); }); </script> <?php if (isset($_GET['po'])) { $po = mysql_real_escape_string($_GET['po']); switch($po) { case 1: echo "<div align='center' style='font-size:12px; font-family:Verdana; color:#0000FF; padding-bottom:5px;'>Η προσθήκη έγινε με επιτυχία!</div>"; break; case 2: echo "<div align='center' style='font-size:12px; font-family:Verdana; color:#FF0000; padding-bottom:5px;'>Παρουσίαστηκε σφάλμα κατά την εισαγωγή των δεδομένων!<br />Η εισαγωγή δεν έγινε με επιτυχία!</div>"; break; } } ?> <div class="page_title">Προσθήκη Client</div> <form method="post" action="main.php?page=103"> <div class="toolbar_container"><a href="main.php?page=101" title="Επιστροφή"><img src="../images/back.png" border="0" alt="Επιστροφή" title="Επιστροφή" /></a></div> <table cellpadding="3" cellspacing="0" border="0"> <tr> <td align="right">Username:</td> <td align="left"><input type="text" name="cl_username" id="cl_username" value="" /> <span style="color:#FF0000">*</span> <span id="msgbox_username" style="display:none"></span></td> </tr> <tr> <td align="right">Password:</td> <td align="left"><input type="password" name="cl_password" id="cl_password" value="" /> <span style="color:#FF0000">*</span> <span id="msgbox_password" style="display:none"></span></td> </tr> <tr> <td align="right">Re-Password:</td> <td align="left"><input type="password" name="re_cl_password" id="re_cl_password" value="" /> <span style="color:#FF0000">*</span> <span id="msgbox_re_password" style="display:none"></span></td> </tr> <tr> <td colspan="2" align="center" style="padding-top:15px;"><input type="submit" value="Προσθήκη" onmouseover="this.style.cursor='pointer'" title="Προσθήκη" /></td> </tr> </table> <input type="hidden" name="hidden_username" id="hidden_username" value="false" disabled="disabled" /> <input type="hidden" name="hidden_password" id="hidden_password" value="false" disabled="disabled" /> <input type="hidden" name="hidden_re_password" id="hidden_re_password" value="false" disabled="disabled" /> </form> παρακάτω είναι οι κλάσσεις που χρησιμοποιώ για το css όταν ελέγχω το κάθε πεδίο > .messagebox { position:absolute; width:100px; margin-left:10px; padding:0px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 11px; padding:2px; } .messageboxok { position:absolute; width:auto; margin-left:10px; padding:0px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 11px; padding:2px; } .messageboxerror { position:absolute; width:auto; margin-left:10px; padding:0px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 11px; padding:2px; color:#FF0000; } και τέλος και η availability_username.php που χρησιμοποιώ στο post μου για τον έλεγχο του username > <?php include("../config.php"); if (isset($_POST['username']) && isset($_POST['type'])) { $username = mysql_real_escape_string($_POST['username']); $type = mysql_real_escape_string($_POST['type']); if ($type == "add_client") { $find = mysql_query("SELECT cl_username FROM clients WHERE cl_username = '".$username."' "); if (mysql_num_rows($find) > 0) { echo "NO"; } else { echo "OK"; } } else if ($type == "edit_client") { $cl_id = mysql_real_escape_string($_POST['cl_id']); $find = mysql_query("SELECT cl_username FROM clients WHERE cl_id != '".$cl_id."' AND cl_username = '".$username."' "); if (mysql_num_rows($find) > 0) { echo "NO"; } else { echo "OK"; } } else { echo "NO"; } } ?> Ουσιαστικά, χρησιμοποιώ hidden μεταβλητές όπως είπε και ο defacer για το κάθε πεδίο που θέλω να ελέγχω Όπου κολλήσεις ή κάτι δεν καταλαβαίνεις στον κώδικα πες μου
rafinos Δημοσ. 4 Ιανουαρίου 2012 Μέλος Δημοσ. 4 Ιανουαρίου 2012 @deface Φυσικά και έχω ψάξει για validation απλά θέλω να κάνω κάτι δικό μου μπας και αρχίσω να στροφάρω σιγά σιγά Σας ευχαριστώ πάρα πολύ όλους!!! αλλά ένα μεγαλύτερο ευχαριστώ στον Uberalles_gr γιατί κάθησε και έγραψε τον κώδικα να στε καλά!!! κάποια πράγματα που δεν καταλαβαίνω.... > else if ($type == "edit_client") { $cl_id = mysql_real_escape_string($_POST['cl_id']); $find = mysql_query("SELECT cl_username FROM clients WHERE cl_id != '".$cl_id."' AND cl_username = '".$username."' "); if (mysql_num_rows($find) > 0) { echo "NO"; } else { echo "OK"; } } else { echo "NO"; } αυτό γιατί υπάρχει;;;; μάλλον γίνεται check και από άλλο script ε; και επίσης αυτό >if (isset($_GET['po'])) { $po = mysql_real_escape_string($_GET['po']); switch($po) { case 1: echo "<div align='center' style='font-size:12px; font-family:Verdana; color:#0000FF; padding-bottom:5px;'>Η προσθήκη έγινε με επιτυχία!</div>"; break; case 2: echo "<div align='center' style='font-size:12px; font-family:Verdana; color:#FF0000; padding-bottom:5px;'>Παρουσίαστηκε σφάλμα κατά την εισαγωγή των δεδομένων!<br />Η εισαγωγή δεν έγινε με επιτυχία!</div>"; break; } } το $_GET['po'] από που προκύπτει;;; και επίσης το πρόβλημα που είχα τόσο καιρό..... και συνεχίζω να το έχω... μπαίνει μόνο στο else... με λίγα λόγια αυτό: >document.getElementById("hidden_username").value = "true"; για κάποιο λόγο δεν λειτουργεί
Uberalles_gr Δημοσ. 4 Ιανουαρίου 2012 Δημοσ. 4 Ιανουαρίου 2012 Τον κώδικα τον είχα απλώς στον πόσταρα εδώ για να καταλάβεις καλύτερα. Για το 1ο κομμάτι κώδικα, πράγματι το χρησιμοποιώ για το edit του χρήστη ενώ το δεύτερο κομμάτι κώδικα το χρησιμοποιώ όταν έχω καλέσει την σελίδα για να αποθηκεύσω τα δεδομένα και μου έχει επιστρέψει είτε 1 ή 2. Το τελευταίο που λες δεν το κατάλαβα.....
rafinos Δημοσ. 4 Ιανουαρίου 2012 Μέλος Δημοσ. 4 Ιανουαρίου 2012 το hidden όντως αλλάζει σε true τελικά το έλεγξα απλά δεν θα έπρεπε να κάνει redirect η σελίδα εφόσον είναι όλα "true"???? για παράδειγμα αν είναι όλα οκ συνεχίζει και μου βγάζει το alert...
Uberalles_gr Δημοσ. 4 Ιανουαρίου 2012 Δημοσ. 4 Ιανουαρίου 2012 Στον δικό σου κώδικα ή σε αυτό που σου έδωσα εγώ;
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα