Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

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

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

Απάντηση
tsalaki
Δημοσιεύσεις: 31
Εγγραφή: 09 Μαρ 2009 20:27

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από tsalaki » 08 Ιαν 2011 15:15

Καλησπέρα,
Κάνω κάποιες απόπειρες για να εκτελέσω ένα sql query αλλά για κάποιο λόγο δεν εμφανίζονται τα αποτελέσματα. Πρώτα από όλα κάνω τη σύνδεση με τη βάση στην αρχή του .php αρχείου:

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

<?php
	//Start session
	session_start&#40;&#41;;
	
	require_once&#40;'auth.php'&#41;;
	require_once&#40;'config.php'&#41;;
	
	//Connect to mysql server
	$link = mysql_connect&#40;DB_HOST, DB_USER, DB_PASSWORD&#41;;
	mysql_query&#40;"set names utf8"&#41;;
	if&#40;!$link&#41; &#123;
		die&#40;'Αποτυχία σύνδεσης με τον server&#58; ' . mysql_error&#40;&#41;&#41;;
	&#125;
	
	//Select database
	$db = mysql_select_db&#40;DB_DATABASE&#41;;
	if&#40;!$db&#41; &#123;
		die&#40;"Αδυναμία επιλογής της βάσης δεδομένων"&#41;;
	&#125;
	?>
Και κατόπιν σε άλλο σημείο στο ίδιο αρχείο γράφω το εξής:

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

<?php
if&#40;isset&#40;$_SESSION&#91;'username'&#93;&#41; && isset&#40;$_SESSION&#91;'password'&#93; &#41;&#41;&#123;
		$query = "SELECT * FROM users WHERE username ='".$_SESSION&#91;'username'&#93;."' AND password='".$_SESSION&#91;'password'&#93;."'"; 
		$result = mysql_query&#40;$query&#41; or die&#40;mysql_error&#40;&#41;&#41;; 
		$row = mysql_fetch_array&#40;$result&#41;;
		echo $row&#91;'username'&#93;."<br />";
		echo $row&#91;'password'&#93;;
	  &#125;
?>
Το πρόβλημα είναι σε πρώτη φάση ότι δεν εμφανίζονται τα αποτελέσματα του query και κάτι άλλο που με προβληματίζει είναι το γεγονός ότι τα passwords αποθηκεύονται στη βάση κρυπτογραφημένα (sha1). Πώς μπορώ να τα εμφανίσω στη σελίδα αποκρυπτογραφημένα για μετέπειτα επεξεργασία από το χρήστη;;

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από gvre » 08 Ιαν 2011 18:05

1. Βάλε σε σχόλια την if και ξαναδοκίμασε.
2. Δε μπορείς να αποκρυπτογραφήσεις τον sha1 κωδικό. Αν ο χρήστης θέλει να αλλάξει κωδικό, θα γράψει απλά τον νέο και θα τον αποθηκεύσεις. Δε χρειάζεται να διορθώσει τον παλιό.

tsalaki
Δημοσιεύσεις: 31
Εγγραφή: 09 Μαρ 2009 20:27

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από tsalaki » 08 Ιαν 2011 18:22

Έβαλα σε σχόλια την if αλλά και πάλι δεν εμφανίζονται τα αποτελέσματα. Έκανα echo το $result:

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

  
$query = "SELECT * FROM users WHERE username ='".$_SESSION&#91;'username'&#93;."' AND password='".$_SESSION&#91;'password'&#93;."'"; 
      $result = mysql_query&#40;$query&#41; or die&#40;mysql_error&#40;&#41;&#41;; 
      $row = mysql_fetch_array&#40;$result&#41;; 
      echo $result;
Και μου εμφανίζεται αυτό: Resource id #6 :-?

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από gvre » 08 Ιαν 2011 18:31

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

$result = mysql_query&#40;$query&#41;;
$row = mysql_fetch_array&#40;$result&#41;; 
var_dump&#40;$row&#41;;

tsalaki
Δημοσιεύσεις: 31
Εγγραφή: 09 Μαρ 2009 20:27

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από tsalaki » 08 Ιαν 2011 19:26

Σε ευχαριστώ πολύ για τις λύσεις σου..Εντόπισα το πρόβλημα τελικά ήταν αλλού. Όπως σου είπα οι κωδικοί των χρηστών είναι κρυπτογραφημένοι στη βάση μου. Γράφοντας:

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

$query = "SELECT* FROM users WHERE username ='".$_SESSION&#91;'username'&#93;."' AND password='sha1&#40;".$_SESSION&#91;'password'&#93;."&#41;'";
και κατόπιν:

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

echo $row&#91;'username'&#93;."<br />";
echo $row&#91;'onoma_user'&#93;;
Έπαιξε κανονικά :)
Αυτό που τώρα προσπαθώ να λύσω είναι ένα πιο περίπλοκο query που είναι στην ουσία το query που θέλω να τρέξω και συνδυάζει 3 πίνακες της βάσης.

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

"SELECT eidikotita.perigrafi_eidikotitas as perigrafi, users.username as username, users.password as password, users.epwnimo_user as epwnimo, users.onoma_user as onoma, users.dieuthinsi_user as dieuthinsi, users.tilefwno_user as tilefwno, nosokomeio.onoma_nos as nosokomeio, FROM users, eidikotita, nosokomeio WHERE username ='".$_SESSION&#91;'username'&#93;."' AND password='sha1&#40;".$_SESSION&#91;'password'&#93;."&#41;' AND users.kwdikos_eidikotitas=eidikotita.kwdikos_eidikotitas AND users.kwd_nos_erg=nosokomeio.kwdikos_nos"
Αλλά προς το παρόν υπάρχει κάποιο συντακτικό λάθος στην sql. :(

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από gvre » 08 Ιαν 2011 21:19

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

"SELECT eidikotita.perigrafi_eidikotitas as perigrafi, 
	users.username AS username, 
	users.password AS password, 
	users.epwnimo_user AS epwnimo, 
	users.onoma_user AS onoma, 
	users.dieuthinsi_user AS dieuthinsi, 
	users.tilefwno_user AS tilefwno, 
	nosokomeio.onoma_nos AS nosokomeio, 
FROM users, eidikotita, nosokomeio 
WHERE users.kwdikos_eidikotitas = eidikotita.kwdikos_eidikotitas 
AND users.kwd_nos_erg = nosokomeio.kwdikos_nos
AND username ='" . $_SESSION&#91;'username'&#93; . "'";
Αν το γράψεις όπως παραπάνω θα δεις και το λάθος (είναι το , πριν το FROM).
Το κομμάτι με το password δε χρειάζεται.
Καλό θα ήταν να μη χρησιμοποιείς ελληνικά ονόματα (πχ epwnimo κλπ).

tsalaki
Δημοσιεύσεις: 31
Εγγραφή: 09 Μαρ 2009 20:27

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από tsalaki » 08 Ιαν 2011 21:32

Είχες δίκιο. Σε ευχαριστώ πολύ για την βοήθειά σου. Έτρεξε κανονικά!

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από dva_dev » 09 Ιαν 2011 15:35

tsalaki έγραψε:...οι κωδικοί των χρηστών είναι κρυπτογραφημένοι στη βάση μου. Γράφοντας:

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

$query = "SELECT* FROM users WHERE username ='".$_SESSION&#91;'username'&#93;."' AND password='sha1&#40;".$_SESSION&#91;'password'&#93;."&#41;'";
και κατόπιν:

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

echo $row&#91;'username'&#93;."<br />";
echo $row&#91;'onoma_user'&#93;;
Έπαιξε κανονικά :)
Εγώ πάντως θα έκανα και ένα

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

echo $row&#91;'password'&#93;;
για να επιβεβαιώσω ότι αποθηκεύονται κωδικοποιημένα τα passwords και δεν αποθηκεύεται κάτι άσχετο του στύλ "sha1(<ο κωδικός που έχεις>)".

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από pimpogio » 10 Ιαν 2011 02:46

ασχετο... αλλα γιατι δεν χρησιμοποιεις PDO ?
οι mysql* functions ειναι απαρχαιωμένες και περιορισμενων δυνατοτητων .....

http://php.net/manual/en/book.pdo.php

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από Khronos » 10 Ιαν 2011 09:09

pimpogio έγραψε:ασχετο... αλλα γιατι δεν χρησιμοποιεις PDO ?
οι mysql* functions ειναι απαρχαιωμένες και περιορισμενων δυνατοτητων .....

http://php.net/manual/en/book.pdo.php
Περιορισμένων δυνατοτήτων ως προς τι???

tsalaki
Δημοσιεύσεις: 31
Εγγραφή: 09 Μαρ 2009 20:27

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από tsalaki » 10 Ιαν 2011 11:13

Καλημέρα,

Έκανα

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

 echo $row&#91;password&#93;;
Και τσέκαρα ότι μου εμφανίζει sha1(password) :). PDO; Δεν γνωρίζω τι είναι αυτό θα πρέπει να το ψάξω.

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από pimpogio » 10 Ιαν 2011 12:00

Khronos έγραψε:
pimpogio έγραψε:ασχετο... αλλα γιατι δεν χρησιμοποιεις PDO ?
οι mysql* functions ειναι απαρχαιωμένες και περιορισμενων δυνατοτητων .....

http://php.net/manual/en/book.pdo.php
Περιορισμένων δυνατοτήτων ως προς τι???
transactions / prepared statements / stored procedures ktlp δεν νομιζω να υποστιριζουνε..
δεν ειναι OO επισης δεν εχουνε κανενα abstraction layer...

Γενικα ειναι κακη πρακτικη να τις χρησιμοποιει καποιος ...

Απο τη στιγμη που υπαρχει PDO εχουνε νοημα υπαρξης μονο για backwards compatibility
και δεν πρεπει να χρησιμοποιούνται σε νεους κωδικες ...

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από Khronos » 10 Ιαν 2011 13:30

pimpogio έγραψε: transactions / prepared statements / stored procedures ktlp δεν νομιζω να υποστιριζουνε..
http://php.net/manual/en/book.mysqli.php

Όσο για το abstraction θέμα, προσωπικά απο τη στιγμή που ξέρω οτι δεν πρόκειται να χρησιμοποιήσω άλλη βάση εκτός mysql τι να το κάνω το abstraction?

Και επίσης το οτι δεν είναι OO πάλι δεν μου λέει τίποτα!

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Δεν εμφανίζονται τα αποτελέσματα του query σστη σελίδα

Δημοσίευση από pimpogio » 10 Ιαν 2011 20:29

αλλο mysql αλλο mysqli.. ειναι σαφως ανωτερο το mysqli απο το mysql.. και ακομα καλυτερο ειναι το PDO.
Το OO εχει παρα πολλα πλεονεκτηματα σε σχεση με το procedural programming ..

Απάντηση

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

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

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