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
/**
 * Module dependencies.
 */

var express = require('express')
    sqlite = require('sqlite'),
    app = module.exports = express.createServer(),
    url = require('url')
    db = new sqlite.Database();

// Configuration

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser());
  app.use(express.session({ secret: 'links', cookie:
                          {path : '/', httpOnly: false, maxAge: 31556926000}}));
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
  app.use(express.errorHandler());
});

// Database
db.open('myapp.db', function (err) {
  if (err) {
    throw err;
  }
});
db.execute(
  'CREATE TABLE IF NOT EXISTS links (' +
    'uid INTEGER PRIMARY KEY ASC, url TEXT, title TEXT, sess TEXT)',
  function (err) {
    if (!err) {
      console.log('Database creation successfull.');
    }
    else {
    }
  }
);

// Routes
app.get('/', function (req, res) {
  db.execute('SELECT * FROM links WHERE sess = ?', [req.sessionID], function (err, rows) {
    res.render('index', {
      title: 'Linkek',
      links: rows,
      flash: req.flash()
    });
  });
});
app.post('/', function (req, res) {
  var uri = req.body.url,
      parsedURL = /^https?:\/\//.test(uri) && url.parse(uri, false);
  if (parsedURL && url.format(parsedURL) === uri) {
    db.execute(
      'INSERT INTO links (url, title, sess) VALUES (?, ?, ?)',
      [uri, req.body.title, req.sessionID],
      function () {
        res.redirect('/');
      }
    );
  }
  else {
    req.flash('error', 'Helytelen URL lett megadva.');
    res.redirect('/');
  }
});
app.param('uid', function (req, res, next, id) {
  db.execute(
    'SELECT * FROM links WHERE sess = ? AND uid = ?',
    [req.sessionID, id],
    function (err, rows) {
      if (!err && rows && rows.length) {
        req.link = rows[0];
        next();
      }
      else {
        req.flash('error', 'Helytelen URL azonosító.');
        res.redirect('/');
      }
    }
  );
});
app.get('/delete/:uid', function (req, res) {
  res.render('delete', {
    title: 'Linkek',
    link: req.link,
    flash: req.flash()
  });
});
app.post('/delete/:uid', function (req, res) {
  db.execute(
    'DELETE FROM links WHERE sess = ? AND uid = ?',
    [req.sessionID, req.link.uid],
    function () {
      res.redirect('/');
    }
  );
});

// Only listen on $ node app.js

if (!module.parent) {
  app.listen(3000);
  console.log("Express server listening on port %d", app.address().port);
}
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: