newman33 Δημοσ. 15 Μαρτίου 2015 Δημοσ. 15 Μαρτίου 2015 Καλησπερα παιδια εχω φτιαξει μια φορμα για εγγραφη επισης εχω φτιαξει και μια βαση δεδομενων για να αποθηκευονται τα στοιχεια απο την φορμα ολα καλα μεχρι εδω...τωρα θελω να φτιαξω στην φορμα να πεταει με κοκκινο χρωμα αν ο χρηστης δεν εχει συμπληρωση ολα τα πεδια απο την φορμα μου να του βγαζει μηνυμα λαθους να το κανω με php η γινεται και με html μονο εσεις τι λετε? 1
arc Δημοσ. 15 Μαρτίου 2015 Δημοσ. 15 Μαρτίου 2015 Μόνο με html δεν γίνεται. Το λιγοτερο που χρειάζεσαι ειναι php. Αν θέλεις να βάλεις επιπλέον έλεγχο (πέρα απο την php) και θές animations, φρουφρου, κλπ τοτε βάζει και javascript. Μόνο javascript απαγορευεται γιατί ο κακόβουλος μπορεί να απενεργοποιήσει τη javascript και να στείλει οτι θέλει στη βάση (no no no)
Websitepro Δημοσ. 15 Μαρτίου 2015 Δημοσ. 15 Μαρτίου 2015 Να υποθέσω ότι για να γράφεις δεδομένα στην βάση έχεις χρησιμοποιήσει php. Όπως σου έγραψε παραπάνω ο φίλος θα χρειαστείς και java για (μηνύματα λάθους, αστεράκια στα υποχρεωτικά πεδία) και για να κάνεις έλεγχο στα πεδία. Καλό θα ήταν να παραθέσεις τον κώδικα για να μπορέσουμε να σε βοηθήσουμε παραπάνω.
newman33 Δημοσ. 15 Μαρτίου 2015 Μέλος Δημοσ. 15 Μαρτίου 2015 <?phpif ($_POST && isset($_POST['name'],$_POST['lname'],$_POST['pass1'],$_POST['pass2'])== "submit"){ $name = $_POST['name']; $lname = $_POST['lname']; $email = $_POST['email']; $pass1 = $_POST['pass1']; $pass2 = $_POST['pass2']; if(!$name){ echo $errorMsg = "Please enter your name"; } } $servername = "localhost"; $user = "root"; $pass = ""; $dbname = "site"; $conn = mysqli_connect($servername, $user,$pass,$dbname); if (!$conn) { die("Connection failed: " . mysqli_connect_error());}$sql = "INSERT INTO egrrafh (firstname, lastname, email,password,password2)VALUES ('$name', '$lname', '$email','$pass1','$pass2')";echo "<br>";echo "<a href = 'sign_in.html'> Go to sign_in</a>";$result=mysqli_query($conn, $sql);if ($result){echo "<h2>H εγγραφη στο site μας εγινε επιτυχως</h2>"; οταν δεν βαλω ονομα στην φορμα μου με πεταει εδω γιατι?} επισης και οταν βαζω ονομα παλη με πεταει εδω οπου ειναι το λογικοmysqli_close($conn); εγω θελω στην φορμα μου να μου φγαζει κοκκινο σαν προειδοποιησει!!!?> η φορμα <html><head><title>Mysite</title><link rel="stylesheet" href="site.css"/></head><body><div id="eggrafh"><h2>Eγγραφη </h2><form action="dbsentsite.php" method="POST"><p><label for="name">Oνομα:</label><input type="text" size="29" name="name"/></p><p><label for="lastname">Επωνυμο:</label><input type="text" size="29" name="lname"></p><p><label for="email">email:</label><input type="text" size="29" name="email"/></p><p><label for="password">Κωδικος:</label><input type="password" size="29" name="pass1"/></p><p><label for="password2">Εππαληθευση κωδικου:</label><input type="password" size="29" name="pass2"/></p><input type="submit" name="submit" value="Εγγραφη"/></body></html>
libereas Δημοσ. 15 Μαρτίου 2015 Δημοσ. 15 Μαρτίου 2015 αντί για $name = $_POST['name']; Μπορείς να κάνεις κάτι τέτοιο απλό if (preg_match ('%^[-_a-zA-Z ]{6,30}$%', stripslashes(trim($_POST['name'])))) { $name= mysql_real_escape_string($_POST['name']); } else { $name= FALSE; echo '<p><font color="red" size="+1">Please enter a valid last name!</font></p>'; } που του ζητάς να βάλει απλά ένα όνομα από 6 χαρακτήρες και πάνω ή κάτι πιο σύνθετο if (preg_match ('%\A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])\S{8,}\z%', stripslashes(trim($_POST['name'])))) { $name= mysql_real_escape_string($_POST['name']); } else { $name= FALSE; echo '<p><font color="red" size="+1">Please enter a valid name!</font></p>'; } που ζητάς υποχρεωτικά κεφαλαία γράμματα μικρά και αριθμούς από 8 χαρακτήρες και πάνω
arc Δημοσ. 16 Μαρτίου 2015 Δημοσ. 16 Μαρτίου 2015 οταν δεν βαλω ονομα στην φορμα μου με πεταει εδω γιατι? επισης και οταν βαζω ονομα παλη με πεταει εδω οπου ειναι το λογικο Όπως είναι ο κώδικας σου, η εντολή καταχώρησης στη βάση θα εκτελεστεί ακόμα κι αν ο χρήστης δεν εισάγει τίποτα (ούτε όνομα). Αυτό γιατί ενω στο if ελεγχεις την είσοδο δεδομένων, αν κάτι δεν ειναι σωστό δεν σταματάς τη διαδικασία. Με δυο λόγια πρέπει να το φτιάξεις κάπως ετσι if (εχει βάλει τα αναγκαία στοιχεία και έχεις κάνει stripslashes) { if (εισαγωγή στην database επιτυχής) { "ΟΛΑ καλα, γραφτήκατε" } else { "Δεν γραφτήκατε, υπάρχει γενικοτερο προβλημα" } } else { "Δεν τα εχετε γράψει σωστα, διορθώστε" και τυπώνεις πάλι τη φόρμα με γραμμένα τα στοιχεία και κοκκινισμένα τα προβληματικά σημεία }
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα