Διάβασμα πληροφοριών από ένα cookie

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

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

Απάντηση
manosm
Δημοσιεύσεις: 56
Εγγραφή: 12 Ιούλ 2005 14:51
Τοποθεσία: ΜΑΡΟΥΣΙ
Επικοινωνία:

Διάβασμα πληροφοριών από ένα cookie

Δημοσίευση από manosm » 11 Απρ 2006 00:25

exo dhmiourgisei to exis cookie se ena home page:

<script language="javascript" type="text/javascript">
<!-- // hiding from older browsers

// define the cookie contents for the wishlist
var cookieString = 'copperfry:20 inch copper pan=prodblank&' +
'greenfry:20 inch green pan=prodblank&' +
'silverfry:20 inch silver pan with cover=product1&' +
'redfry:20 inch red pan=prodblank';

// function to update/create a new session cookie for
// the current domain, where the name of the cookie
// is 'name' and the data stored in the cookie is in
// the 'value'
function SetCookie(name, value) {
document.cookie = name + "=" + escape(value);
}
// -->
</script>

mipos tha mporouse na me voithisei kapoios oste na mporeso na emfanizo ta periexomena tou cookie se mia selida allh html selida kai na emfanizontai dipla oi eikones pou antistoixoun sto kathe proion pou exei to cookie me ena link pou na pigainei stin selida tou antistoixou proiontos? Episynapto sxetikh photo gia to pos tha ithela na emfanizetai.

Euxaristo prokatavolika opoion voithisei.
Συνημμένα
cookie picture.jpg

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Διάβασμα πληροφοριών από ένα cookie

Δημοσίευση από skeftomilos » 12 Απρ 2006 01:38

Κατ' αρχήν θα πρέπει να ξεκινήσεις με τη μορφή που θέλεις να έχει η HTML σου. Μετά θα πρέπει να μπορέσεις να διαβάσεις τα περιεχόμενα του cookie, μόνο που φοβάμαι πως δεν είναι σωστά δομημένο και θα δυσκολευτείς. Η προσωπική μου ρουτίνα για ανάγνωση cookies είναι:

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

function getCookie&#40;name&#41; &#123;
  var re = new RegExp&#40;name + "=&#40;&#91;^;&#93;*&#41;", "i"&#41;
  var match = document.cookie.match&#40;re&#41;
  if &#40;match&#41; return unescape&#40;match&#91;1&#93;&#41;
&#125;
Τέλος θα πρέπει να γίνει η σύνθεση του HTML template με τα δεδομένα ώστε να προκύψει η τελική HTML. Μπορείς να τη γράψεις στη σελίδα με διάφορους τρόπους, ο ευκολότερος είναι η document.write().
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

manosm
Δημοσιεύσεις: 56
Εγγραφή: 12 Ιούλ 2005 14:51
Τοποθεσία: ΜΑΡΟΥΣΙ
Επικοινωνία:

Διάβασμα πληροφοριών από ένα cookie

Δημοσίευση από manosm » 12 Απρ 2006 02:23

katarxin euxaristo gia ton kopo pou ekanes na apantiseis.
meta apo arketo kopo eftiaxsa auto to script me document write pou doulevei. Mipos tha mporouse kapoios na voithisei oste na ginei se ligoteres grammes. p.x me tin xrisi for opou xreiazetai h me tin xrisi kapoiou array?

<script language="javascript">
<!--

if (document.cookie)
{
var mycookie=document.cookie;
var fixed_cookie=unescape(mycookie);
var thepairs=fixed_cookie.split("=");
var pair1=thepairs[0];
var pair2=thepairs[1];
var pair3=thepairs[2];
var pair4=thepairs[3];
var pair5=thepairs[4];
var pair6=thepairs[5];
var namevalue1=pair1.split(":");
var namevalue2=pair2.split(":");
var namevalue3=pair3.split(":");
var namevalue4=pair4.split(":");
var namevalue5=pair5.split(":");
var namevalue6=pair6.split(":");
document.write("<table>")
document.write("<tr><td valign=bottom><img src='images/copperfry.jpg' width='250' height='100' alt='copper pan'/></td>");
document.write("<td><h4 align=right valign=top>"+namevalue3[1]+"<\/td><\/tr>");
document.write("<tr><td colspan=2 align=right>See the <a href='#'>details</a><\/td><\/tr>");
document.write("<tr><td valign=bottom><img src='images/greenfry.jpg' width='250' height='100' alt='green pan'/></td>");
document.write("<td><h4 align=right valign=top>"+namevalue4[1]+"<\/td><\/tr>");
document.write("<tr><td colspan=2 align=right>See the <a href='#'>details</a><\/td><\/tr>");
document.write("<tr><td valign=bottom><img src='images/silverfry.jpg' width='250' height='100' alt='silver pan'/></td>");
document.write("<td><h4 align=right valign=top>"+namevalue5[1]+"<\/td><\/tr>");
document.write("<tr><td colspan=2 align=right>See the <a href='#'>details</a><\/td><\/tr>");
document.write("<tr><td valign=bottom><img src='images/redfry.jpg' width='250' height='100' alt='red pan'/></td>");
document.write("<td><h4 align=right valign=top>"+namevalue6[1]+"<\/td><\/tr>");
document.write("<tr><td colspan=2 align=right>See the <a href='#'>details</a><\/td><\/tr>");
document.write("<\/table>")
}
else {
document.write("There either are no cookies or the cookie was just set. " +
"Try reloading the page to see cookies.");
}
//-->
</script>

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Διάβασμα πληροφοριών από ένα cookie

Δημοσίευση από skeftomilos » 13 Απρ 2006 01:50

Μια προσέγγιση είναι η παρακάτω:

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

<html>
  <body>
    <script type="text/javascript">
      var cookieString =
        'copperfry&#58;20 inch copper pan' +
        '=prodblank&greenfry&#58;20 inch green pan' +
        '=prodblank&silverfry&#58;20 inch silver pan with cover' +
        '=product1redfry&#58;20 inch red pan' +
        '=prodblank'

      var template = &#123;
        header &#58; '<table border="1">',
        item   &#58; &#91;
                   '<tr>',
                   '  <td valign=bottom>',
                   '    <img src="images/@NAME.jpg" width="250" height="100" alt="@NAME">',
                   '  </td>',
                   '  <td align="right" valign="top">',
                   '    @VALUE',
                   '  </td>',
                   '</tr>',
                 &#93;.join&#40;''&#41;,
        footer &#58; '</table>'
      &#125;

      var out = &#91;&#93;
      out.push&#40;template.header&#41;
      var pairs = cookieString.split&#40;'='&#41;
      for &#40;var i = 0; i < pairs.length; i++&#41; &#123;
        var pair = pairs&#91;i&#93;
        var namevalue = pair.split&#40;'&#58;'&#41;
        var name = namevalue&#91;0&#93;
        var value = namevalue&#91;1&#93;
        out.push&#40;template.item.replace&#40;/@NAME/g, name&#41;.replace&#40;/@VALUE/g, value&#41;&#41;
      &#125;
      out.push&#40;template.footer&#41;
      document.write&#40;out.join&#40;''&#41;&#41;
    </script>
  </body>
</html>
Η χρήση template απλοποιεί κάπως την κατάσταση. Αν σου αρέσει σαν ιδέα υπάρχει διαθέσιμο ένα έτοιμο templating system με αρκετές δυνατότητες: JavaScript Templates.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

manosm
Δημοσιεύσεις: 56
Εγγραφή: 12 Ιούλ 2005 14:51
Τοποθεσία: ΜΑΡΟΥΣΙ
Επικοινωνία:

Διάβασμα πληροφοριών από ένα cookie

Δημοσίευση από manosm » 13 Απρ 2006 14:18

Δεν είναι κάθολου άσχημο το template. Υπάρχει όμως ένα άλλο πρόβλημα καθώς δουλεύω με τα cookies. Στο intro page έχω ένα flash και έχω περάσει ένα cookie που κάνει redirect την σελίδα του επισκέπτη αφόσον αυτός επισκέπτεται το site για δεύτερη φορά, στο main page. To πρόβλημα είναι ότι στο Intro page υπάρχει και το cookie που έφτιαξα παραπάνω. Έχω βάλει το cookie να γίνεται set κατά την διάρκεια του <body onload (whishlist, pan)>.Όταν ο επισκέπτης μπαίνει στο site για πρώτη φορά δεν υπάρχει πρόβλη μα αφου φορτώνονται και τα 2 cookies. Όταν ο επισκέπτης έρχεται για δεύτερη φορά δεν φορτώνει το πρώτο cookie αφού γίνεται αμέσως redirect στο main. page. Εψάξα και βρήκα ότι για να παίξει το onload πρέπει να φορτωθεί όλη η σελίδα πράγμα που δεν γίνεται λόγω του redirect cookie. Προσπάθησα να βγάλω το onload και να κάνω ένα κλασσικό cookie αλλά τίποτα. Υπάρχει τρόπος να δημιουργηθεί function που πρώτα να φορτώνεται το πρώτο cookie στο intro και έπειτα να γίνεται το redirect?

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Διάβασμα πληροφοριών από ένα cookie

Δημοσίευση από skeftomilos » 14 Απρ 2006 00:26

Δοκίμασα το παρακάτω και δούλεψε. Στην πρώτη σελίδα:

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

<script type="text/javascript">
  document.cookie = 'blah=blah'
  location.href = 'page2.htm'
</script>
Και στη δεύτερη:

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

<script type="text/javascript">
  alert&#40;document.cookie&#41;
</script>
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

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

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