Mikä tässä koodissa vikana?

apuatarttis

Joo elikkä kyseessä on siis php systeemi jolla toiset ovat lähetelleet minulle sähköpostiin tietoja. Toimi hyvin melko pitkään, ja sitten ihan yhtäkkiä ei toimikkaan? Sähköpostiin ei tule enää tietoja, eikä edes viestiä? Tohon viestiin tosiaan on toi s-postiosoite muokattu, eli älkää vastatko tähän että olen syöttänyt väärän sähköpostiosoitteen :-D

Jos joku ekspertti löytäisi tuosta vian? Voin kyllä lähetellä myös tota "lomakepuoltakin" tänne jos tarvitsee. Eli siis sitä tiedostoa, jonka kentät nämä kaverit täyttävät ja siten lähettävät.

7

493

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • keksa1

      ja ihan alkuun pistät testailun ajaksi

      error_reporting(E_ALL);
      ini_set('display_errors', '1');

      ja sitten ajat skriptiä ihan tuohon

      $viesti = mail("[email protected]", "Otsikko", $tieto1);

      asti vaan. Pitäis tulla kaikki virheet selaimelle asti.

      En usko että koodi on mennyt mystisesti rikki, vaan että postien lähetyksessä kusee joku esim. palomuuri

      • apuatarttis

        Joo, elikkä koitin laitella koodia sellaiseksi mitä tuossa sanoit. Näyttää tältä:


        Nyt kun tekee lähetyksen niin tulee seuraavanlainen ilmoitus:
        Notice: Undefined variable: tieto1 in /home/a7460772/public_html/korjailulahetys.php on line 6

        Kokeilin muuttaa line 6:sta seuraavasti:
        $tieto1 .= $tunnus . ": " . $arvo . "\n";
        --> $tieto1 = $tunnus . ": " . $arvo . "\n";

        Elikkäs pisteen poisto ennen yhtäsuuruusmerkkiä. Valitettavasti olin jo kokeillut tuota pisteen poistamista aikaisemminkin, kun itse yritin korjailla, eli hirveän luottavainen en ollut. No, nyt kun lähetystä pistää tapahtumaan, niin lähetyssivu vaan näkyy valkoisena ilman mitään erroreita tms. mutta mitään ei löydy sähköpostista.

        Uusin mahdollisesti koko koodin erilaiseksi, kun tämä vaikuttaa olevan aika surkea tekele. Siinä kuitenkin menee aikansa, joten mitä mun pitäis nyt ton koodin kanssa tehdä vielä? Vai onko ongelma niin mystinen, että ei vastausta löydy :-D


      • kanssakoodari
        apuatarttis kirjoitti:

        Joo, elikkä koitin laitella koodia sellaiseksi mitä tuossa sanoit. Näyttää tältä:


        Nyt kun tekee lähetyksen niin tulee seuraavanlainen ilmoitus:
        Notice: Undefined variable: tieto1 in /home/a7460772/public_html/korjailulahetys.php on line 6

        Kokeilin muuttaa line 6:sta seuraavasti:
        $tieto1 .= $tunnus . ": " . $arvo . "\n";
        --> $tieto1 = $tunnus . ": " . $arvo . "\n";

        Elikkäs pisteen poisto ennen yhtäsuuruusmerkkiä. Valitettavasti olin jo kokeillut tuota pisteen poistamista aikaisemminkin, kun itse yritin korjailla, eli hirveän luottavainen en ollut. No, nyt kun lähetystä pistää tapahtumaan, niin lähetyssivu vaan näkyy valkoisena ilman mitään erroreita tms. mutta mitään ei löydy sähköpostista.

        Uusin mahdollisesti koko koodin erilaiseksi, kun tämä vaikuttaa olevan aika surkea tekele. Siinä kuitenkin menee aikansa, joten mitä mun pitäis nyt ton koodin kanssa tehdä vielä? Vai onko ongelma niin mystinen, että ei vastausta löydy :-D

        Se piste tarkoittaa että merkkijonomuuttujaan sijoitettava arvo liitetään merkkijonon loppuun. Nyt kun poistit sen niin arvoista vain viimeinen jää muuttujaan.

        Virheilmoitus kertoi että tieto1-muuttujaa ei ole määritetty. Ehkä voisit kokeilla tällaista:

        $tieto1="";
        foreach($_POST as $tunnus => $arvo) {
        $tieto1 .= $tunnus . ": " . $arvo . "\n";
        }

        Ei aavistustakaan että toimiiko tuo, php kun on niin joustava kieli että en ole oppinut sen syntaksia vaikka kohta kymmenen vuotta olen sillä jo koodaillut...


      • apuatarttis
        kanssakoodari kirjoitti:

        Se piste tarkoittaa että merkkijonomuuttujaan sijoitettava arvo liitetään merkkijonon loppuun. Nyt kun poistit sen niin arvoista vain viimeinen jää muuttujaan.

        Virheilmoitus kertoi että tieto1-muuttujaa ei ole määritetty. Ehkä voisit kokeilla tällaista:

        $tieto1="";
        foreach($_POST as $tunnus => $arvo) {
        $tieto1 .= $tunnus . ": " . $arvo . "\n";
        }

        Ei aavistustakaan että toimiiko tuo, php kun on niin joustava kieli että en ole oppinut sen syntaksia vaikka kohta kymmenen vuotta olen sillä jo koodaillut...

        Juupelis juu eli määritin muuttujan tieto1. Nyt kun käytän sitä error reporting koodia siinä, niin ei enää ilmoita virhettä line 6:lla tai millään muullakaan.

        Kyseinen ongelma on siispä korjattu, MUTTA vaikka vanhoihin koodeihin lisäisin tuon tieto 1:n määrityksen, sähköpostilaatikkoni ei inahdakkaan. Toisaalta osasin jo arvatakkin, koska mikäli se tuon tieto 1:n määrittämisestä olisi kiinni, niin miksi se sitten toimi pitkään hyvin. Ja toiseksi vielä, että tieto 1 muuttujahan oikeasti periaatteessa on määritelty, koska siellä lomakkeen puolella on tieto1:n mukaan nimetty kenttä. Elikkä koodi poimii sen kentän tiedot arvoksi muuttujalle.

        Kiitos kuitenkin avusta (: josko jollakin vielä jotain ideoita löytyis?


      • kanssakoodari
        apuatarttis kirjoitti:

        Juupelis juu eli määritin muuttujan tieto1. Nyt kun käytän sitä error reporting koodia siinä, niin ei enää ilmoita virhettä line 6:lla tai millään muullakaan.

        Kyseinen ongelma on siispä korjattu, MUTTA vaikka vanhoihin koodeihin lisäisin tuon tieto 1:n määrityksen, sähköpostilaatikkoni ei inahdakkaan. Toisaalta osasin jo arvatakkin, koska mikäli se tuon tieto 1:n määrittämisestä olisi kiinni, niin miksi se sitten toimi pitkään hyvin. Ja toiseksi vielä, että tieto 1 muuttujahan oikeasti periaatteessa on määritelty, koska siellä lomakkeen puolella on tieto1:n mukaan nimetty kenttä. Elikkä koodi poimii sen kentän tiedot arvoksi muuttujalle.

        Kiitos kuitenkin avusta (: josko jollakin vielä jotain ideoita löytyis?

        mail-funktion manuaali (http://php.net/manual/en/function.mail.php) tiesi kertoa että lähettäjä pitäisi aina lisätä headereihin. Itse olen käyttänyt kyseistä funktiota tähän tapaan:

        $headers = 'From: lahettaja';
        mail($to, $subject, $message, $headers);

        Se että koodisi on toiminut aiemmin mutta yhtäkkiä lakkasi toimimasta viittaisi siihen että jokin on palvelimella muuttunut, ehkä php:stä on asennettu uusi versio tai jokin asetus (esimerkiksi juuri tuon From-kentän oletusarvo) on muuttunut. Aika vaikea sanoa että missä menee vikaan jos virheilmoitustakaan ei tule.

        Toivottavasti asia selviää.


      • apuatarttis
        kanssakoodari kirjoitti:

        mail-funktion manuaali (http://php.net/manual/en/function.mail.php) tiesi kertoa että lähettäjä pitäisi aina lisätä headereihin. Itse olen käyttänyt kyseistä funktiota tähän tapaan:

        $headers = 'From: lahettaja';
        mail($to, $subject, $message, $headers);

        Se että koodisi on toiminut aiemmin mutta yhtäkkiä lakkasi toimimasta viittaisi siihen että jokin on palvelimella muuttunut, ehkä php:stä on asennettu uusi versio tai jokin asetus (esimerkiksi juuri tuon From-kentän oletusarvo) on muuttunut. Aika vaikea sanoa että missä menee vikaan jos virheilmoitustakaan ei tule.

        Toivottavasti asia selviää.

        Kokeilin vielä tuota headerijuttua, eipä toimi edelleenkään. Lähiaikoina pitäisi tulla tunnukset uudelle palvelimelle, joten kokeilen vielä siellä, että jos toimisi.

        Kiitos kaikille kuitenkin avusta, ja jos jollekkin vielä jotain mieleen juolahtaa, niin ilmotelkaa ihmeessä (:


    • apuatarttis

      Koodi täysin toimiva, vika oli palvelimen puolella.
      Vaihdoin uuteen palvelimeen ja nyt toimii ja pelittää systeemit taas kuten aina ennekin.

      Vanha palvelin oli 000webhost.com sivustolta napattu.
      Jos jollekkin siis tulee samanlainen tilanne vastaan ja käytössä on 000webhost, älkää ihmetelkö.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mitään järkeä?

      Että ollaan erillään? Kummankin pää on kovilla.
      Ikävä
      120
      1767
    2. Noniin rakas

      Annetaanko pikkuhiljaa jo olla, niin ehkä säilyy vienot hymyt kohdatessa. En edelleenkään halua sulle tai kenellekään mi
      Ikävä
      99
      1578
    3. Lasten hyväksikäyttö netissä - Joka 3. nuori on saanut seksuaalisen yhteydenoton pedofiililtä

      Järkyttävää! Lapsiin kohdistuva seksuaalinen hyväksikäyttö verkossa on yhä pahempi ongelma. Ulkolinja: Lasten hyväksikäy
      Maailman menoa
      48
      1099
    4. Kumpi vetoaa enemmän sinuun

      Kaivatun ulkonäkö vai persoonallisuus? Ulkonäössä kasvot vai vartalo? Mikä luonteessa viehättää eniten? Mikä ulkonäössä?
      Ikävä
      43
      974
    5. Multa sulle

      Pyörit 24/7 mielessä, kuljet mun mukana, mielessä kyselen sun mielipiteitä, vitsailen sulle, olen sydän auki, aitona. M
      Ikävä
      29
      929
    6. Nainen, olen tutkinut sinua paljon

      Salaisuutesi ei ole minulle salaisuus. Ehkä teimme jonkinlaista vaihtokauppaa kun tutkisimme toisiamme. Meillä oli kumm
      Ikävä
      50
      856
    7. Mies, eihän sulla ole vaimoa tai naisystävää?

      Minusta tuntuu jotenkin, että olisit eronnut joskus, vaikka en edes tiedä onko se totta. Jos oletkin oikeasti edelleen s
      Ikävä
      44
      812
    8. Olet myös vähän ärsyttävä

      Tuntuu, että olet tahallaan nuin vaikeasti tavoiteltava. En tiedä kauanko jaksan tätä näin.
      Ikävä
      37
      780
    9. Okei nyt mä ymmärrän

      Olet siis noin rakastunut, se selittää. Onneksesi tunne on molemminpuolinen 😘
      Ikävä
      56
      778
    10. Onko sulla empatiakykyä?

      Etkö tajua yhtään miltä tämä tuntuu minusta? Minä ainakin yritän ymmärtää miltä sinusta voisi tuntua. En usko, että olet
      Ikävä
      37
      760
    Aihe