defacer Δημοσ. 28 Ιουνίου 2015 Δημοσ. 28 Ιουνίου 2015 Μπορείς να το κάνεις μέσω βάσης και μετά να τραβάς τις εικόνες από την βάση και να τις δείχνεις όπουδήποτε εσύ θέλεις. Όταν το έκανα και εγώ ο παρακάτω κώδικας μου δούλεψε μια χαρά. Πρώτον το να τραβάς τις εικόνες από τη βάση είναι μάλλον το χειρότερο πράγμα που μπορείς να κάνεις, μιας και έχεις όλα τα μειονεκτήματα του να τις έχεις σε εξωτερικό σύστημα (και μάλιστα συγκριτικά ακατάλληλο για τέτοιου είδους χρήση μιας που σχεδιάστηκε για να καλύπτει άλλες ανάγκες) μαζί με όλα τα μειονεκτήματα του να τα έχεις όλα σε ένα και μόνο σύστημα που θα τραβήξει μόνο του το ζόρι της εξυπηρέτησης των clients. Το μόνο πράγμα που "κερδίζεις" έτσι είναι ότι θεωρώντας πως έχεις ήδη βάση για άλλους λόγους το κάνεις ευκολότερο να μεταφέρεις "τα πάντα όλα" από ένα σύστημα σε ένα άλλο. Γενικά για εφαρμογές καφενείου (10 χρήστες τη βδομάδα) στην πράξη ο,τι κι αν κάνεις θα δουλέψει, συμπεριλαμβανομένου και αυτού, αυτό όμως δε σημαίνει πως είναι καλή ιδέα για οποιονδήποτε ορισμό του "καλή". Ο κώδικας σου χρησιμοποιεί την mysql μέθοδο η οποία ειναι deprecated ( δεν πρέπει να χρησιμοποιείται ) απο το 2011 αν θυμάμαι καλά.Δεν θα πρότεινα στον φίλο να δει το παράδειγμα σου. Εκτός από αυτό ο συγκεκριμένος κώδικας έχει επιπλέον προβλήματα ασφαλείας και προβλήματα ορθότητας, SQL injection και στις δύο περιπτώσεις. Επιπλέον δεν ελέγχει το $_FILES['img']['error'] που είναι το πρώτο πράγμα που θα έπρεπε να κάνει.
visualizer Δημοσ. 29 Ιουνίου 2015 Δημοσ. 29 Ιουνίου 2015 Πρώτον το να τραβάς τις εικόνες από τη βάση είναι μάλλον το χειρότερο πράγμα που μπορείς να κάνεις, μιας και έχεις όλα τα μειονεκτήματα του να τις έχεις σε εξωτερικό σύστημα (και μάλιστα συγκριτικά ακατάλληλο για τέτοιου είδους χρήση μιας που σχεδιάστηκε για να καλύπτει άλλες ανάγκες) μαζί με όλα τα μειονεκτήματα του να τα έχεις όλα σε ένα και μόνο σύστημα που θα τραβήξει μόνο του το ζόρι της εξυπηρέτησης των clients. Το μόνο πράγμα που "κερδίζεις" έτσι είναι ότι θεωρώντας πως έχεις ήδη βάση για άλλους λόγους το κάνεις ευκολότερο να μεταφέρεις "τα πάντα όλα" από ένα σύστημα σε ένα άλλο. Γενικά για εφαρμογές καφενείου (10 χρήστες τη βδομάδα) στην πράξη ο,τι κι αν κάνεις θα δουλέψει, συμπεριλαμβανομένου και αυτού, αυτό όμως δε σημαίνει πως είναι καλή ιδέα για οποιονδήποτε ορισμό του "καλή". Εκτός από αυτό ο συγκεκριμένος κώδικας έχει επιπλέον προβλήματα ασφαλείας και προβλήματα ορθότητας, SQL injection και στις δύο περιπτώσεις. Επιπλέον δεν ελέγχει το $_FILES['img']['error'] που είναι το πρώτο πράγμα που θα έπρεπε να κάνει. Αν ρίξεις άλλη μια ματιά θα διαπιστώσεις και άλλα προβλήματα..γενικά λείπουν βασικοί ελένχοι που πρέπει να γίνονται όταν ανεβάζεις ένα αρχείο στην βάση.
Dasd77O77 Δημοσ. 2 Ιουλίου 2015 Μέλος Δημοσ. 2 Ιουλίου 2015 Καλησπέρα φίλοι και φίλες,Ευχαριστώ για τις απαντήσεις σας και για τα ωραία σιτε. Με αρκετό ψάξιμο έχω βγάλει και εγώ τις δικές μου γνώμες που αρκετές τις έχετε αναφέρει και ισχίουν έτσι και αλλιώς. Αυτό το θέμα με την mysql οταν το διάβασα με προβλημάτισε λιγάκι γιατί είχα μπει στο κλίμα. Μια ερώτηση περί sql, ποια είναι η διαφορά ανάμεσα σε mysqli και σε PDO έψαξα αλλά δεν πολυκατάλαβα στα αγγλικά. όποιος μπορεί να γράψει κάποια πράγματα περιληπτικά. Επίσεις χρησιμοποιώ xampp για να δοκιμάζω τις σελίδες μου (πιστεύω το γνωρίζετε) αλλά η ερώτηση μου είναι: μπορώ να χρησιμοποιήσω την mysqli και την PDO στο xampp? Απορίες πολλές αλλά σιγά σιγά λύνονται με την εξάσκηση και το διάβασμα. Αυτές τις μέρες στον ελεύθερο μου χρόνο έκανα λίγο εξάσκηση. Δημιούργισα μια βάση στην οποία προσθέτο πληροφορίες. Θέλω να μου πείτε για αρχή πως τα πάω, τι έχω κάνει λάθος και τι μπορώ να προσέξω κτλ. Αυτό μέσα σε κανένα μισαώρο το έκανα και δεν το έχω τελειώσει ακόμα γιατί έχω μπερδευτεί λιγάκι. <form action="content.php" method="post"> <label>Username:*</label><br> <input type="text" name="username"><br><br> <label>First Name:</label><br> <input type="text" name="first_name"><br><br> <label>Last name:</label><br> <input type="text" name="last_name"><br><br> <label>Email:*</label><br> <input type="text" name="username"><br><br> <label>Password:*</label><br> <input type="text" name="username"><br><br> <input type="submit" name="submit" value="Go next"> </form> </div> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" type="text/css" href="css/test.css"> </head> <body> <?php // Connect to Database //--------------------- $con = mysql_connect('localhost', 'admin', 'admin'); $con_db = mysql_select_db('test_db', $con); if(isset($_POST['submit'])){ $usern = $_POST['username']; $fn = $_POST['first_name']; $ln = $_POST['last_name']; $mail = $_POST['mail']; $pass = $_POST['password']; if($usern !=''||$mail !=''||$pass){ $query = mysql_query("insert into test(username, first_name, last_name, mail, password) values ( '$usern', '$fn', '$ln', '$mail', '$pass')"); if ($usern = $usern||$mail = $mail){ $query2 = mysql_query("DELETE FROM test WHERE id=''"); echo "<div id=\"p1\"><p>First or last names exist!</p></div><br>"; echo "<div id=\"a1\"><a href=\"index.php\">Go to start</a></div>"; } else { if ($query){ $sql = 'SELECT * FROM test'; $result = mysql_query($sql, $con); if ($result) { while ($row = mysql_fetch_assoc($result)) { echo "<a href=\"login.php\">Go back home.</a><br><br>"; echo "<div id=\"test_1\"><div class=\"dtest1\">".$row['username']."</div> "; echo "<div class=\"dtest1\">".$row['first_name']."</div></div><br>"; echo "<div class=\"dtest1\">".$row['last_name']."</div></div><br>"; echo "<div class=\"dtest1\">".$row['mail']."</div></div><br>"; } } } else { echo "Something going wrong."; } } } else { echo "<p>Insertion Failed<br/>Some Fields are Blank!</p>"; } mysql_free_result($result); } mysql_close($con); ?> </body> </html> Όσο για την φόρμα για ανέβασμα εικόνας βρήκα αυτό w3scool, πιστεύ είναι αξιόπιστη πληροφορία για αρχή.
vadou Δημοσ. 5 Ιουλίου 2015 Δημοσ. 5 Ιουλίου 2015 Με μια γρήγορη ματιά, δε θα βρίσκει τι να βάλει στις μεταβλητές $mail και $pass γιατί έχεις βάλει name=username στα input τους. Επίσης νομίζω υπάρχει και το input type=email για να σου κάνει validate το email χωρίς να χρειάζεται να γράψεις παραπάνω κώδικα εσύ. Παρακάτω δεν πάω πριν πιω καφέ
defacer Δημοσ. 7 Ιουλίου 2015 Δημοσ. 7 Ιουλίου 2015 Μια ερώτηση περί sql, ποια είναι η διαφορά ανάμεσα σε mysqli και σε PDO έψαξα αλλά δεν πολυκατάλαβα στα αγγλικά. Το mysqli είναι ένα library με το οποίο τελικά μιλάς στη MySql. Για να το χρησιμοποιήσεις πρέπει να του μιλήσεις με τον τρόπο που θέλει, π.χ. όταν θες να κάνεις ένα query μπορείς να καλέσεις τη μέθοδο που ονομάζεται query. Μια άλλη database library (π.χ. αυτή που μιλάει σε DB2) δεν έχει τέτοια μέθοδο, οπότε αν θέλεις να αλλάξεις από τη μία στην άλλη θα πρέπει να αλλάξεις όλο τον κώδικα που έχεις και πάει να καλέσει query(). Το PDO είναι ένα abstraction layer πάνω από τη βάση: έχεις ένα PDO connection στα χέρια σου, δε χρειάζεται να ξέρεις αν συνδέεται με MySql ή με DB2 ή τι χρειάζεται να καλέσεις αν είναι MySql. Το PDO σου λέει "ο,τι κι αν είναι, εγώ έχω μια query εδώ και αν την καλέσεις θα γίνει αυτό που πρέπει να γίνει για να πάρεις το αποτέλεσμα που περιμένεις". Αυτό έχει και πλεονεκτήματα και μειονεκτήματα τα οποία δε μπορώ να αναλύσω εδώ. Στην πράξη για σένα και το ένα και το άλλο δε θα έχουν διαφορά, διάλεξε ένα και προς το παρόν ξέχασέ το. Επίσεις χρησιμοποιώ xampp για να δοκιμάζω τις σελίδες μου (πιστεύω το γνωρίζετε) αλλά η ερώτηση μου είναι: μπορώ να χρησιμοποιήσω την mysqli και την PDO στο xampp? Από τη στιγμή που θα εγκαταστήσεις την PHP μπορείς να χρησιμοποιήσεις ο,τι θες (το πολύ πολύ να χρειαστεί να το εγκαταστήσεις μόνος σου). Το αν έβαλες την PHP με xampp ή με το χέρι ή αν στην εγκατέστησε ένας φίλος δεν παίζει κανένα ρόλο. Θέλω να μου πείτε για αρχή πως τα πάω, τι έχω κάνει λάθος και τι μπορώ να προσέξω κτλ. Το πιο κραυγαλέο είναι ότι είσαι ανοιχτός σε SQL injection. Google and fix it. Το δεύτερο είναι ότι ακόμα χρησιμοποιείς mysql που είπαμε πρέπει να την ξεχάσεις. Αν δεν το κάνεις εθελοντικά τώρα απλά θα αναγκαστείς να το κάνεις στο μέλλον σε κάποια στιγμή που δε θα είναι της επιλογής σου. Κατά τα άλλα ο κώδικας είναι στο αναμενόμενο επίπεδο για τη φάση στην οποία είσαι, δηλαδή: με επαγγελματικά κριτήρια δε βλέπεται, αλλά το γιατί δε βλέπεται και τι θα ήταν καλύτερο να κάνεις δεν έχει νόημα να πέσουμε πάνω σου όλοι να σχολιάσουμε, είναι κάτι που το μαθαίνεις σταδιακά. Απλά συνέχισε να το δουλεύεις για να αρχίσεις μόνος σου να αντιλαμβάνεσαι πως κάποια πράγματα δε βολεύουν, οπότε θα μπορείς να καταλάβεις την ανάγκη να γίνουν αλλιώς, οπότε θα μπορείς να καταλάβεις γιατί το να τα κάνεις με Χ αντί με Υ είναι καλύτερο. 1
zynif Δημοσ. 7 Ιουλίου 2015 Δημοσ. 7 Ιουλίου 2015 $con = mysql_connect('localhost', 'admin', 'admin'); Πως γίνεται εδώ να μην φαίνονται σαν plain text το όνομα και ο κωδικός πρόσβασης ;
defacer Δημοσ. 7 Ιουλίου 2015 Δημοσ. 7 Ιουλίου 2015 Δεν γίνεται. Και δεν έχει σημασία το ότι φαίνονται.
visualizer Δημοσ. 8 Ιουλίου 2015 Δημοσ. 8 Ιουλίου 2015 $con = mysql_connect('localhost', 'admin', 'admin'); Πως γίνεται εδώ να μην φαίνονται σαν plain text το όνομα και ο κωδικός πρόσβασης ; Μπορείς να τα βάλεις σε ένα αρχείο ( configuration) και να παίρνεις από εκεί τις τιμές.Τώρα το πόσο ασφαλές θα είναι αυτό το αρχείο είναι μια άλλη ιστορία ..
Dasd77O77 Δημοσ. 11 Ιουλίου 2015 Μέλος Δημοσ. 11 Ιουλίου 2015 Καλεμέρα σας, Vadou λένε φασούλι το φασούλι γεμίζει το σακούλι έτσι και η φόρμα μου Φίλε Defacer ψάχτικα και λίγο συν τα δικά σου τα ψιλοκατάλαβα όσο αφορά για mysqli και για pod. Όσο για την mysql που χρησιμοποίησα δεν το ήξερα αλλά έμαθα τι γίνετε. Αλλά τώρα το θέμα μου είναι ότι δεν ξέρω με ποια ίδους γλώσσα να την αντικαταστήσω και απ ότι κατάλαβα χρειάζετε μία βάση δεδομένων. Κατά τα άλλα ο κώδικας είναι στο αναμενόμενο επίπεδο για τη φάση στην οποία είσαι, δηλαδή: με επαγγελματικά κριτήρια δε βλέπεται, αλλά το γιατί δε βλέπεται και τι θα ήταν καλύτερο να κάνεις δεν έχει νόημα να πέσουμε πάνω σου όλοι να σχολιάσουμε, είναι κάτι που το μαθαίνεις σταδιακά. Απλά συνέχισε να το δουλεύεις για να αρχίσεις μόνος σου να αντιλαμβάνεσαι πως κάποια πράγματα δε βολεύουν, οπότε θα μπορείς να καταλάβεις την ανάγκη να γίνουν αλλιώς, οπότε θα μπορείς να καταλάβεις γιατί το να τα κάνεις με Χ αντί με Υ είναι καλύτερο. Συνφωνώ απόλυτα. Επειδή δεν έχω κάποιον να μου δίχνει και ο μόνος δάσκολος μου είναι ο εαυτός μου και το βιβλίο το ιντερνετ είναι πιο δύσκολα να μάθεις και γι αυτό ρωτάω εδώ γιατί εσείς είστε σαν μπόνους έχετε μεγαλύερη εμπειρία από μένα. Με τις απαντήσεις σας πολλές φορές με βάζετε σε κρίση και σκέφτομαι ακόμα παραπάνω απ ότι έχω σκεφτεί. Εμένα δεν με πειράζει άμα πέσετε όλοι πάνομου αρκεί να απαντήσουν βάσημα στην ερώτηση μου.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα