Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Headers already sent -ongelma

Aliisa [22.04.2009 09:56:47]

#

Löysin tarpeisiini todella hyvän esimerkin koodivinkeistä mutta en pääse nyt eteenpäin, kun en osaa tehdä mitään virheilmoitukselle. Kirjoitin ongelmani koodivinkin loppuun, mutta koska siellä ei varmaan käy lukijoita yhtä usein kuin täällä keskustelupalstalla, niin kysyn nyt apua täältä.

Eli koodivinkki täällä ja ongelmani olen kirjoittanut sinne loppuun:

https://www.ohjelmointiputka.net/koodivinkit/25104-php-sql-tuoterekisteri

tsuriga [22.04.2009 11:13:03]

#

Virheilmon mukaan otsakkeiden lähetyksen aiheuttaa tallenna.php-tiedoston rivi numero 6. Manuaalin mukaan kyseisellä rivillä sijaitseva funktio mysql_select_db heittää E_WARNING-virheen silloin, kun yhteyttä tietokantaan ei löydy. Varmista, että yhteys tietokantaan pelaa.

Aliisa [22.04.2009 15:05:44]

#

Yhteyden kyllä pitäis pelata tietokantaan.

Virheilmoituksen rivi 28 viittaa tähän:

    header("Location: lista.php");

Siitä oli jo puhetta koodivinkin perässä ettei tuo toimi, mutta parannusehdotuksista huolimatta en saa sitä toimimaan. Tai en ymmärrä että miten sen muotoa tulisi muuttaa ja mihin kohtaan koodia.

Tässä vielä siis se virheilmoitus:
Warning: Cannot modify header information - headers already sent by (output started at U:\xampp\htdocs\xampp\uusi\tallennus.php:6) in U:\xampp\htdocs\xampp\uusi\tallennus.php on line 28

Metabolix [22.04.2009 15:32:59]

#

Header-funktio lisää tietoja palvelimen lähettämän sivun alkuun, otsikoihin, siis ennen varsinaista sivua. Ongelmana on, että tuossa vaiheessa olet jo tulostanut sivulle jotain, joten nämä otsikot on jo lähetetty eikä niitä voi muuttaa. (Ks. sama tarina pidemmässä muodossa.) Älä siis tulosta mitään ennen header-riviä — ei saa olla yhtään echoa, printiä, printf:ää tai vastaavaa, ei virheilmoituksia eikä mitään <?php ?> -tagien ulkopuolista tekstiä, ei edes tyhjiä rivejä. Virheilmoitushan kertoo myös, että olet ensimmäisen kerran tulostanut jotain rivillä 6, joten aloita tutkiminen sieltä.

Aliisa [22.04.2009 15:53:06]

#

Ongelma johtui vain siitä, kun olin jättänyt uutta php-tiedostoa luotaessa PHP Editorin automaattisesti lisäämän html-koodin alkuun ja loppuun.

En vaan aloittelijana ymmärtänyt että ongelma voisi liittyä siihen, kun ne melkein kaikissa tekeleissäni on ja toimii moitteettomasti.

Jos vielä uskaltaisin kysyä että mitä minun tulisi muuttaa tässä pätkässä että isot kirjaimet hyväksyttäisiin?

  $nimi = preg_replace("/[^a-zåäö]/", "", $_POST["nimi"]);

Blaze [22.04.2009 16:00:56]

#

$nimi = preg_replace("/[^a-zåäöA-ZÅÄÖ]/", "", $_POST["nimi"]);

Vastaus

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

Tietoa sivustosta