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

.php Προβλημα


derasto

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

Σπερα,

φτιαχνω ενα σκριπτ για να ελενχω ονομα,κωδικο και επειτα να τα εισαγω σε ενα αρχειο.

Επειδη δεν το εχω κατεφερει να το τρεξω ακομα το παω βημα βημα.

>if (strtolower($_POST['username']) == strtolower($users[$i]['userName']))
$username_used = 1;

Εδω κανω το ονομα μικρο οταν το στελνει ο χρηστης και το ελνχω για το αν υπαρχει στο αρχειο,αν υπαρχει δινω ασσο στο username_used σωστα μεχρι εδω;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτό εδώ τί είναι;

>$users[$i]['userName'])

 

Ότι εντολές γίνονται μέσα στο if, βάλτες μέσα σε άγκιστρα.

 

>
if (strtolower($_POST['username']) == strtolower($users[$i]['userName'])) {

$username_used = 1;

......

}

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

To

>$users[$i]['userName'])

ειναι ενας πινακας οπου θα ελενχθει και θα μπει ενας χρηστης.

Τα ειχα κλεισει τα αγκιστρα απλα δεν τα πηρα στο copy/paste.

To θεμα στο οποιο εχω κολλησει ειναι οτι ο χρηστης εισαγεται σωστα με τα σωστα δικαιωματα αλλα ο ελενχος για διπλη εγγραφη δεν γινεται.

 

Τελειωνω κατι στον κωδικα και τα ανεβαζω να τα δουμε.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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);
?>

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

>
<?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 έτσι όπως είναι τώρα πιθανόν να μην πάρεις ποτέ αποτέλεσμα .

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σπερα spartacos και ευχαριστω για το τιπ.

Ναι ετσι πρεπει να παει user[5].

To σκεφτομαι για mysql,απλα στο συγκεκριμενο οι users και τα δικαιωματα περιστρεφονται γυρω απο το users.php

 

Edit:

Παλι αν βαλω ενα ονομα που ηδη υπαρχει το περναει. :mad:

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

>for ($i=0; $i <=$user_amount;$i++);

πρέπει να είναι

>for ($i=0; $i <=$user_amount;$i++)

μου ξέφυγε αυτό . δεν θέλει το ; .

 

δοκίμασε και πες μου έμενα λειτουργεί κανονικά !

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...