User Authentication χρησιμοποιώντας JFactory

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
mariospapa
Δημοσιεύσεις: 33
Εγγραφή: 01 Αύγ 2010 18:11

User Authentication χρησιμοποιώντας JFactory

Δημοσίευση από mariospapa » 11 Νοέμ 2010 15:37

Έχω γράψει τον παρακάτω κώδικα προκειμένου να δημιουργήσω ένα option label, σε μια φόρμα υποβολής, που θα περιλαμβάνει το ID των αρχείων που έχει υποβάλει μόνο ο συγκεκριμένος χρήστης. Έτσι, επιλέγω από τον πίνακα myfiles της βάσης δεδομένων dbname τις εγγραφές που αφορούν τον συγκεκριμένο χρήστη που έχει κάνει login στο σύστημα. Για να πάρω τα στοιχεία το user id χρησιμοποιώ το JFactory και το ταυτοποιώ με την τιμή που έχει καταχωρηθεί στο πεδίο cf_user_id του πίνακα myfiles. Όμως ο παρακάτω κώδικας παράγει ένα κενό option label. Αν τώρα το user id είναι 110, στη περίπτωση που γράψω κανανικά τον αριθμό αυτό, δηλαδή: WHERE cf_user_id = '110' μου εμφανίζει σωστά το ID των αρχείων που έχει υποβάλει ο συγκεκριμένος χρήστης στο option label. Που οφείλεται αυτή η δυσλειτουργία του JFactory;

Κώδικας: Επιλογή όλων

<?php
mysql_connect &#40;"localhost", "dbuser","dbpassword"&#41;  or die &#40;mysql_error&#40;&#41;&#41;;
mysql_select_db &#40;"dbname"&#41;;

$sql = mysql_query&#40;"SELECT * FROM myfiles WHERE cf_user_id = '<?php $user =& JFactory&#58;&#58;getUser&#40;&#41;; echo $user->id; ?>' ORDER BY cf_id"&#41;;

$num=mysql_numrows&#40;$sql&#41;;
mysql_close&#40;&#41;;

?>

<select name = "my_files">
<?php
$i=0;
while &#40;$i < $num&#41; &#123;
$f1=mysql_result&#40;$sql,$i,"cf_id"&#41;;
?>
<option value="$f1"><?php echo $f1; ?></option>
<?php
$i++;
&#125;
$filename_taken=$f1;
?>
</select>

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

User Authentication χρησιμοποιώντας JFactory

Δημοσίευση από fafos » 11 Νοέμ 2010 15:48

php mesa se php? den sou petaei errors?

thn metavlhth tou user id thn orizeis prin to query...
$user =& JFactory::getUser();
$userid = $user->id;

sto query vazeis mono to $userid.. oute echo oute tipota:

$sql = mysql_query("SELECT * FROM myfiles WHERE cf_user_id = '$userid' ORDER BY cf_id");


sto value tou option prepei na einai me echo php:

value="<?php echo $f1; ?>"


ti einai to Jfactory?? :roll:
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

mariospapa
Δημοσιεύσεις: 33
Εγγραφή: 01 Αύγ 2010 18:11

User Authentication χρησιμοποιώντας JFactory

Δημοσίευση από mariospapa » 11 Νοέμ 2010 15:53

Το'λυσα την ίδια στιγμή που έστειλες κι εσύ το μήνυμα!

Ο σωστός κώδικας που δουλεύει είναι:

Κώδικας: Επιλογή όλων

<?php
mysql_connect &#40;"localhost", "dbuser","dbpassword"&#41;  or die &#40;mysql_error&#40;&#41;&#41;;
mysql_select_db &#40;"dbname"&#41;;
$user =& JFactory&#58;&#58;getUser&#40;&#41;;
$usr_id = $user->get&#40;'id'&#41;;

$sql = mysql_query&#40;"SELECT * FROM myfiles WHERE cf_user_id = '$usr_id' ORDER BY cf_id"&#41;;

$num=mysql_numrows&#40;$sql&#41;;
mysql_close&#40;&#41;;

?>

<select name = "my_files">
<?php
$i=0;
while &#40;$i < $num&#41; &#123;
$f1=mysql_result&#40;$sql,$i,"cf_id"&#41;;
?>
<option value="<?php echo $f1; ?>"><?php echo $f1; ?></option>
<?php
$i++;
&#125;
$filename_taken=$f1;
?>
</select> 

Όσο για το JFactory δες http://docs.joomla.org/JFactory.

Σ'ευχαριστώ για την διόρθωση στο value του option!

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

User Authentication χρησιμοποιώντας JFactory

Δημοσίευση από korgr » 11 Νοέμ 2010 19:21

fafos έγραψε: ti einai to Jfactory?? :roll:
α ρε δασκαλε, πουλας joomla και δεν ξέρεις την jfactory? :lol: :lol: :lol:

mariospapa
Δημοσιεύσεις: 33
Εγγραφή: 01 Αύγ 2010 18:11

User Authentication χρησιμοποιώντας JFactory

Δημοσίευση από mariospapa » 11 Νοέμ 2010 20:35

Αντιμετωπίζω άλλο ένα προβληματάκι τώρα στο σημείο του select: Την μεταβλητή file_id την λαμβάνω με την επιλογή του χρήστη στο popup menu του select και της δίνω την τιμή cf_id που θέλω. Αυτό δουλεύει σωστά. Όμως θέλω να αποθηκεύσω και την τιμή της f2, που αντιστοιχεί στο cf_id που επιλέγει ο χρήστης, η οποία λαμβάνεται από το πεδίο "title" του ίδιου πίνακα της βάσης. Ο παρακάτω κώδικας δίνει πάντα ως τιμή στο hidden object "title" την τιμή της "f2" της τελευταίας εγγραφής στο select. Τι πρέπει να αλλάξω για να λαμβάνω την σωστή τιμή της μεταβλητής που θέλω;

Κώδικας: Επιλογή όλων

<select name = "file_id">
<?php
$i=0;
while &#40;$i < $num&#41; &#123;
$f1=mysql_result&#40;$sql,$i,"cf_id"&#41;;
$f2=mysql_result&#40;$sql,$i,"title"&#41;;
?>
<option value="<?php echo $f1; ?>"><?php echo $f1; ?></option>
<?php
$i++;
&#125;

?>
<input type="hidden" name="title" value="<?php echo $f2; ?>">

</select> 

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες