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/
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.
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
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ä.
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"]);
$nimi = preg_replace("/[^a-zåäöA-ZÅÄÖ]/", "", $_POST["nimi"]);
Aihe on jo aika vanha, joten et voi enää vastata siihen.