newman33 Δημοσ. 12 Μαρτίου 2015 Δημοσ. 12 Μαρτίου 2015 <?php $servername = "localhost"; $user = "root"; $pass = ""; $dbname = "site"; $name = $_POST['name']; $lname = $_POST['lname']; $email = $_POST['email']; $conn = mysqli_connect($servername, $user,$pass,$dbname);if (!$conn) { die("Connection failed: " . mysqli_connect_error());}$insert = "INSERT INTO eggrafh VALUES($name,$lname,$email)";mysql_query($insert);echo "record has been successfully";mysql_close();?> <form action="dbsent.php" method="POST"> FirstName:<br> <input type="text" name="name"><br><br> LastName:<br> <input type="text" name="lname"><br><br> Email:<br> <input type="text" name="email"><br><br> <input type="submit" value="Submit"></form> Παιδια το προβλημα μου ειναι οτι οταν βαζω ονομα επωνυμο και email παταω submit μου εμφανηζει το μυνημα οτι εγινε η εγγραφη αλλα δεν πανε στον πινακα... τι προβλημα υπαρχει?
libereas Δημοσ. 12 Μαρτίου 2015 Δημοσ. 12 Μαρτίου 2015 Έχεις κάνει καμπόσα μικρολαθάκια. Για να μην στα λέω ένα ένα ο κώδικας πρέπει να είναι κάπως έτσι <?php if (isset($_POST['submit'])){ $servername = "localhost"; $user = "root"; $pass = ""; $dbname = "site"; $name = $_POST['name']; $lname = $_POST['lname']; $email = $_POST['email']; $conn = mysqli_connect($servername, $user,$pass,$dbname); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $insert = "INSERT INTO eggrafi (name, lastname, email) VALUES('".$name."','".$lname."','".$email."')"; //τα name lastname και email πρέπει να είναι τα αντίστοιχα columns στην database σου. $result=mysqli_query($conn, $insert); if ($result){ echo "record has been successfully"; } mysqli_close($conn); } ?> <form action="" method="POST"> FirstName:<br> <input type="text" name="name"><br><br> LastName:<br> <input type="text" name="lname"><br><br> Email:<br> <input type="text" name="email"><br><br> <input type="submit" name="submit" value="Submit"> </form>
newman33 Δημοσ. 12 Μαρτίου 2015 Μέλος Δημοσ. 12 Μαρτίου 2015 σε ευχαριστω αδερφε..το εφτιαξα να σε καλα για την βοηθεια σου...παντως ειναι πολυ ωραια γλωσσα η php
nucleus Δημοσ. 12 Μαρτίου 2015 Δημοσ. 12 Μαρτίου 2015 Αντί για το παρακάτω $insert = "INSERT INTO eggrafi (name, lastname, email) VALUES('".$name."','".$lname."','".$email."')"; κάντο με prepared statement. http://php.net/manual/en/pdo.prepared-statements.php H συνένωση strings για sql statements καλό είναι να αποφεύγεται.
chrism4111 Δημοσ. 13 Μαρτίου 2015 Δημοσ. 13 Μαρτίου 2015 παντως ειναι πολυ ωραια γλωσσα η php Έλα τώρα που είναι ωραία η PHP. Τι να πουν και η Ruby, Javascript και Python τότε! :) 1
te0ne Δημοσ. 13 Μαρτίου 2015 Δημοσ. 13 Μαρτίου 2015 Φίλε έτσι όπως είναι φτιαγμένη είναι ευάλωτη σε mysql injection. Δηλαδή μπορείς ακόμη και από την φόρμα να τρέξεις DELETE FROM etc. Καλύτερα έτσι. <?php if (isset($_POST['submit'])){ $servername = "localhost"; $user = "root"; $pass = ""; $dbname = "site"; $name = $_POST['name']; $lname = $_POST['lname']; $email = $_POST['email']; $escaped_name = mysql_real_escape_string($name); $escaped_lname = mysql_real_escape_string($lname); $escaped_email = mysql_real_escape_string($email); $conn = mysqli_connect($servername, $user,$pass,$dbname); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $insert = "INSERT INTO eggrafi (name, lastname, email) VALUES('".$escaped_name"','".$escaped_lname."','".$escaped_email."')"; //τα name lastname και email πρέπει να είναι τα αντίστοιχα columns στην database σου. $result=mysqli_query($conn, $insert); if ($result){ echo "record has been successfully"; } mysqli_close($conn); } ?> <form action="" method="POST"> FirstName:<br> <input type="text" name="name"><br><br> LastName:<br> <input type="text" name="lname"><br><br> Email:<br> <input type="text" name="email"><br><br> <input type="submit" name="submit" value="Submit"> </form> 1
newman33 Δημοσ. 14 Μαρτίου 2015 Μέλος Δημοσ. 14 Μαρτίου 2015 Chris σχετικα με τις γλωσσες που ανεφερες δεν μου αρεσουν και τοσο σε συγκριση με την PHP ειναι ποιο διαδεδομενη ετσι πιστευω μπορει να κανω και λαθος...
ALLisCHAOS Δημοσ. 18 Μαρτίου 2015 Δημοσ. 18 Μαρτίου 2015 Επίσης παράτα τη mysql και χρησιμοποίησε καλύτερα mysqli, καθώς και prepared statement που είπαν κ τα παιδιά. Καλή χρυσή αλλά θέλει πολύ προσοχή για τα θέματα ασφάλειας(sql injection, xss κλπ).
newman33 Δημοσ. 19 Μαρτίου 2015 Μέλος Δημοσ. 19 Μαρτίου 2015 <?php if (isset($_POST['submit'])){ $servername = "localhost"; $user = "root"; $pass = ""; $dbname = "site"; $name = $_POST['name']; $lname = $_POST['lastname']; $password = $_POST['password']; $conn = mysqli_connect($servername, $user,$pass,$dbname);if (!$conn) { die("Connection failed: " . mysqli_connect_error());}$insert = "INSERT INTO eggrafh (fistname, lastname, password) VALUES('$name','$lname',$password.)";$result=mysqli_query($conn, $insert);if ($result){echo "record has been successfully";}mysqli_close($conn);} ?> παιδια οταν τα στελνω στην βαση δεν μου εμφανιζει το μηνυμα τι λαθος υπαρχει? αλλα κανονικα φενεται οτι τα στελνει χωρις τα εμφανιζει το μηνυμα χωρις κανενα λαθος να υπαρχει!!!
te0ne Δημοσ. 19 Μαρτίου 2015 Δημοσ. 19 Μαρτίου 2015 (επεξεργασμένο) Έτσι δουλεύει? Υ.Γ. Όταν γράφεις κώδικα για να μας διευκολύνεις βάλτον μέσα σε [cοde] [/cοde] <?php if (isset($_POST['submit'])){ $servername = "localhost"; $username = "root"; $pass = ""; $dbname = "site"; $name = $_POST['name']; $lastname = $_POST['lastname']; $password = $_POST['password']; $connect_mysql=mysql_connect($servername,$username,$password) or die ("Connection Failed!"); $mysql_db=mysql_select_db("site",$connect_mysql) or die ("Could not Connect to Database"); $query = "INSERT INTO eggrafh (name, lastname, password) VALUES ('" . name . "','" . lastname"','"password"')"; $result=mysql_query($query) or die("Query Failed : ".mysql_error()); $message="Το μήνυμα σου."; } ?> <?php mysql_close($connect_mysql); } ?> Επεξ/σία 24 Μαρτίου 2015 από te0ne
PC_MAGAS Δημοσ. 19 Μαρτίου 2015 Δημοσ. 19 Μαρτίου 2015 Α) Έχεις ένα security hole τεράστιο και απο την "ιδιαίτερη" περιοχή της Τζούλιας στο Απαγορευμένο. Απλά έχε σαν μπούσουλα ότι παίρνεις από $_POST ή $_GET και το περνάς σε Sql Query String το περνάς πρώτα από την: mysql_real_escape_string(); Πριν το κάνεις στο Query String. H ευπάθεια ασφαλείας λέγεται Site: SQL Injection και είναι απλή στην αντιμετώπιση και εξίσου εύκολα (αν δεν το αντιμετοπίσεις) να σου κάνουν το site - εφαρμογή σαν προταγωνίστρια σε ταινία με το χ πάνω δεξιά να φαίνεται στην οθόνη και να αναφέρει 18+ στην θήκη του DVD. Ακόμη σου συνηστώ να μετακομίσεις σε PDO αργότερα και μετά να πας σε ένα framework (Codeigniter είναι εύκολο να το στήσεις και να μάθεις) για να κάνεις web εφαρμογές Like A Boss!!!!! Β)Αν παίξεις έτσι (άνευ framework) Πρέπει να ελέγχεις πάντα αν έχει κάνει Submit. Το πετυχαίνεις βάζοντας στην φόρμα την στο submit button ένα name="ότινάναι" και ελέγχείς αν το isset($_POST['ότινάναι']) είναι true όπως λένε δια κώδικα οι άλλοι. Αν είναι true εκτελείς το Query.
ALLisCHAOS Δημοσ. 19 Μαρτίου 2015 Δημοσ. 19 Μαρτίου 2015 Mια παρατήρηση, αν χρησιμοποιήσει prepared statements νομίζω πως δε χρειάζεται το φιλτράρισμα με την real_escape_string, άσε που σου δίνει και πιο ταχύτητα τα prepared...
PC_MAGAS Δημοσ. 19 Μαρτίου 2015 Δημοσ. 19 Μαρτίου 2015 Mια παρατήρηση, αν χρησιμοποιήσει prepared statements νομίζω πως δε χρειάζεται το φιλτράρισμα με την real_escape_string, άσε που σου δίνει και πιο ταχύτητα τα prepared... Ναι είναι αλήθεια. Αλλά από τον κώδικα καταλαβαίνω (διορθώστεμε αν κάνω λάθος) πως είναι αρχάριος έτσι τον πάμε low low. Αν δεν μάθεις να μπουσουλάς πως θα μάθεις να περπατάς; 3
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα