ugrás a tartalomhoz

Link hozzáadási lehetőség látogatónak

Kabin ERROR · 2011. Május. 22. (V), 19.31
Sziasztok!
Azt szeretném kérdezni, hogy hogyan lehet egy olyan link hozzáadótt a lapra ami minden látogatonak megjelenik és hozzá aggya a kedvenc linkeit. És következő oda lépésekór is azt látja. Kérem segitsetek. Köszönöm.
 
1

Ahhoz, h legyen is értelme az

Totti 1986 · 2011. Május. 22. (V), 20.07
Ahhoz, h legyen is értelme az egésznek, először is kell egy regisztrációs felület, és egy belépési lehetőség, h tudd, kivel van dolgod.
Aztán adatbázis, létrehozol egy táblát, amiben a linkeket tárolod.
Egy űrlappal el lehet küldeni az a linket, te meg tárolod a táblában, az illető id-jével együtt.
2

Helyesírás

janoszen · 2011. Május. 22. (V), 20.56
Öregem, helyesírásra gyúrjál, különben megbuksz nyelvtanból, itt pedig előbb-utóbb nem fognak válaszolni, mert elege lesz mindenkinek az igénytelen postokból.
3

Node.js alatt

Poetro · 2011. Május. 23. (H), 00.05
Node.js alatt megvalósítottam neked ezt:
app.js
  1. /** 
  2.  * Module dependencies. 
  3.  */  
  4.   
  5. var express = require('express')  
  6.     sqlite = require('sqlite'),  
  7.     app = module.exports = express.createServer(),  
  8.     url = require('url')  
  9.     db = new sqlite.Database();  
  10.   
  11. // Configuration  
  12.   
  13. app.configure(function(){  
  14.   app.set('views', __dirname + '/views');  
  15.   app.set('view engine''jade');  
  16.   app.use(express.bodyParser());  
  17.   app.use(express.methodOverride());  
  18.   app.use(express.cookieParser());  
  19.   app.use(express.session({ secret: 'links', cookie:  
  20.                           {path : '/', httpOnly: false, maxAge: 31556926000}}));  
  21.   app.use(app.router);  
  22.   app.use(express.static(__dirname + '/public'));  
  23. });  
  24.   
  25. app.configure('development'function(){  
  26.   app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));  
  27. });  
  28.   
  29. app.configure('production'function(){  
  30.   app.use(express.errorHandler());  
  31. });  
  32.   
  33. // Database  
  34. db.open('myapp.db'function (err) {  
  35.   if (err) {  
  36.     throw err;  
  37.   }  
  38. });  
  39. db.execute(  
  40.   'CREATE TABLE IF NOT EXISTS links (' +  
  41.     'uid INTEGER PRIMARY KEY ASC, url TEXT, title TEXT, sess TEXT)',  
  42.   function (err) {  
  43.     if (!err) {  
  44.       console.log('Database creation successfull.');  
  45.     }  
  46.     else {  
  47.     }  
  48.   }  
  49. );  
  50.   
  51. // Routes  
  52. app.get('/'function (req, res) {  
  53.   db.execute('SELECT * FROM links WHERE sess = ?', [req.sessionID], function (err, rows) {  
  54.     res.render('index', {  
  55.       title: 'Linkek',  
  56.       links: rows,  
  57.       flash: req.flash()  
  58.     });  
  59.   });  
  60. });  
  61. app.post('/'function (req, res) {  
  62.   var uri = req.body.url,  
  63.       parsedURL = /^https?:\/\//.test(uri) && url.parse(uri, false);  
  64.   if (parsedURL && url.format(parsedURL) === uri) {  
  65.     db.execute(  
  66.       'INSERT INTO links (url, title, sess) VALUES (?, ?, ?)',  
  67.       [uri, req.body.title, req.sessionID],  
  68.       function () {  
  69.         res.redirect('/');  
  70.       }  
  71.     );  
  72.   }  
  73.   else {  
  74.     req.flash('error''Helytelen URL lett megadva.');  
  75.     res.redirect('/');  
  76.   }  
  77. });  
  78. app.param('uid'function (req, res, next, id) {  
  79.   db.execute(  
  80.     'SELECT * FROM links WHERE sess = ? AND uid = ?',  
  81.     [req.sessionID, id],  
  82.     function (err, rows) {  
  83.       if (!err && rows && rows.length) {  
  84.         req.link = rows[0];  
  85.         next();  
  86.       }  
  87.       else {  
  88.         req.flash('error''Helytelen URL azonosító.');  
  89.         res.redirect('/');  
  90.       }  
  91.     }  
  92.   );  
  93. });  
  94. app.get('/delete/:uid'function (req, res) {  
  95.   res.render('delete', {  
  96.     title: 'Linkek',  
  97.     link: req.link,  
  98.     flash: req.flash()  
  99.   });  
  100. });  
  101. app.post('/delete/:uid'function (req, res) {  
  102.   db.execute(  
  103.     'DELETE FROM links WHERE sess = ? AND uid = ?',  
  104.     [req.sessionID, req.link.uid],  
  105.     function () {  
  106.       res.redirect('/');  
  107.     }  
  108.   );  
  109. });  
  110.   
  111. // Only listen on $ node app.js  
  112.   
  113. if (!module.parent) {  
  114.   app.listen(3000);  
  115.   console.log("Express server listening on port %d", app.address().port);  
  116. }  
views/index.jade
h1= title
p Üdvözöl a\u0020
  em #{title}
.messages
  - each val, key in flash
    ul(class='message-'+key)
      - each message in val
        li= message
ul.links
  - each link in links
    li
      - if (link.title)
        #{link.title}:\u0020
      a(href=link.url) #{link.url}
      \u0020
      a(href='/delete/'+link.uid,title='Törlés') X
form(action='', method='post')
  fieldset
    legend Új link beszúrása
    .form-item
      label URL:
        span.required(title='Kötelező') *
        input(type='url', name='url', size='40')
    .form-item
      label Leírás:
        input(type='text', name='title', size='40')
    input(type='submit')
views/delete.jade
h1= title
p Üdvözöl a\u0020
  em #{title}
.messages
  - each val, key in flash
    ul(class='message-'+key)
      - each message in val
        li= message

form(method='post',action='/delete/'+link.uid)
  p Biztosan törölni szeretnéd a következő linket:

  .form-item
    label URL:\u0020
    #{link.url}
  - if (link.title)
    .form-item
      label Leírás:\u0020
      #{link.title}

  input(type='submit',value='Töröl')
Csak Express.js és Jade modulok telepítése szükséges. Az alapokat érdemes a következő paranccsal létrehozni:
$ express -s -t jade
Az alkalmazás így néz ki mindenfajta külalak módosítás nélkül: