derasto Δημοσ. 30 Ιανουαρίου 2011 Δημοσ. 30 Ιανουαρίου 2011 Σπερα, φτιαχνω ενα σκριπτ για να ελενχω ονομα,κωδικο και επειτα να τα εισαγω σε ενα αρχειο. Επειδη δεν το εχω κατεφερει να το τρεξω ακομα το παω βημα βημα. >if (strtolower($_POST['username']) == strtolower($users[$i]['userName'])) $username_used = 1; Εδω κανω το ονομα μικρο οταν το στελνει ο χρηστης και το ελνχω για το αν υπαρχει στο αρχειο,αν υπαρχει δινω ασσο στο username_used σωστα μεχρι εδω;
nik1992 Δημοσ. 30 Ιανουαρίου 2011 Δημοσ. 30 Ιανουαρίου 2011 Αυτό εδώ τί είναι; >$users[$i]['userName']) Ότι εντολές γίνονται μέσα στο if, βάλτες μέσα σε άγκιστρα. > if (strtolower($_POST['username']) == strtolower($users[$i]['userName'])) { $username_used = 1; ...... }
derasto Δημοσ. 30 Ιανουαρίου 2011 Μέλος Δημοσ. 30 Ιανουαρίου 2011 To >$users[$i]['userName']) ειναι ενας πινακας οπου θα ελενχθει και θα μπει ενας χρηστης. Τα ειχα κλεισει τα αγκιστρα απλα δεν τα πηρα στο copy/paste. To θεμα στο οποιο εχω κολλησει ειναι οτι ο χρηστης εισαγεται σωστα με τα σωστα δικαιωματα αλλα ο ελενχος για διπλη εγγραφη δεν γινεται. Τελειωνω κατι στον κωδικα και τα ανεβαζω να τα δουμε.
derasto Δημοσ. 30 Ιανουαρίου 2011 Μέλος Δημοσ. 30 Ιανουαρίου 2011 Eχουμε και λεμε: Ο "ελενχος" και η καταχωρηση νεου χρηστη στο αρχειο users.php. ><?php include('../lib/data/users.php'); if ($_POST['username']) { } $user_amount = count($users); for ($i=0; $i <=$user_amount;$i++); { if (strtolower($_POST['username']) == strtolower($users[$i]['userName'])) $username_used = 1; } if (!$_POST['password']) $password_error = 1; if (($username_used==1) || ($password_error==1)) { echo "STOP"; } else if (!$username_used && !$password_error) { print 'Your selection '.$_POST['username'].' was accepted... your account was created. You may now login!!!'; $next_user = $user_amount++; $new_user_information = ' //remote created from '.$_SERVER['REMOTE_ADDR'].' $users['.$next_user.'] = array(); $users['.$next_user.'][\'userRole\'] = simple_user; $users['.$next_user.'][\'userName\'] = \''.$_POST['username'].'\'; $users['.$next_user.'][\'password\'] = \''.$_POST['password'].'\'; $users['.$next_user.'][\'email\'] = \''.$_POST['email'].'\'; $users['.$next_user.'][\'channels\'] = array(0,1); ?>'; $file_edit = fopen('../lib/data/users.php', 'r+'); fseek($file_edit, -3,SEEK_END); fwrite($file_edit, $new_user_information); fclose($file_edit); } ?> και το αρχειο users.php ><?php $users = array(); $users[0] = array(); $users[0]['userRole'] = guest; $users[0]['userName'] = null; $users[0]['password'] = null; $users[0]['channels'] = array(0); $users[1] = array(); $users[1]['userRole'] = admin; $users[1]['userName'] = 'admin'; $users[1]['password'] = 'admin'; $users[1]['channels'] = array(0,1); $users[2] = array(); $users[2]['userRole'] = mod; $users[2]['userName'] = 'moderator'; $users[2]['password'] = 'moderator'; $users[2]['channels'] = array(0,1); $users[3] = array(); $users[3]['userRole'] = simple_user; $users[3]['userName'] = 'user'; $users[3]['password'] = 'user'; $users[3]['channels'] = array(0,1); ?>
spartakoscs Δημοσ. 30 Ιανουαρίου 2011 Δημοσ. 30 Ιανουαρίου 2011 > <?php if ($_POST['username']) { include('../lib/data/users.php'); $user_amount = count($users); for ($i=0; $i <=$user_amount;$i++); { if (strtolower($_POST['username']) == strtolower($users[$i]['userName'])){ $username_used = 1;} } if (!$_POST['password']){ $password_error = 1; } if ($username_used == 1 || $password_error == 1) { echo "STOP"; } elseif (!$username_used && !$password_error) { print 'Your selection '.$_POST['username'].' was accepted... your account was created. You may now login!!!'; $next_user = $user_amount++; $new_user_information = ' //remote created from '.$_SERVER['REMOTE_ADDR'].' $users['.$next_user.'] = array(); $users['.$next_user.'][\'userRole\'] = simple_user; $users['.$next_user.'][\'userName\'] = \''.$_POST['username'].'\'; $users['.$next_user.'][\'password\'] = \''.$_POST['password'].'\'; $users['.$next_user.'][\'email\'] = \''.$_POST['email'].'\'; $users['.$next_user.'][\'channels\'] = array(0,1); ?>'; $file_edit = fopen('../lib/data/users.php', 'r+'); fseek($file_edit, -3,SEEK_END); fwrite($file_edit, $new_user_information); fclose($file_edit); } }else{ echo 'username require!!'; } ?> το >else if (!$username_used && !$password_error) ειναι >elseif (!$username_used && !$password_error) Σε γενικές γραμμές η for σου τρέχει 5 φορές ενώ εσύ έχεις 4 users και ο επόμενος user θα πάει σαν users[5] και όχι σαν users[4] που θα έπρεπε , επίσης όπως καταλαβαίνεις εάν και δεν ξέρω τι θες να φτιάξεις μήπως θα ήταν καλύτερα μια mysql για να κρατάς τους users γιατί εάν έχεις 10000 users έτσι όπως είναι τώρα πιθανόν να μην πάρεις ποτέ αποτέλεσμα .
derasto Δημοσ. 30 Ιανουαρίου 2011 Μέλος Δημοσ. 30 Ιανουαρίου 2011 Σπερα spartacos και ευχαριστω για το τιπ. Ναι ετσι πρεπει να παει user[5]. To σκεφτομαι για mysql,απλα στο συγκεκριμενο οι users και τα δικαιωματα περιστρεφονται γυρω απο το users.php Edit: Παλι αν βαλω ενα ονομα που ηδη υπαρχει το περναει.
spartakoscs Δημοσ. 30 Ιανουαρίου 2011 Δημοσ. 30 Ιανουαρίου 2011 >for ($i=0; $i <=$user_amount;$i++); πρέπει να είναι >for ($i=0; $i <=$user_amount;$i++) μου ξέφυγε αυτό . δεν θέλει το ; . δοκίμασε και πες μου έμενα λειτουργεί κανονικά !
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.