Praetorianos Δημοσ. 25 Μαΐου 2010 Δημοσ. 25 Μαΐου 2010 Έχω ένα θεματάκι στην php, φαντάζομαι εύκολο γι' αυτούς που ξέρουν, αλλά εγώ δεν έχω ασχοληθεί ιδιαίτερα οπότε κόλλησα. Θέλω να φτιάξω ένα αρχείο σε php που να ελέγχει τα πεδία "username" και "password" που θα καταχωρούνται μέσω μιας ιστοσελίδας, να τα διασταυρώνει με μία βάση δεδομένων σε access και αν συμφωνούν τα username και password, να εμφανίζει τα πλήρη στοιχεία του πελάτη. To κόλλημα εμφανίζεται στο εξής σημείο: Αν και στο dreamweaver λέει no mistakes (αν και δεν ξέρω αν ελέγχει συντακτικά λάθη ή κάτι άλλο), όταν πάω να το τρέξω μου βγαίνει το εξής σφάλμα: Warning: Wrong parameter count for odbc_connect() in C:\Program Files\EasyPHP 2.0b1\www\group6\passwordresult.php on line 13Could Not Connect to ODBC Database! Γιατί έτσι? Να πω επίσης ότι την λειτουργία από την γραμμή 16 και κάτω δεν την έχω καταλάβει αρκετά, ίσως έχω κάνει λάθος κι εκεί
poscaman Δημοσ. 26 Μαΐου 2010 Δημοσ. 26 Μαΐου 2010 Έχω ένα θεματάκι στην php, φαντάζομαι εύκολο γι' αυτούς που ξέρουν, αλλά εγώ δεν έχω ασχοληθεί ιδιαίτερα οπότε κόλλησα.Θέλω να φτιάξω ένα αρχείο σε php που να ελέγχει τα πεδία "username" και "password" που θα καταχωρούνται μέσω μιας ιστοσελίδας, να τα διασταυρώνει με μία βάση δεδομένων σε access και αν συμφωνούν τα username και password, να εμφανίζει τα πλήρη στοιχεία του πελάτη. To κόλλημα εμφανίζεται στο εξής σημείο: Αν και στο dreamweaver λέει no mistakes (αν και δεν ξέρω αν ελέγχει συντακτικά λάθη ή κάτι άλλο), όταν πάω να το τρέξω μου βγαίνει το εξής σφάλμα: Γιατί έτσι? Να πω επίσης ότι την λειτουργία από την γραμμή 16 και κάτω δεν την έχω καταλάβει αρκετά, ίσως έχω κάνει λάθος κι εκεί λοιπον οσον αφορα τον κωδικα. διατρέχεις με ένα while τα αποτελεσματα που πήρες απο το query (17) έχεις έστω και ένα result, τότε "σηκώνεις" τη μεταβλητή $check (19) μετά ελέγχεις αν το check σηκώθηκε (22) κι αν ναι τότε στην μεταβλητη $a καταχωρείς το right (αν αυτο ειναι string, θα πρέπει να το βάλεις μέσα σε μονά ή διπλά αυτάκια) αν δεν έχει σηκωθεί το check, τοτε στη μεταβλητη a βάζεις το wrong (ισχυει και πάλι αυτο που ειπα παραπανω με το string) ********************************** οσον αφορά το σφαλμα. Δεν συνδέεσαι στην βάση. Νομίζω ότι φταίει το κενο password που στέλνεις.... edit: όπου αριθμος -> αριθμός γραμμής
Praetorianos Δημοσ. 26 Μαΐου 2010 Μέλος Δημοσ. 26 Μαΐου 2010 Δεν συνδέεσαι στην βάση. Νομίζω ότι φταίει το κενο password που στέλνεις.... edit: όπου αριθμος -> αριθμός γραμμής Να 'σαι καλά, τώρα ψιλοκατάλαβα κάπως τον κώδικα με την επεξήγηση. Το σφάλμα δυστυχώς κάπου αλλού οφείλεται καθώς είμαι σίγουρος ότι δεν χρειάζεται password για να συνδεθώ στον server οπότε πρέπει να το αφήσω κενό. Το περίεργο είναι ότι αν συνδεθώ σε άλλη βάση (έστω Β) που έχει ανέβει στον server, την ανοίγει κανονικά! Ωραία λέω, θα μετατρέψω αυτή τη βάση και θα σβήσω την άλλη. Αμ δε. Με το που αλλάξω τα ονόματα στα fields (πχ από username σε kodikos) μου βγάζει σφάλμα too few parameters
dewn735 Δημοσ. 26 Μαΐου 2010 Δημοσ. 26 Μαΐου 2010 Ενδεχομένως να φταίει το όνομα της βάσης (trapeza-daneio). Δοκίμασε να αλλάξεις το όνομά της σε trapeza_daneio (άλλαξε τη παύλα με undescore)
poscaman Δημοσ. 26 Μαΐου 2010 Δημοσ. 26 Μαΐου 2010 σιγουρα φταίει αυτο. διαβάζω ότι και παλαιότερα και η MySQL υπέφερε απο ένα τέτοιο bug. Στην δική σου βάση μπορεί για κάποιες λειτουργίες να μην πετάει σφάλμα, σε άλλες όμως πετάει. Οπότε μιας και τώρα ξεκινάς, αντικατέστησε το hyphen (-) με underscore (_)
routsounmanman Δημοσ. 27 Μαΐου 2010 Δημοσ. 27 Μαΐου 2010 Πέτα την Access και χρησιμοποίησε MySQL. Είναι πολύ καλά documented, και είναι πολύ ευκολη με το εργαλείο phpMyAdmin.
dewn735 Δημοσ. 28 Μαΐου 2010 Δημοσ. 28 Μαΐου 2010 Πέτα την Access και χρησιμοποίησε MySQL. Είναι πολύ καλά documented, και είναι πολύ ευκολη με το εργαλείο phpMyAdmin. Καλή η πρόταση, κάκιστη η επεξήγηση... Αν το phpmyadmin και το http://www.google.gr/search?q=mysql&ie=utf-8 είναι εύκολο, τότε το office access και το F1 τι μπορεί να είναι; Anyway, για όποιον ενδιαφέρεται: http://www.weberdev.com/ViewArticle/Access-vs.-MySQL, κοινώς κάθε πρόγραμμα έχει και τη χρήση του
Praetorianos Δημοσ. 18 Ιουνίου 2010 Μέλος Δημοσ. 18 Ιουνίου 2010 Επαναφέρω το θέμα για μία επιπλέον ερώτηση που κόλλησα. Μετά την φόρμα login εμφανίζεται αυτή η φόρμα όπου εμφανίζονται τα στοιχεία του πελάτη από μια βάση και όσα είναι μέσα στα textboxes υποτίθεται ότι μπορεί να τα αλλάξει. Πατώντας όμως το "enter" εμφανίζεται αυτό: Ο κώδικας που τρέχει είναι αυτός: Που κάνω το λάθος? Γενικά υπάρχει κάποιος τρόπος να φέρνει τα στοιχεία από μία βάση στα textboxes και μετά τις αλλαγές να τα ανανεώνει σε αυτή?
dewn735 Δημοσ. 19 Ιουνίου 2010 Δημοσ. 19 Ιουνίου 2010 Μάλλον δεν παίρνει τα δεδομένα από τη φόρμα. Μπορείς να στείλεις και τον κώδικα που χρησιμοποιείς στη φόρμα; Επίσης, φαίνεται όχι έχεις και ένα θέμα στην κωδικοποίηση των δεδομένων που παίρνεις από τη βάση Tip: Μη στέλνεις screenshots, αντέγραψε καλύτερα τον κώδικά σου και χρησιμοποίησε εδώ την επιλογή για κώδικα php
weathor Δημοσ. 19 Ιουνίου 2010 Δημοσ. 19 Ιουνίου 2010 Μάλλον δεν παίρνει τα δεδομένα από τη φόρμα. Μπορείς να στείλεις και τον κώδικα που χρησιμοποιείς στη φόρμα; Επίσης, φαίνεται όχι έχεις και ένα θέμα στην κωδικοποίηση των δεδομένων που παίρνεις από τη βάσηTip: Μη στέλνεις screenshots, αντέγραψε καλύτερα τον κώδικά σου και χρησιμοποίησε εδώ την επιλογή για κώδικα php Οχι μαλλον σιγουρα δεν τα παιρνει απο την φορμα. Το $_GET[''] σημαινει οτι διαβαζει τα δεδομενα απο την κεφαλιδα Url μετα απο το ? δηλ .index.php?&name1=omoma1&name2=omoma2&name3=omoma3κτλ Αρα η φορμα λογικα ξανανοιγει την σελιδα με javascript document.location.replace("index.php?&name1="+document.forms["myform"].elements["name1"].value+"&name1="+document.forms["myform"].elements["name2"].value); εκει δεν παιρνει τα δεδομενα απο τη φορμα για να ξανανοιξει τη σελιδα και να περασει τα δεδομενα!! ψαξε για το document.location.replace εκει ειναι το προβλημα ή δωσε το κωδικα της φορμας να σου πουμε τι φταιει
dewn735 Δημοσ. 19 Ιουνίου 2010 Δημοσ. 19 Ιουνίου 2010 Αρα η φορμα λογικα ξανανοιγει την σελιδα με javascript document.location.replace("index.php?&name1="+document.forms["myform"].elements["name1"].value+"&name1="+document.forms["myform"].elements["name2"].value); Αυτός τρόπος είναι επιεικώς απαράδεκτος. Δεν υπάρχει κανένας απολύτως λόγος χρήσης javascript, από τη στιγμή που ένα submit button κάνει ακριβώς την ίδια δουλειά! @Praetorianos: Μήπως στη φόρμα σου χρησιμοποιείς το method="POST" αντί για το method="GET"; Επίσης, το name1 το δίνεις τόσο στο ΑΦΜ, όσο και στο επάγγελμα
weathor Δημοσ. 19 Ιουνίου 2010 Δημοσ. 19 Ιουνίου 2010 Λες απλα να θελει POST αντι για GET? Πιθανον αλλα μονο μαντεψιες μπορουμε να κανουμε αν δεν μας δωσει κι αλλα στοιχεια!
Praetorianos Δημοσ. 19 Ιουνίου 2010 Μέλος Δημοσ. 19 Ιουνίου 2010 Αρχικά ευχαριστώ για το ενδιαφέρον και σόρρυ που δεν απάντησα πιο νωρίς αλλά ήμουν από το πρωί στη βιβλιοθήκη για την εργασία. Αυτό που έκανα τελικά ήταν να προσθέσω το: ><?php session_start(); $AFM = $_SESSION['b']; στην αρχή και με μερικές αλλαγές ακόμα κατάφερα να το κάνω να τρέχει.Η κωδικοποίηση μου είπαν ότι είναι όπως αναφέρθηκε κι εδώ πρόβλημα της κωδικοποίησης της βάσης οπότε δεν μπορώ να κάνω κάτι εγώ . Αν χρειάζεστε κάποιο αρχείο για να δείτε περισσότερες λεπτομέρειες πείτε μου αν και νομίζω ότι προχώρησα αρκετά σήμερα. Αυτό που δεν έχω καταφέρει ακόμα είναι να κάνω έλεγχο των δεδομένων κατά την εισαγωγή τους, δηλαδή να μην μπορεί να καταχωρεί γράμματα σε πεδία που απαιτούν αριθμούς και ανάποδα. Υπάρχει κάποια εντολή? Βρήκα μόνο την: ><?php if (is_int(23)) { echo "is integer\n"; } else { echo "is not an integer\n"; } ?> αλλά δεν την έχω δοκιμάσει ακόμα.. Μπορεί να έχω μπερδέψει μερικούς με τον τρόπο που συντάσσω τον κώδικα αλλά είμαι κι ο ίδιος λίγο ψιλομπερδεμένος
Uberalles_gr Δημοσ. 19 Ιουνίου 2010 Δημοσ. 19 Ιουνίου 2010 Εγώ θα έλεγα ότι είσαι αρκετά μπερδεμένος.... Μπορείς να ελέγχεις είτε σε javascript είτε σε php To σωστό είναι να τα ελέγχεις και στην φόρμα που κάνεις το submit αλλά και μετά που τα κάνεις POST Μέθοδοι υπάρχουν πάρα πολλοί.... Ψάξε λίγο στο google και θα βρεις...
Praetorianos Δημοσ. 19 Ιουνίου 2010 Μέλος Δημοσ. 19 Ιουνίου 2010 Μέθοδοι υπάρχουν πάρα πολλοί.... Ψάξε λίγο στο google και θα βρεις... Πίστεψε με 8 ώρες σήμερα και αρκετές άλλες τις προηγούμενες μέρες δεν έκανα και τίποτα άλλο To σωστό είναι να τα ελέγχεις και στην φόρμα που κάνεις το submit αλλά και μετά που τα κάνεις POST Σκέφτομαι αν υπάρχει κάποια εντολή ώστε με έλεγχο if μέσα στην PHP να ελέγχω αν είναι integer και αν ναι να περνάει τα στοιχεία στην βάση αλλιώς να βγάζει μήνυμα λάθους. Η εντολή που βρήκα είναι η παραπάνω και δοκιμάζω να την βάλω μέσα στο αρχείο αυτή τη στιγμή.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.