freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.
 

Πρόβλημα με την ανάγνωση του url της σελίδας


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » PHP Προγραμματισμός και εφαρμογές » PHP Προγραμματισμός
Moderators:  PHP Moderators, Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [10 Μηνύματα]      Bookmarks Tags: ανάγνωσηurlπρόβλημασελίδας Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
_Invisible_


Μέλος από: 16 Νοε 2006
Scripts: 2
Μηνύματα: 256+

Περιοχή: Greece
View users profile
ΜήνυμαΣτις: 06 Αυγ 2007 03:45    Θέμα: Πρόβλημα με την ανάγνωση του url της σελίδας Απάντηση με παράθεση  Mark this post and the followings unread

Γεια σας.

Λογικό είναι το $_SERVER['REQUEST_URI'] να μας εμφανίζει το requested url μας (πχ /new/new_content?test=1).

Το
κώδικας:

$live_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'];


μου εμφανίζει:
παράθεση:

http://localhost/new/index.php?act=new_content&test=1


Μέσα στο .htaccess μου χρησιμοποιώ διάφορες μεθόδους για να στέλνω τα URL δυναμικά. Για παράδειγμα το http://localhost/new/new_content είναι http://localhost/new/index.php?act=new_content

Το θέμα είναι ότι αποθηκεύω το URL της σελίδας που βρίσκεται ο user σε ένα table της db. Το πρόβλημα είναι ότι αντί να αποθηκευτεί στην db: http://localhost/new/index.php?act=new_content&test=1 μου βγαίνει το http://localhost/new/images?im=img07 (δηλ. http://localhost/new/index.php?act=images&im=img07).

To http://localhost/new/index.php?act=images&im=img07 εμφανίζει την εικόνα από έναν φάκελο. Το θέμα είναι ότι δεν ξέρω γιατί γίνεται αυτό... Μάλλον την ώρα που πάει να γίνει το insert στην db έχει εκείνο το request url? Τι να πω... Δεν ξέρω.

Το περίεργο είναι πως μέσα στην σελίδα όταν γράφω echo $live_url μου βγάζει το σωστό και όχι αυτό που μπαίνει στην DB.

Το ειρωνικό:
Έκανα echo(nl2br($sql)); για να δω το SQL query πριν εκτελεστεί και είναι μια χαρά!
κώδικας:

UPDATE sessions
SET Date = '1186361668',
Link = 'http://localhost/new/index.php?act=new_content&test=1'
WHERE PHPSESSID = '1cf17efbe9b7c842b0b23ac6e7ca5aed'
LIMIT 1;


και ακριβώς από κάτω απλά εκτελώ την εντολή SQL. Αυτό είναι όλο... αλλά το αποθηκεύει λάθος στην DB...

Καμιά ιδέα;

Ευχαριστώ!

Έχετε κάποια ιδέα;
cherouvim
Script Master

Μέλος από: 13 Ιουλ 2005
Βοηθήματα: 7
Νέα: 1
Scripts: 1
Μηνύματα: 256+

Περιοχή: Athens, Greece
View users profile Visit posters website
blog linkedin twitter 
ΜήνυμαΣτις: 06 Αυγ 2007 08:34    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Limit στο update;

_________________
blog
_Invisible_


Μέλος από: 16 Νοε 2006
Scripts: 2
Μηνύματα: 256+

Περιοχή: Greece
View users profile
ΜήνυμαΣτις: 06 Αυγ 2007 17:08    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

cherouvim ανέφερε:
Limit στο update;

Αν λες για το LIMIT που έβαλα στο query είναι για όταν βρει την εγγραφή και κάνει το update, να σταματήσει να ψάχνει για παρόμοιες εγγραφές -- έτσι υποθέτω και το query θα εκτελεστεί πιο γρήγορα.

Αν υπήρχε κάποιο limit στο URL δεν θα έμπαινε το http://localhost/new/index.php?act=images&im=img07 γιατί δεν έχει καμία σχέση με το http://localhost/new/index.php?act=new_content. Δηλαδή και να κόβαμε το URL πάλι δεν θα έμπαινε αυτό που μπήκε...

Ευχαριστώ για την απάντηση.
cherouvim
Script Master

Μέλος από: 13 Ιουλ 2005
Βοηθήματα: 7
Νέα: 1
Scripts: 1
Μηνύματα: 256+

Περιοχή: Athens, Greece
View users profile Visit posters website
blog linkedin twitter 
ΜήνυμαΣτις: 06 Αυγ 2007 17:49    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

ΟΚ. Δεν ήξερα οτι πάιζει limit πάνω στο update.

_________________
blog
panosru
WebDev Moderator

Μέλος από: 13 Σεπ 2005
Βοηθήματα: 2
Scripts: 2
Μηνύματα: 256+

Περιοχή: Camp
View users profile
ΜήνυμαΣτις: 06 Αυγ 2007 17:54    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Me mia proth skepsh to mono pou mourxete einai oti kata pasa periptosh to query ektelhte pano apo 1 fora os apotelesma na pernei ayto to url thn teleytaia fora ths ekteleshs tou, prosekseto ayto ligo, des mhn exeis to query se kapoio loop h kati paromoio pou tha to kanei na ektelestei pano apo 1 fores, an thes episeis dikse kai ligo ton kodika sou.
_Invisible_


Μέλος από: 16 Νοε 2006
Scripts: 2
Μηνύματα: 256+

Περιοχή: Greece
View users profile
ΜήνυμαΣτις: 07 Αυγ 2007 03:29    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

κώδικας:

<?php

if (!defined('ALLOW_ACCESS'))
{
   exit;
}

$session_id = session_id();
$secure = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 1 : 0;

$live_url = (($secure) ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'];

$sql = "SELECT session_ID, PHPSESSID, Host, Date, Link
      FROM " . SESSION_TABLE . "
      WHERE PHPSESSID = '" . escape($session_id) . "'
      LIMIT 1;";

if ( ! ( $result = $db->sql_query($sql) ) )
{
   html_page($lang['Error'], 'DB Error: Could not query Session Table.');
}
else
{
   $rows = $db->sql_numrows($result);

   if ( $rows == 0 )
   {
      // User's first visit
      $ins = "INSERT
            INTO " . SESSION_TABLE . "
            (session_ID, PHPSESSID, Host, ip, Date, Link)
            VALUES
            (
               '0',
               '" . escape($session_id) . "',
               '" . escape(gethostbyaddr($client_ip)) . "',
               '" . escape($client_ip) . "',
               '" . (int) time() . "',
               '" . escape($live_url) . "'
            );";

      if ( ! ( $db->sql_query($ins) ) )
      {
         html_page($lang['Error'], 'DB Error: Could not insert entry in Sesssion Table.');
      }

   }
   else
   {
      // session information already stored in our db
      // let's update the table!
      $upd = "UPDATE " . SESSION_TABLE . "
            SET Date = '" . (int) time() . "',
            Link = '" . escape($live_url) . "'
            WHERE PHPSESSID = '" . escape($session_id) . "'
            LIMIT 1;";

      if ( ! ( $db->sql_query($upd) ) )
      {
         html_page($lang['Error'], 'DB Error: Could not update Session Table.');
      }

   }

}

?>


το παραπάνω αρχείο ονομάζεται "sessions.php" και το έχω βάλει require_once που σημαίνει ότι δεν γίνεται include πάνω μία φορά. Μέσα στο αρχείο, δεν υπάρχει κάποιο while ή κάποιος βρόγχος for για να κάνει loop... Τι να πω, ίσως μου διαφεύγει.

Ευχαριστώ για τις απαντήσεις σας.

PS: Κάντε και κανένα σχόλιο για τον κώδικά μου. Με βοηθάει όταν προγραμματιστές μου λένε "χρησιμοποίησε αυτό" ή "αυτό μην το κάνεις έτσι" κλπ.
cherouvim
Script Master

Μέλος από: 13 Ιουλ 2005
Βοηθήματα: 7
Νέα: 1
Scripts: 1
Μηνύματα: 256+

Περιοχή: Athens, Greece
View users profile Visit posters website
blog linkedin twitter 
ΜήνυμαΣτις: 07 Αυγ 2007 08:28    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

_Invisible_ ανέφερε:
PS: Κάντε και κανένα σχόλιο για τον κώδικά μου. Με βοηθάει όταν προγραμματιστές μου λένε "χρησιμοποίησε αυτό" ή "αυτό μην το κάνεις έτσι" κλπ.

Μην γράφεις χύμα SQL μέσα στο κώδικά σου. Φτιάξε ένα php script με functions, ή ένα php class που να κάνει όλη την επικοινωνία με τη βάση. Μετά από το client κώδικα, θα καλείς αυτές τις functions.

_________________
blog
_Invisible_


Μέλος από: 16 Νοε 2006
Scripts: 2
Μηνύματα: 256+

Περιοχή: Greece
View users profile
ΜήνυμαΣτις: 07 Αυγ 2007 21:56    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Χρησιμοποιώ το class του phpBB για να εκτελώ εντολές τις SQL και δεν είχα κάποιο πρόβλημα μέχρι τώρα. Με αυτό που λες, θα μπορούσα να κάνω μια εφαρμογή να υποστηρίζει περισσότερες databases

Ωραία, έχουμε κάποιο άλλο σχόλιο; Μήπως κάποια άλλη ιδέα για την λύση του προβλήματος;

Ευχαριστώ.
_Invisible_


Μέλος από: 16 Νοε 2006
Scripts: 2
Μηνύματα: 256+

Περιοχή: Greece
View users profile
ΜήνυμαΣτις: 08 Αυγ 2007 04:16    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Με τρομερή λύπη μου διαπίστωσα στις 8/82007 ώρα 4:10 το πρωί ότι μία σελίδα του site μου με 7 queries, εκτελούσε 56 queries.

Γιατί γινόταν αυτό:
Μέσω του .htaccess μου έκανα τον apache να μου δώσει την δυνατότητα να χρησιμοποιώ δυναμικά URLs. Πχ. το http://localhost/index.php?act=login το έδινα έτσι: http://localhost/login και δούλευε κανονικά.

Το θέμα είναι ότι όλες τις σελίδες τις έκανα include, έτσι ποτέ δεν έδινες /login.php - μόνο login. Έτσι είχα το προνόμοιο να βάζω:

κώδικας:

if (!defined('ALLOW_ACCESS'))
{
   exit;
}


και να απαγορεύω το direct call μιας σελίδας. Τι έγινε τώρα: Είχα ένα module το οποίο έψαχνε σε ένα table για εικόνες και μετά κοιτούσε το URL κοιτούσε στο table αν υπήρχε η εικόνα και μετά κοιτούσε αν υπήρχε και στο file system της εφαρμογής. Αυτό το έκανα για να μην εμφανιστεί ποτέ το path μιας εικόνας.

Μέσα στο CSS μου, είχα background:url(../../images?im=background); και αυτό εμφάνιζε το background της σελίδας. Ναι, αλλά για να εμφανίσει την εικόνα αυτή, έκανε ένα καινούργιο request και περνούσε ξανά τους ελέγχους και όλα τα queries της εφαρμογής με αποτέλεσμα να δημιουργήσει 56 queries ενώ τα queries για εκείνη την σελίδα ήταν 7.

Αυτό γινόταν λόγω των εικόνων. Δυστυχώς, δεν μπορώ να κάνω τίποτα για να το αλλάξω, παρα μόνο να σβήσω το table με τις εικόνες και να δίνω full path στις εικόνες...

Κοίτα να δεις βρε παιδί τι πήγα και έπαθα... Τι να πεις...
_Invisible_


Μέλος από: 16 Νοε 2006
Scripts: 2
Μηνύματα: 256+

Περιοχή: Greece
View users profile
ΜήνυμαΣτις: 08 Αυγ 2007 05:08    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

ΗΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΗΗΑΗΑΗΑ

Το έφτιαξα!!!! Εκτελεί μόνο 7 queries τώρα Το πρόβλημα ήταν η ιστορία με τις εικόνες

Thanks guys για τις απαντήσεις!!!
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [10 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » PHP Προγραμματισμός και εφαρμογές » PHP Προγραμματισμός


Σχετικά θέματα
 Θέματα   Απ/σεις   Αποστολέας   Τελευταίο μήνυμα 
Αυτόματο Ajax DropDown List php Country, State, City 5 Admax 15 Μαρ 2014 18:52
Admax Εμφάνιση τελευταίου μηνύματος
Βελτίωση ταχύτητας στο φόρτωμα της σελίδας 2 philos 28 Δεκ 2013 10:00
gdimi Εμφάνιση τελευταίου μηνύματος
url validation 19 Serghio 30 Οκτ 2013 09:50
alou Εμφάνιση τελευταίου μηνύματος
Url shortner που να υποστηρίζει πάνω από 255 χαρακτήρες στο link 4 electrofunny 22 Ιουλ 2013 23:46
electrofunny Εμφάνιση τελευταίου μηνύματος
Βοήθεια URL rewrite σε .htaccess 2 pantelispyla 17 Ιουλ 2013 19:24
pantelispyla Εμφάνιση τελευταίου μηνύματος
 
Τώρα είναι 30 Ιουλ 2014 07:00 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos