Osaisiko joku auttaa ja löytyykö jotain koodia projektiini?
En tiedä miten on paras tapa toteuttaa. Voisiko saada valmiit koodit?
Projektissani tarvitsen tietokantataulut esimerkiksi: users, posts ja images.
Users -tauluun käyttäjän tiedot kirjautumista varten.
Posts -tauluun kaikkien käyttäjien viestit. (Käyttäjä voi kirjoittaa useita viestejä)
Images -tauluun viestin yhteydessä lomakkeella kuvia. (Käyttäjä voi lisätä useita kuvia kerralla)
Tässä esimerkki:
(nimi ja kuvaus='posts' ja kuva(t)='images'-kantaan ja kuvat (upload) palvelimelle.)
<form action="#" method="post"> <input type="text" name="teksti"> <input type="hidden" name="user_id"> <input type="file" name="kuva" multiple="multiple"> <input type="submit" value="Tallenna" name="submit"> </form>
Sitten tarvitsen sivun, josta kirjautunut käyttäjä näkee listatttuna omat viestit ja viestiin liittyvätkuvat.
CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nimi` varchar(25) NOT NULL, `salasana` varchar(25) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=40 ; INSERT INTO `users` (`id`, `nimi`, `salasana`) VALUES (1, 'nimi1', 'salasana1'), (2, 'nimi2', 'salasana2'), (3, 'nimi3', 'salasana3'); CREATE TABLE IF NOT EXISTS `posts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `teksti` varchar(25) NOT NULL, `user_id` varchar(25) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=40 ; INSERT INTO `posts` (`id`, `teksti`, `user_id`) VALUES (17, 'tekst1', '3'), (19, 'teksti2', '2'), (39, 'ksti3', '3'); CREATE TABLE IF NOT EXISTS `images` ( `id` int(11) NOT NULL AUTO_INCREMENT, `kuva` varchar(25) NOT NULL, `posts_id varchar(25) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; INSERT INTO `images` (`id`, `nimi`, `posts_id`) VALUES (1, 'kuva.jpg', '17'), (2, 'kuva33.jpg', '19'), (3, 'kuva36.jpg', '19'), (4, 'kuva38.jpg', '19'), (5, 'kuva67.jpg', '39');
Ongelma, johon haluasin ratkaisun on esimerkiksi, että jos käyttäjä haluaa muokata viestiään (`posts`).
Jos sen toteuttaa esimerkiksi: index.php?edit_id=39 . Ongelma on se, että kuka tahansa pääsee muokkaamaan toisen käyttäjän viestiä kirjoittamalla osoiteriville id:n.
En ole varma miten saa `images`-tauluun lisättyä viestin `posts` id:n.
Toivottavasti saan tähän jonkun toteutustavan, joka olisi mahdollisesti parempi mitä tähän havainnollistin. Voisiko saada PHP ja SQL.
Sopetus kirjoitti:
Osaisiko joku auttaa ja löytyykö jotain koodia projektiini?
En tiedä miten on paras tapa toteuttaa. Voisiko saada valmiit koodit?
Vai että valmiit koodit... En ihan älyä mikä pointti on lähteä tekemään "omaa projektia" jos ei ole osaamista eikä kiinnostusta opetella ihan perusasioita.
Sopetus kirjoitti:
Ongelma, johon haluasin ratkaisun on esimerkiksi, että jos käyttäjä haluaa muokata viestiään (`posts`).
Jos sen toteuttaa esimerkiksi: index.php?edit_id=39 . Ongelma on se, että kuka tahansa pääsee muokkaamaan toisen käyttäjän viestiä kirjoittamalla osoiteriville id:n.
Ongelma ratkeaa siten, että kun käyttäjä kirjautuu, kirjaat käyttäjän istuntoon tiedon siitä, kuka käyttäjä on kirjautuneena. (Esim. tallentamalla käytätjän Id:n sessioon) ja sitten kun käyttäjä haluaa käsitellä tallennettua viestiä, niin tarkistaa että kyseessä on ko. käyttäjän viesti.
Voisikos tämän projektin haudata, jos koodaustaitoa ei ole, ja käyttää jotain valmista alustaa (wordpress, concrete5).
Concrete5 ainakin tukee asetuksista klikkailemalla suoraan tuota, ettei muita kuin omia sivuja voi muokata, veikkaan että myös Wordpress.
Eikä välttämättä tarvitse kokonaista cms:ää asentaa vaan siirtyä käyttämään puolivalmista frameworkia kuten Symfony tai Zend Framework. Ei ole mitään järkeä yrittää tehdä alusta loppuun omalla koodilla ja php:n c-tasoisella standardikirjastolla, koska siitä tulee vain huonoa jälkeä ja pahaa mieltä. Samalla ratkeaa se valmiin koodin hankkimisen ongelma.
Voisiko joku auttaa huonoa koodaria ja saisiko valmiin koodin ylhäällä esittämääni projektiin ja pääsisin edistymään?
Wordpress
Aihe on jo aika vanha, joten et voi enää vastata siihen.