server side validation

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
mariospapa
Δημοσιεύσεις: 33
Εγγραφή: 01 Αύγ 2010 18:11

server side validation

Δημοσίευση από mariospapa » 18 Ιαν 2011 14:33

Πως μπορώ να γράψω ένα απλό script σε php προκειμένου να ελέγξω αν το e-mail που εισάγει κάποιος σε ένα πεδίο μιας φόρμας, υπάρχει ήδη καταχωρημένο στον πίνακα της βάσης δεδομένων που αποθηκεύονται όλα τα στοιχεία μιας φόρμας;

Δηλαδή:

Έχω την Form0 η οποία έχει σε κάποιο πεδίο της ένα textbox με την μεταβλητή Email και έχω επίσης την Database και τον Table0 ο οποίος έχει στήλες Name και Email στον οποίο αποθηκεύονται τα στοιχεία από την Form0. Πως θα ελέγξω αν το συγκεκριμένο Email που εισάγεται κάθε φορά που συμπληρώνεται η Form0, οτι υπάρχει καταχωρημένο στον Table0 προκειμένου να αποτρέψω την διπλή αποστολή της συγκεκριμένης φόρμας;
Τελευταία επεξεργασία από το μέλος mariospapa την 18 Ιαν 2011 16:40, έχει επεξεργασθεί 1 φορά συνολικά.

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

server side validation

Δημοσίευση από pimpogio » 18 Ιαν 2011 16:01

αν το θες για τιποτα contact form δες το PRG pattern

http://en.wikipedia.org/wiki/Post/Redirect/Get

αλλιως πρεπει να κανεις ελεγχους

mariospapa
Δημοσιεύσεις: 33
Εγγραφή: 01 Αύγ 2010 18:11

server side validation

Δημοσίευση από mariospapa » 18 Ιαν 2011 16:15

pimpogio έγραψε:αν το θες για τιποτα contact form δες το PRG pattern

http://en.wikipedia.org/wiki/Post/Redirect/Get

αλλιως πρεπει να κανεις ελεγχους
Δε μπορώ να το χρησιμοποιήσω αυτό. Θέλω κώδικα σε PHP γραμμένο με τον έλεγχο του συγκεριμένου πεδίου!

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

server side validation

Δημοσίευση από Khronos » 18 Ιαν 2011 16:21

Τελικά τι ακριβώς θέλεις?
Να αποτρέψεις το διπλό submit της φόρμας ή να κάνεις έλεγχο για το αν υπάρχει ήδη κάποιο email στη βάση?

mariospapa
Δημοσιεύσεις: 33
Εγγραφή: 01 Αύγ 2010 18:11

server side validation

Δημοσίευση από mariospapa » 18 Ιαν 2011 16:39

Khronos έγραψε:Τελικά τι ακριβώς θέλεις?
Να αποτρέψεις το διπλό submit της φόρμας ή να κάνεις έλεγχο για το αν υπάρχει ήδη κάποιο email στη βάση?

Να κάνω αρχικώς τον έλεγχο αν υπάρχει ήδη κάποιο e-mail στη βάση... και σε δεύτερη φάση να αποτρέψω το re-submission της φόρμας αν το e-mail αυτό είναι ήδη καταχωρημένο!

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

server side validation

Δημοσίευση από pimpogio » 18 Ιαν 2011 16:55

κανε ελεγχο σε server side(αν θες και με ajax)
και μετα κανε PRG.

υπαρχει και αλλο pattern για το repost οπου βαζεις
tokken στη form

mariospapa
Δημοσιεύσεις: 33
Εγγραφή: 01 Αύγ 2010 18:11

server side validation

Δημοσίευση από mariospapa » 18 Ιαν 2011 17:25

pimpogio έγραψε:κανε ελεγχο σε server side(αν θες και με ajax)
και μετα κανε PRG.

υπαρχει και αλλο pattern για το repost οπου βαζεις
tokken στη form
Αυτόν τον έλεγχο δε ξέρω να κάνω... τόσο σκοτεινός είμαι σ'αυτά που γράφω; Νομίζω ότι έθεσα σωστά αυτό που θέλω! Μπορεί να μου δείξει κάποιος την διαδικασία αυτή του validation;

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

server side validation

Δημοσίευση από pimpogio » 18 Ιαν 2011 17:41

mariospapa έγραψε: Αυτόν τον έλεγχο δε ξέρω να κάνω... τόσο σκοτεινός είμαι σ'αυτά που γράφω; Νομίζω ότι έθεσα σωστά αυτό που θέλω! Μπορεί να μου δείξει κάποιος την διαδικασία αυτή του validation;
δωσε το σχημα του πινακα που κρατας τα mails

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

server side validation

Δημοσίευση από Khronos » 18 Ιαν 2011 17:45

Πολύ χονδρικά.

Κώδικας: Επιλογή όλων

$res = mysql_query("SELECT id FROM table WHERE email = '". $_POST['email']."') or die(mysql_error());

if(mysql_num_rows($res) == 0) {
    //code to insert row to database
}
else {
    //echo 'user already exists';
}

mariospapa
Δημοσιεύσεις: 33
Εγγραφή: 01 Αύγ 2010 18:11

server side validation

Δημοσίευση από mariospapa » 18 Ιαν 2011 18:38

Khronos έγραψε:Πολύ χονδρικά.

Κώδικας: Επιλογή όλων

$res = mysql_query("SELECT id FROM table WHERE email = '". $_POST['email']."') or die(mysql_error());

if(mysql_num_rows($res) == 0) {
    //code to insert row to database
}
else {
    //echo 'user already exists';
}

Κάτι τέτοιο ζητούσα... Σ'ευχαριστώ.... θα το εμπλουτίσω για να δω πως λειτουργεί!

mariospapa
Δημοσιεύσεις: 33
Εγγραφή: 01 Αύγ 2010 18:11

server side validation

Δημοσίευση από mariospapa » 19 Ιαν 2011 01:36

Δημιούργησα αυτόν τον κώδικα σε php προκειμένου να ελέγχει αν το e-mail που καταχωρείται σε μια φόρμα προς υποβολή υπάρχει ήδη ή είναι νέο:

Κώδικας: Επιλογή όλων

<?php
mysql_connect &#40;"localhost", "user","password"&#41;  or die &#40;mysql_error&#40;&#41;&#41;;
mysql_select_db &#40;"database"&#41;;

$checkmail = $_POST&#91;'email'&#93;;
$res = mysql_query&#40;"SELECT email FROM Table1 WHERE email = '$checkmail'&#41;;

if&#40;mysql_num_rows&#40;$res&#41; != 0&#41; &#123;
    echo 'You have already submit the current form';
&#125;
?>
Δε λειτουργεί όμως. Μήπως μπορεί να βρει κανένας τι φταίει;

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

server side validation

Δημοσίευση από dva_dev » 19 Ιαν 2011 08:36

Πρακτικό (όσο είναι αρχή ακόμα) είναι όταν ανοίγουμε τα εισαγωγικά να τα κλείνουμε αμέσως για να μην τα ξεχάσουμε και να βάλουμε εκεί μέσα ότι θέλουμε.

Εχεις το 1ο statement και κάτι σαν το 2ο θα του αρέσει περισσότερο.

Κώδικας: Επιλογή όλων

$res = mysql_query&#40;"SELECT email FROM Table1 WHERE email = '$checkmail'&#41;; 
$res = mysql_query&#40;"SELECT email FROM Table1 WHERE email = '$checkmail'"&#41;; 

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες