Δημοσιεύτηκε: 17 Ιουν 2012, 23:08
Αποστόλης έγραψε:1. Για sha256 μπορείς να βάλεις πεδίο varchar(64) ή char(64) ή binary(32)
Καλύτερα από όλα το varchar.
2.κάντο
- Κώδικας: Επιλογή όλων
$password = hash("sha256", $_POST['password']);
- Κώδικας: Επιλογή όλων
$password = sha256($_POST["password"]);
3.
- Κώδικας: Επιλογή όλων
$query = sprintf("SELECT * FROM users WHERE username='%s' and password='%s'",
mysql_real_escape_string($username),
mysql_real_escape_string($password));
Εδώ του λές να βρει οτιδήποτε ταιριάζει με αυτά που πληκτρολογείς. Το % είναι wild charachter για την php.
Εκτός κι αν αυτό είναι αυτό που θέλεις.
Επίσης, μην μπλέκεσαι πολύ.
Βάλε
- Κώδικας: Επιλογή όλων
$username = trim (mysql_real_escape_string ($_POST["username"]) );
$password = sha256 (trim (mysql_real_escape_string ($_POST["password"]) ) );
$query = sprintf("SELECT * FROM users WHERE username='".$username."' and password='".$password."');
Απλοίησε τα πράγματα για να μπορείς να βγάλεις ευκολότερα άκρη.
4. Κοίτα, δεν ξέρω πολλά από php/mysql, αλλά εδώ λέει ότι υπάρχει και η σύνταξη INSERT INTO ... SET... . Οπότε κάπου αλλού είναι το πρόβλημα...
Μην μπερδεύεσαι. Δεν σου είπα οτι εκεί είναι το πρόβλημα αλλά οτι αυτή η σύνταξη δεν είναι αυτή που χρειάζεσαι.
Και καλό είναι να μην τη μάθεις γιατί μπορεί να μπλεχτείς αν χρησιμοποιείς πάντα αυτή. Για παράδειγμα δεν μπορείς να την χρησιμοποιήσεις για να βάλεις πολλά rows με ένα query.
Οπότε θεώρησε πως...δεν υπάρχει.
1)σε ευχαριστουμε για τις διευκρινισεις:)
2)το εκανα αυτο που μου ειπες,ομως μου γυρισε αυτο>>Fatal error: Call to undefined function sha256()
3)επηρεαζει αυτο καπως την δουλεια που το θελω ? νομιζω πως οχι..μηπως κανω λαθος?εμαθα προσφατα την sprintf και ακομα ισως να μην ξερω καλα την λειτουργια της..