Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL jota käytetään PHP:sta ja JAVA Applicationista

Sivun loppuun

kpzpt [28.01.2011 07:55:29]

#

Database

Minulla on tämä sivustoni yhä rakenteilla, olen nyt ekat versiot kirjautumisesta rakentanut, PHP avulla, mutta tuli tilanteita turvallisuus tarkistusten kohdalla jolloinka MySQL on parempi kuin tiedostoihin tallentaminen, tälläinen tilanne tuli kun alan laskemaan kuinka monta kirjautumis yritystä on jo kokeiltuna.

Onko teillä jotain suomenkielistä linkkiä, jossa olisi neuvoja MySQL käyttöön, tarkoitus että sama databasea käytettäisiin sekä PHP että JAVA ohjelmasta, jotta sitten voin varmistaa mitä käyttäjiä palvelimeen pyrkii ja joilla on oikeuksia käyttää sivustoa.

Eli ensimmäinen on tämä databasen installointi palvelimeen, minä olen jo yrittänytkin nuodattaa googlen neuvoja ja olen asentanut kolme pakettia Ubuntu palvelimeen

sudo apt-get install mysql-server mysql-client php5-mysql

Riittävätkö nuo alkuun, minulla on tarve siis käyttäjätiedot tallentaa databaseen, tätä databasea sitten luetaan JAVA ja PHP käsin.
JAVA:lla voi poistaa käyttäjiä ja muuttaa asetuksia, ja PHP varmistaa käyttäjän ja lisää uusia käyttäjiä.

Databaseen ei saa olla mitään pääsyä netistä käsin, vaan kaikki databasen toiminta tulee tapahtua serverin puolelta, PHP ja JAVA käsin.

Database on kuulemma tosi nopeata oppia, mutta database ohjeet ovat minusta varsin mittavat ja sisältävät aika vaikeita englanninkielisiä käsitteitä.

En haluaisi käyttää phpmywebmin vai mikäs se nyt oli, tahtoisin koodaamalla lisätä kaikki kentät ja alustaa databasen.

Ottaisin mielelläni vastaan kaikenlaista pohdintaa helpottavaa lausetta, ennenkuin sitten testaan PHP puolella MySQL testejäni.

------

Blaze [28.01.2011 08:23:28]

#

kpzpt kirjoitti:

sudo apt-get install mysql-server mysql-client php5-mysql

Tarvit vielä Javaa varten JDBC-ajurin, libmysql-java

kpzpt kirjoitti:

Databaseen ei saa olla mitään pääsyä netistä käsin, vaan kaikki databasen toiminta tulee tapahtua serverin puolelta, PHP ja JAVA käsin.

Oikein. On todennäkösesti oletusasetus, mut tosiaan kantsii laittaa bindaamaan se vaan localhostiin.

kpzpt [28.01.2011 09:05:55]

#

PHP ja database

Minulla on nyt asennettuna mysql server client ja php ja java kirjastot.
Lisänä asensin mysql-query-browserin, tai jotain noin.

Nyt sitten alan testaamaan näitä PHP koodi pätkiä mitä netti on täynnä.
Tässä heti ensimmäiseen riviin pysähtyy minun koodini, ei virheilmoitusta, eikä mitään muutakaan, mutta tämän rivin jälkeen ei PHP koodi enää toimi ?

$con = mysql_connect("127.0.0.1","root","salasana");
tai
$con = mysql_connect("localhost","root","salasana");

Laitoin tuon rivin jälkeen vielä echo "Näkyykö!"; rivin mutta, ei enää tulostu ?

Toivottavasti en ihan joka rivin kohdalla joudu kyselemään neuvoja ;)

------

Milo [28.01.2011 09:13:05]

#

ini_set("error_reporting", E_ALL | E_STRICT);

kpzpt [28.01.2011 09:27:32]

#

Ei virheilmoitusta

Ei virheilmoitusta, mutta koodin kulku pysähtyy yhä tuohon samaan mainittuun riviin ?
Mainitun rivin jälkeen ei enää echo ""; tulosteet kirjoita selaimeen ?

ini_set("error_reporting", E_ALL | E_STRICT);

echo "<br>database ok";

$con = mysql_connect("127.0.0.1","root","salasana");

echo "<br>database ok2";

if (!$con)
{
  die('Could not connect: ' . mysql_error());
}

echo "<br>database ok3";

if (mysql_query("CREATE DATABASE my_db",$con))
{
  echo "Database created";
}
else
{
  echo "Error creating database: " . mysql_error();
}

Ainoastaan 'database ok' tulostuu selaimeen ?

Edit. lisänä huomasin että nuo mysql_connect ("","","") sulkujen sisäiset arvot voivat olla mitä tahansa, ja aina koodin kulku pysähtyy riviin ?

------

kpzpt [28.01.2011 11:08:00]

#

Heh!

Tässä näkee mikä peukalo olen tietokoneen säätelyssä, vaikka kokemusta on jostain -85 lähtein, tässä minä huvikseni käynnistin tietokoneen uudelleen ja näin sitten pääsin mystisestä pysähdyksestä eteenpäin, ilmeisesti mysql restart ei ollut jostain syystä riittävää, jokin osa Ubuntua täytyi uudelleen käynnistää, jotta MySQL toimisi ?

------

Tässä on nyt sitten kotikoneessa toimiva PHP testi esimerkki, jota täytyy hieman jalostaa omiin tarpeisiin.

Minulla on siis tarve tallentaa käyttäjätiedot mysql databaseen.

UserName
Password
Email
FirstName
LastName
AppletKäynnistysID
+ Jotain muuta vielä myöhemmin.

Voisinko muutamia opiskeluja helpottavia mietteitä vastaanottaa, databasea käytetään PHP ja serverin JAVA APPLICATION ohjelmissa, database tallentaa siis käyttäjätiedot, joista haetaan lupa Appletin käynnistämiseen ja APPLETKÄYNNISTYSID.

Kummastelen kuinka turvallisuus kohdat rakennetaan, esim. ->
Kuinka säädetään, max kyselyt päivässä.
Kuinka estän että jokin tietty IP ei ryhdy luomaan lukemattomia käyttäjiä.
Jos sitten näitä testi databaseja haluan myöhemmin deletoida, niin, riittääkö kun deletoin kansion /var/lib/mysql/XXXXXX joka kuvaa databasen nimeä, tuhoutuuko tällöin kaikki database tiedot varmasti ?
Kuinka säädän mysql käyttöön esim, 128m ram muistia, mutta ei sen enempää.
Täytyykö minun luoda kokonaan uusi database jos haluan liittää myöhemmin uuden kentän, esim KÄYNNISTYSKERRAT int, lienee ilmeisesti että Databasea voi myöhemmin laajentaa uusilla kenttä arvoilla ?

------

Blaze [28.01.2011 11:34:07]

#

kpzpt kirjoitti:

Jos sitten näitä testi databaseja haluan myöhemmin deletoida, niin, riittääkö kun deletoin kansion /var/lib/mysql/XXXXXX joka kuvaa databasen nimeä, tuhoutuuko tällöin kaikki database tiedot varmasti ?

Älä missään tapauksessa poistele mitään tiedostoja. Tuota varten SQL:ssä on DROP DATABASE.

kpzpt kirjoitti:

Kuinka säädän mysql käyttöön esim, 128m ram muistia, mutta ei sen enempää.

Mun tietääkseni missään ei oo mitään yhtä asetusta, jolla sais määrätä muistinkäytön, mut jos tsekkaat MySQL:n asetustiedoston (arvatenki /etc/mysql/my.cnf tai /etc/my.cnf), niin siellä on useampia buffer- ja pool-asetuksia, mitä voi maun mukaan säätää.

kpzpt kirjoitti:

Täytyykö minun luoda kokonaan uusi database jos haluan liittää myöhemmin uuden kentän, esim KÄYNNISTYSKERRAT int, lienee ilmeisesti että Databasea voi myöhemmin laajentaa uusilla kenttä arvoilla ?

Sulla on muuten varmaan käsitteet database ja table hiukan sekasin. Ensimmäisen sisällä on useampi jälkimmäisiä. Mut joo, databaseen voi toki luoda uusia tauluja (CREATE TABLE), ja olemassaoleviin tauluihin voi luoda uusia sarakkeita (ALTER TABLE).

kpzpt [28.01.2011 12:12:38]

#

Database!

Nuo PHP esimerkit tuntuvat toimivan ihan ok, täytyy viikonlopun aikana testata loputkin kohdat joita PHP rutiineihin sitten asennan, kiitosta avusta !

------

Java JDBC

package main2;

import java.sql.DriverManager;

public class Connection
{
        public static void main(String[] args)
        {
                DB db = new DB();
                Connection conn=db.dbConnect
                ( "jdbc:mysql://localhost:3306/my_db", "root", "salasana" ) ; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
        }
}

class DB
{
        public DB()
        {
        	//
        }

        public Connection dbConnect ( String db_connect_string , String db_userid , String db_password )
        {
                try
                {
                        Class.forName("com.mysql.jdbc.Driver").newInstance(); //$NON-NLS-1$
                        Connection conn = ( Connection ) DriverManager.getConnection ( db_connect_string, db_userid, db_password );

                        System.out.println("connected"); //$NON-NLS-1$
                        return conn;
                }
                catch (Exception e)
                {
                        e.printStackTrace();
                        return null;
                }
        }
};

Tämä koodi palauttaa virheilmoituksen ->

java.lang.ClassCastException: com.mysql.jdbc.JDBC4Connection cannot be cast to main2.Connection
	at main2.DB.dbConnect(Connection.java:27)
	at main2.Connection.main(Connection.java:10)

Tämä koodi on tarkoitettu liittymään saman PHP:n rakentamaan Databaseen "my_db" miksi ei toimi ?

------

Mod. vaihtoi oikeat kooditagit.

kpzpt Edit.
Tämäkin oli aika noob ongelma, Java luokka oli nimetty väärin, "Connection", koetin "Connection123" nimellä ja lähti toimimaan..

------

punppis [28.01.2011 13:15:10]

#

Kumma ettei kukaan ole tarjonnut putkan MySQL-opasta. Itse ainakin opin sen avulla SQL:n aikoinaan.

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=mysqlphp01

kpzpt [28.01.2011 15:47:24]

#

MySQL opas!

Ongelmana oli lähinnä MySQL installointi ja asettaminen käyttöön, sekä PHP että Java puolella, aikaisemmat testit olivat päättyneet siihen että connectit databaseen eivät toimikkaan !

------

Olen nyt päätynyt lukemaan w3schools mysql opasta, ja se vaikuttaakin tähän käyttäjä nimien tallentamiseen varsin kattavalta, mutta, englannin kielinenhän w3schools tietysti harmi kyllä on.

Yritän viikonlopun aikana ja viimeistään ennen keskiviikkoa asettaa tuon kirjautumisen tuonne palvelimeeni, kyselen sitten näitä typeriä kysymyksiäni täällä putkassa, kiitosta vaan näin ennakkoon.

------

Grez [28.01.2011 15:57:27]

#

Englanti on kyllä hyvä opetella. Joihinkin asioihin löytyy jonkun verran dokumentaatiota suomeksikin ja joitain oppaita ja kirjoja on suomeksi, joilla pääsee alkuun. Mutta en kyllä tiedä yhtään hyvää koodaria Suomessa, joka ei osaisi englantia.

kpzpt [28.01.2011 18:19:04]

#

Lopetus!

Minäpä en ole ohjelmoija ollenkaan, harrastan sotalautapelejä ja rakentamilleni olen rakentamassa palvelua ;)

Olihan minulla tosin pitkä englanti lukiossa aikoinaan kaikki kurssit 9, mutta, en lukenutkaan juurikaan läksyjä, jos olisin lukenut niin kaikki kurssit olisi ollut 10, mutta, ei tämä kuitenkaan tarkoita että englannin kieli olisi helppoa mysql sivustolla, minä koen että tämä tekninen englanti on tottumattomalla, erittäin raskasta luettavaa, ei minulla ole mitään refleksejä mysql sivun englannin kieleen, eikä muittenkaan tietokone ohjelmoinnista neuvovien sivustojen ?

------

Grez [28.01.2011 18:28:08]

#

kpzpt kirjoitti:

Minäpä en ole ohjelmoija ollenkaan, harrastan sotalautapelejä ja rakentamilleni olen rakentamassa palvelua ;)

Jaa jaa, no kukas sen sun rakentamas palvelun sitten ohjelmoi, eli on ko. palvelun ohjelmoija? Kannattaisi ehkä pistää ennemmin se ohjelmoija lukemaan niitä oppaita.

Hennkka [28.01.2011 18:50:11]

#

Itse suosittelen käyttämään PDO:ta mysql_-juttujen sijaan. Sitä suositellaan myös Ohjelmointiputkan oppaassa.

Edit. Hassuu, heitti saman viestin kahdesti, vaikka lähetin vain kerran


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta