Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα παιδια εχω φτιαξει μια φορμα για εγγραφη επισης εχω φτιαξει και μια βαση δεδομενων για να αποθηκευονται τα στοιχεια απο την φορμα ολα καλα μεχρι εδω...τωρα θελω να φτιαξω στην φορμα να πεταει με κοκκινο χρωμα αν ο χρηστης δεν εχει συμπληρωση ολα τα πεδια απο την φορμα μου να του βγαζει μηνυμα λαθους να το κανω με php η γινεται και με html μονο εσεις τι λετε?

  • Like 1
Δημοσ.

Μόνο με html δεν γίνεται. 

Το λιγοτερο που χρειάζεσαι ειναι php.

Αν θέλεις να βάλεις επιπλέον έλεγχο (πέρα απο την php) και θές animations, φρουφρου, κλπ τοτε βάζει και javascript.

Μόνο javascript απαγορευεται γιατί ο κακόβουλος μπορεί να απενεργοποιήσει τη javascript και να στείλει οτι θέλει στη βάση (no no no)

Δημοσ.

Να υποθέσω ότι για να γράφεις δεδομένα στην βάση έχεις χρησιμοποιήσει php. Όπως σου έγραψε παραπάνω ο φίλος θα χρειαστείς και java για (μηνύματα λάθους, αστεράκια στα υποχρεωτικά πεδία) και για να κάνεις έλεγχο στα πεδία. Καλό θα ήταν να παραθέσεις τον κώδικα για να μπορέσουμε να σε βοηθήσουμε παραπάνω.

Δημοσ.

<?php
if ($_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>

Δημοσ.

αντί για       $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 χαρακτήρες και πάνω

Δημοσ.

 οταν δεν βαλω ονομα στην φορμα μου με πεταει εδω γιατι?

 επισης και οταν βαζω ονομα παλη με πεταει εδω οπου ειναι το λογικο

 

Όπως είναι ο κώδικας σου, η εντολή καταχώρησης στη βάση θα εκτελεστεί ακόμα κι αν ο χρήστης δεν εισάγει τίποτα (ούτε όνομα). Αυτό γιατί ενω στο if ελεγχεις την είσοδο δεδομένων, αν κάτι δεν ειναι σωστό δεν σταματάς τη διαδικασία. Με δυο λόγια πρέπει να το φτιάξεις κάπως ετσι

 

 

if (εχει βάλει τα αναγκαία στοιχεία και έχεις κάνει stripslashes)

  {

      if (εισαγωγή στην database επιτυχής)

         {

             "ΟΛΑ καλα, γραφτήκατε"

          } else

             {

              "Δεν γραφτήκατε, υπάρχει γενικοτερο προβλημα"

              }

   } else

      {

          "Δεν τα εχετε γράψει σωστα, διορθώστε"

           και τυπώνεις πάλι τη φόρμα με γραμμένα τα στοιχεία και κοκκινισμένα τα προβληματικά σημεία 

      }

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...