Ärh, otsikko ei meinaa millään tulla kokonaisuudessaan. Oikea otsikko on: Access denied for user 'odbc'@'localhost'
Asensin uuteen koneeseen Xampin. Siis sen paketin, jossa on mukana php, mysql, apache, phpmyadmin, winmysqladmin jne.
Ensin ihmettelin kun winmysqladminissa ei pystynyt tekemään databases-välilehdellä uusia kantoja http://ameba.lpt.fi/~imponsan/winmysqladmin.jpg
Kun yritin samaa komentokehotteelta, tuli tällainen viesti http://ameba.lpt.fi/~imponsan/vika.jpg Yritin katsoa netistä ohjeita (-u käyttäjätunnus -p) ja tehdä sen mukaan, mutta sekään ei auttanut.
Taistelin tuon kans koko päivän, mutta nyt en enää jaksa. Asensin jopa Xampin uudestaankin. Tietääkö joku mitä minun pitäis nyt tehdä?
Tiedostosta /xampp/security/mysqlrootpasswd.txt löytyy tuo oletussalasana ainakin tässä versiossa mikä minulla on käytössä.
edit: Vai oletko jo vaihtanut tuon salasanan jostain?
Tässä versiossa, mikä mulla on, ei ole tuota tiedostoa missään. Yritin vaihtaakkin käyttäjätunnusta ja salasanaa. Sen jälkeen kaikki pelitti entistä huonommin ja jouduin asentamaan koko Xamppin uudestaan. Ja kun vain testailen näitä asioita omalla koneella, ei kai niitä salasanoja ja muita tarvitsekaan vaihtaa?
Tällä hetkellä homma menee niin, että oon päässyt käsittelemään kantaa komentorivin kautta. Olen tehnyt sinne tauluja ja sarakkeita. odbc-herjaa ei enää ole näkynyt.
Mutta nyt herjaa sitten nettisivu. http://ameba.lpt.fi/~imponsan/mysql-vika.jpg
Homma menee siis niin, että on olemassa lomake.php, joka täytetään. Muuten lomake.php on täynnä html-koodia, mutta sielä on yks php:llä tehty <? print date("j.n.Y"); ?>. Sen takia tiedostopääte .php. Lomake.php kutsuu formissaan action="punainen_kasittely.php".
Tarkoitus olis, että punainen_kasittely.php:ssä syötetyt tiedot tallentuis kantaan. Punainen_kasittely.php:kin on täynnä html:ää, jonka seassa on echo-lauseita. Esim. <? echo $sahkoposti;?> Nämä echot on niiden tekstikenttien ym. tilalla, jotka lomake.php:ssä täytettiin.
Sitten mulla on punainen_kasittely.php:ssä body:n sisässä ennen formin alkua
<? $paikkakunta = $_post['paikkakunta']; $sahkoposti = $_post['sahkoposti']; $sahkoposti = $_post['asiakas']; $sahkoposti = $_post['tuote']; $sahkoposti = $_post['tilausnro']; $sahkoposti = $_post['sulatusnro']; $sahkoposti = $_post['seloste1']; $sahkoposti = $_post['palautusnro']; mysql_select_db("testikanta") or die(mysql_error()); mysql_query("INSERT INTO testikanta (sahkoposti) VALUES('$text') ") or die(mysql_error()); exit(); ?>
Tämän jälkeen tulee formi, hirveästi html:ää ja echo-lauseet siellä välissä.
Kun php-tiedostoja testaa selaimella kirjottelemalla //localhost, niin lomake.php:n pystyy täyttämään ihan hyvin, mutta kun painaa lähetä-nappulaa, jonka jälkeen pitäis mennä punainen_kasittely.php:n, niin tulee tämä herja http://ameba.lpt.fi/~imponsan/mysql-vika.jpg
Osaatteko sanoa, missä vika?
Hetkonen... siirsin ?>-merkin exit();:n jälkeen formin loppuun, koska onhan ne echo-lauseetkin php:tä ja pitää saada php-tagien sisään. Mutta ei se siltikään putkeen mennyt.
http://ameba.lpt.fi/~imponsan/vika2.jpg
En löydä silti punainen_kasittely.php riviltä 36 mitään vikaa. Homma menee niillä kohdin näin:
34 exit(); 35 36 <form name="punainen_form" enctype="multipart/form-data" method="post"> 37 <div id="punainen">
Laitoin numerot rivien eteen vain selventääkseni millä rivillä liikutaan. En käsitä mikä tässä kusee. Alkaa tulla paniikki, koska hommalla on deadline, mutta juttu ei vaan edisty.
PHP-tagien sisällä ei voi olla suoraan HTML:ää. Lopeta PHP ?>-tagilla ennen noita HTML-rivejä ja tarvittaessa laita uusi <?php niiden jälkeen.
Jeps. Tein tuon, mutta sitten ollaan taas tässä viassa http://ameba.lpt.fi/~imponsan/mysql-vika.jpg
Tuossa ei taida olla muodostettu yhteyttä tietokantaan?
Jostain syystä tuo saattaa myös haluta yhteyden tunnisteen, vaikka ei sen kyllä pitäisi.
Edit: Eihä sen yhteyden tietenkään pitäisi puuttua, jos jo user:ikin on tiedossa. Eikä tuossa siitä tunnisteenkaan puutteessa ole virhe. Tuossa lukee 'using password: no'. eli et ole antanut salasanaa(olettaisis että käyttäjälläsi on salasana).
Jes! Homma pelaa. Ei mitään ongelmaa enää. =)
Niin, ja ratkaisu oli?
Aihe on jo aika vanha, joten et voi enää vastata siihen.