Ένα απλό User Login σε PHP

Μια περιοχή όπου τα μέλη μας μπορούν να βάζουν τα PHP scripts που έχουν φτιάξει και θέλουν να τα μοιραστούν με τα υπόλοιπα μέλη.

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

Απάντηση
Άβαταρ μέλους
avax31
Δημοσιεύσεις: 95
Εγγραφή: 11 Ιουν 2009 14:16

Ένα απλό User Login σε PHP

Δημοσίευση από avax31 » 20 Οκτ 2009 15:15

μου βγάζει το εξής
Parse error: parse error, unexpected T_EXIT, expecting ',' or ';' in I:\xampp\htdocs\aqua\administrator\protupo.php on line 5
οπότε δεν μπορώ να δοκιμάσω τον επόμενο κώδικα.

Άβαταρ μέλους
avax31
Δημοσιεύσεις: 95
Εγγραφή: 11 Ιουν 2009 14:16

Ένα απλό User Login σε PHP

Δημοσίευση από avax31 » 20 Οκτ 2009 15:22

Έβαλα όμως αυτό στο login.php...

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

  $_SESSION['username'] = $username; 
  echo $username=$_SESSION["username"];
     } else { 
   echo "Ανεπιτυχές Login, δοκιμάστε πάλι"; 
   $error=1; } 
και μου εμφανίζει το username

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ένα απλό User Login σε PHP

Δημοσίευση από Apostolis_38 » 20 Οκτ 2009 15:52

Το θέμα είναι να το εμφανίζει στο index,για να δούμε αν δουλεύει το $_SESSION.

Το μήνυμα λέει οτι δεν κλείνει σωστά ο κώδικας. Κανένα λάθος ; ή }

Άβαταρ μέλους
avax31
Δημοσιεύσεις: 95
Εγγραφή: 11 Ιουν 2009 14:16

Ένα απλό User Login σε PHP

Δημοσίευση από avax31 » 23 Οκτ 2009 03:07

ηθελε ενα ;...
αλλα το τρελλο είναι αλλο. επειδη το έχω σε stick το ετρεξα στο laptop και δουλεψε κανονικα...
τεσπα
ευχαριστω πολυ για την βοήθεια φιλε :]

Άβαταρ μέλους
avax31
Δημοσιεύσεις: 95
Εγγραφή: 11 Ιουν 2009 14:16

Ένα απλό User Login σε PHP

Δημοσίευση από avax31 » 26 Οκτ 2009 02:20

Πρόβλημα 2ο.

το ανεβασα σε server με PHP 5.2.8 και όταν κάνω login μου βγαζει αυτο το μνμ:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/.../login.php on line 9

Η γραμμή 9 είναι η εξής:

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

$rows=mysql_num_rows($result); 
Σε τοπικο server (xampp) που το δοκιμαζω με PHP 5.1.4 λειτουργει κανονικα.

Εχει να κανει με την διαφορα εκδοσης? τι συμβαινει σε αυτη την γραμμη? (ετσι για να μαθαινω κι ολας) :]

Και πως μπορεί να λυθεί?

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ένα απλό User Login σε PHP

Δημοσίευση από Apostolis_38 » 26 Οκτ 2009 10:06

Καμμία φορά είναι τελείως τυπικό το θέμα.
Δηλαδή ίσως με το "γράμμα του νόμου" να ήθελε (π.χ.)
mysql_fetch.
Ισως πάλι (ειδικά αν δεν είναι σε select) να μην χρειάζεται καθόλου.
Εχει άμεση σχέση με το πως εκτελείς όλο το query σου.

Αλλες φορές πάλι όντως μπορεί να προκύψει πρόβλημα.

Το πρώτο που πρέπει να κοιτάξεις είναι αν σου δημιουργεί προβλήματα στο script.
Αν όχι και δεν μπορείς να βρείς άκρη μπορείς ακόμα και να το αγνοήσεις.
Επίσης μην ξεχάσεις να απενεργοποιήσεις τα errors όταν τελειώσεις με το site.

Οσο για τη διαφoρά έκδοσης δεν νομίζω. Αυτές είναι functions οι οποίες χρησιμοποιούνται ίδιες κι απαράλλαχτες απο το ξεκίνημα της php. Δεν έχω βρεί ποτέ κάποιο bug fix ή update γι αυτές τις εντολές. Βέβαια δεν ορκίζομαι κι όλας.
Μάλλον δεν έχεις ενεργοποιήσει το αντίστοιχο E_WARNING στον τοπικό σου server.

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

Ένα απλό User Login σε PHP

Δημοσίευση από korgr » 26 Οκτ 2009 10:18

Αυτο το μηνυμα σημαινει πως το query απο το οποιο προκυπτει η $result δεν εκτελεσθηκε σωστα, λογω καποιου λαθους συνταξης, ή αναφοράς σε λάθος πεδιο ή ακομα αναφορα σε table που δεν υπαρχει!

Να κανω και μια αστεια υποθεση..
Το script το ανεβασες στο server
Την βαση δεδομενων την ανεβασες αντιστοιχα?

Άβαταρ μέλους
avax31
Δημοσιεύσεις: 95
Εγγραφή: 11 Ιουν 2009 14:16

Ένα απλό User Login σε PHP

Δημοσίευση από avax31 » 26 Οκτ 2009 11:49

To: Apostolis_38
επεξεργάζομαι την απαντησηση σου γιατι μεχρι να καταλαβω τι εννοεις θα βγαλω μαλλια :]
Οπως καταλαβαίνεις ειναι τα πρωτα μου βηματα στο αντικειμενο και δυσκολευομαι αρκετα να κατανοησω καποια πραγματα που εσεις θεωρειτε αυτονοητα αλλα που θα μου παει θα το βρω :]

Το: Korg

Την βαση την εκανα import απο αυτη που ειχα φτιαξει στο xampp (τα tables δλδ). Μηπως πρεπει να τα φτιαξω απο την αρχη κανονικα?

Σας ευχαριστω για την βοηθεια θα επιστρεψω συντομα

Άβαταρ μέλους
avax31
Δημοσιεύσεις: 95
Εγγραφή: 11 Ιουν 2009 14:16

Ένα απλό User Login σε PHP

Δημοσίευση από avax31 » 26 Οκτ 2009 12:30

Ωρα για πριξημο...
Δοκιμασα να διμιουργησω απο την αρχη την βαση και τους αντιστοιχους πινακες του στον server. Ανακαλυψα οτι δεν δεχεται εγγραφες. Δλδ όταν κανω register, συμφωνα παντα με το παραπανω παραδειγμα του παροντος tutorial, οι πινακες μου μενουν αδειοι. μαλλον κατι φταιει με την βαση μου στον server. Αλλα τι?
Καμια ιδεα?

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

Ένα απλό User Login σε PHP

Δημοσίευση από korgr » 26 Οκτ 2009 12:33

Οχι, οκ αν την εκανες import, ολα καλα.
Δηλαδη στον τοπικο σου server ενα ζευγος user-pass δουλευει κανονικα και κανει επιτυχες login και τα ιδια στοιχεια σου βγαζουν αυτο το error στον server?

Επισης το
$rows=mysql_num_rows($result);

καλο ειναι να "παγιδευεται" λιγο πχ

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

if($result){
$rows=mysql_num_rows($result); 
}

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

Ένα απλό User Login σε PHP

Δημοσίευση από korgr » 26 Οκτ 2009 12:36

avax31 έγραψε:Ωρα για πριξημο...
Δοκιμασα να διμιουργησω απο την αρχη την βαση και τους αντιστοιχους πινακες του στον server. Ανακαλυψα οτι δεν δεχεται εγγραφες. Δλδ όταν κανω register, συμφωνα παντα με το παραπανω παραδειγμα του παροντος tutorial, οι πινακες μου μενουν αδειοι. μαλλον κατι φταιει με την βαση μου στον server. Αλλα τι?
Καμια ιδεα?
Οταν κανεις register δεν σου βγαζει καποιο error or warning?

Νεο MySQL user για την βαση σου με τα καταλληλα "δικαιωματα" δημιουργησες?

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ένα απλό User Login σε PHP

Δημοσίευση από Apostolis_38 » 26 Οκτ 2009 12:56

Με πρόλαβε ο korgr, πρώτα απ' όλα κοίτα τα δικαιώματα του user και μετά κοιτάμε και τα άλλα.


Οσον αφορά τα υπόλοιπα.

Το "με καράφλιασες" το έχω ξανακούσει. :D
Το "μου έβγαλες μαλλιά" πρώτη φορά! :o :o :o


Υπάρχουν διάφορες functions για να τραβήξεις τα αποτελέσματα ενός query.

Μέσα σε αυτές υπάρχουν και οι functions που επιστρέφουν έναν αριθμό ή το σύνολο των εγγραφών που πληρούν τα κριτίρια ενός query.

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

mysql_num_rows  -  mysql_fetch_array  -  mysql_fetch_assoc - mysql_ fetch_ field
κ.λ.π. κ.λ.π. κ.λ.π.
Δές εδώ: http://www.php.net/manual/en/ref.mysql.php




Ολες υπάρχουν για κάποιο συγκεκριμένο λόγο. Προφανώς επειδή κάνουν κάτι συγκεκριμένο καλύτερα απ' ότι θα το έκανε κάποια άλλη function.
Η ίσως και να μην χρειάζονται καν. Μια περίπτωση που πιθανόν να μην χρειάζονται είναι όταν κάνεις insert ή update.


Παρ' όλα αυτά υπάρχει περίπτωση το επιθυμητό αποτέλεσμα να έρθει ακόμα κι αν χρησιμοποιήσεις την όχι ιδανική function η χρησιμοποιώντας μια "περιτή" function (όπως στο insert).
Σε αυτή την περίπτωση η php θα σου τυπώσει το αποτέλεσμα που θέλεις αλλά θα σου χτυπήσει και ένα error.
Αν "γίνεται η δουλειά σου" δεν υπάρχει λόγος να τρελλαθείς να το φτιάξεις τέλεια μιας και δεν γίνεται να σου επιστρέψει τις μισές εγγραφές του πίνακα αντί για όλες. Τουλάχιστον εμένα δεν μου έχει τύχει ποτέ.
Αλλά φυσιολογικά, αν θέλεις να είσαι σωστός και να έχεις και το κεφάλι σου ήσυχο θα πρέπει να το ψάξεις.

Άβαταρ μέλους
avax31
Δημοσιεύσεις: 95
Εγγραφή: 11 Ιουν 2009 14:16

Ένα απλό User Login σε PHP

Δημοσίευση από avax31 » 26 Οκτ 2009 12:56

korgr έγραψε:
avax31 έγραψε:Ωρα για πριξημο...
Δοκιμασα να διμιουργησω απο την αρχη την βαση και τους αντιστοιχους πινακες του στον server. Ανακαλυψα οτι δεν δεχεται εγγραφες. Δλδ όταν κανω register, συμφωνα παντα με το παραπανω παραδειγμα του παροντος tutorial, οι πινακες μου μενουν αδειοι. μαλλον κατι φταιει με την βαση μου στον server. Αλλα τι?
Καμια ιδεα?
Οταν κανεις register δεν σου βγαζει καποιο error or warning?

Νεο MySQL user για την βαση σου με τα καταλληλα "δικαιωματα" δημιουργησες?
Εκανα MySQL user με ολα τα δικαιωματα. βγαζει οτι δεν μπορει να γινει η εγγραφη βαση αυτου:

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

mysql_query($sql) or die("den egine eggrafh");

Άβαταρ μέλους
avax31
Δημοσιεύσεις: 95
Εγγραφή: 11 Ιουν 2009 14:16

Ένα απλό User Login σε PHP

Δημοσίευση από avax31 » 26 Οκτ 2009 13:03

Apostolis_38
ειμαι ηδη καραφλος οποτε η επομενη επιλογη που μου μενει ειναι να βγαλω μαλλια :]

Βασικα εχω μπερδευτει τελειως lol
Ζητω ταπεινα την καταννοηση σας για την ασχετοσυνη μου :]
Τελευταία επεξεργασία από το μέλος avax31 την 26 Οκτ 2009 13:09, έχει επεξεργασθεί 1 φορά συνολικά.

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

Ένα απλό User Login σε PHP

Δημοσίευση από korgr » 26 Οκτ 2009 13:07

Κατι πρεπει να παιζεται στο connection στη βαση.
Δες εκει στο script σου μηπως κατι δεν συμφωνει με τη νεα βαση.
Ενα τυπικο δειγμα σωστης συνδεσης σε βαση ειναι το :

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

$DBUser = "εδω βαλε το username της βασης";
$DBPass = "εδω βαλε το password της βασης";
$DBName = "εδω βαλε το ονοματης βασης";
$DBHost = "localhost"; // για τους πιο πολλους servers αυτο ειναι αρκετο
$DBLink= mysql_connect($DBHost, $DBUser, $DBPass);
mysql_select_db($DBName);

Απάντηση

Επιστροφή στο “PHP τα δικά μας scripts”

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

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