Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Php/MySql -sivut takkuilee

Sivun loppuun

J.J. [07.05.2010 20:10:30]

#

Olen vasta-alkaja netti/php-ohjelmoinnissa. Olen tehnyt php:lla sivuja, joissa käyttäjä täyttää lomakkeen, joka tallennetaan mysql-tietokantaan. Eli systeemi on vastaavanlainen: sivulla LOMAKE.PHP on lomake joka täytetään ja lähetetään tallennettavaksi sivulle TALLENNA.PHP. Tallennuksen jälkeen käyttäjä ohjataan sivulle VALMIS.HTML.

Ongelma on seuraava; joskus (harvoin) tilanne pysähtyy sivulle TALLENNA.PHP (näkyviin jää tyhjä ikkuna), eikä tietokantaan tallennu mitään. Johtuuko tällaiset viat hitaasta serveristä? Sivut nimittäin sijaitsevat ilmaisella kotisivutilalla :) Entä pystyykö tallaisia virheitä huomioimaan php-koodissa? Kotikoneelle pystytetyllä serverillä sivut ovat toimineet täydellisesti.

Macro [07.05.2010 20:16:26]

#

Luultavasti virhe tulee, kun syötät jotain erikoismerkkejä, kuten ". Käytä mysql_real_escape_string()-funktiota, kun tallennat dataa.

$viesti = mysql_real_escape_string($_POST["viesti"]);

Yleensä koodi helpottaisi aika paljon.

J.J. [08.05.2010 00:13:35]

#

Juu, mainitsemasi asiat on kyllä huomioitu. Tää kertomani ongelma on sattumanvarainen, eli samoilla tiedoilla voi toimia tai kaatua. Olen testannut kotipalvelimella sivuja paljon eikä mitään vikoja ilmene, joten en usko koodissa olevan varsinaisia vikoja. Viat ilmenee ainoastaan tällä nettisivutilalla (freevar.com). Lähinnä mietityttää että häviäiskö viat maksamalla paremmasta sivutilasta.

trilog [08.05.2010 00:18:19]

#

J.J. kirjoitti:

Lähinnä mietityttää että häviäiskö viat maksamalla paremmasta sivutilasta.

Laita tallenna.php-tiedoston sisältö tänne, jos haluat asiaan varmistuksen.

Metabolix [08.05.2010 00:28:07]

#

Ei, vaan selvitä oikeasti, mitä tapahtuu. Laita tiedoston alussa virheilmoitukset käyttöön:

<?php
ini_set("error_reporting", E_ALL | E_STRICT);
ini_set("display_errors", 1);

Testaa vielä varmuuden vuoksi, että kaikki virheet ja varoitukset nyt näkyvät:

<?php
echo $olematon_muuttuja;
// Nyt pitäisi tulla seuraava ilmoitus:
// Notice: Undefined variable: olematon_muuttuja in jokin.php on line 123

Tämän jälkeen hankkiudu taas tilanteeseen, jossa tulee tyhjä sivu. Jos sivulle tulostuu jokin viesti, vika selvinnee siitä.

Jos mitään ei vieläkään näy, voi tosiaan olla, että ongelma on palvelimella. Hyviä ratkaisuja ei juuri ole. Yksi mahdollisuus on ilmoittaa käyttäjälle etukäteen ongelmista ja toteuttaa järjestelmä jotenkin niin, että mahdollisissa ongelmatilanteissakin järjestelmä toimii oikein. Esimerkiksi tietokantatauluun voi lisätä sarakkeen "kesken", josta otetaan merkintä pois vasta sivun lopussa, kun kaikki on valmista. Toisaalta käytännöllisempi ratkaisu on vain hankkia maksullista sivutilaa, jossa on automaattisesti edes jonkinlainen laatutakuu.

J.J. [13.05.2010 16:56:36]

#

Kiitos vastauksista!

vph81 [13.05.2010 22:41:06]

#

Ensimmäisenä tuli mieleen noista tiedoston nimistä kun ovat isolla, että muistathan että wintoosa ei erottele isoja ja pieniä kuten esimerkiksi linux tekee. (jos kerran kotikoneella toimii)

Metabolix [13.05.2010 23:31:20]

#

vph81 kirjoitti:

Ensimmäisenä tuli mieleen noista tiedoston nimistä kun ovat isolla...

Vika ei voi olla tässä, koska ongelma ilmenee kysyjän mukaan "joskus (harvoin)" eikä suinkaan aina.


Sivun alkuun

Vastaus

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

Tietoa sivustosta