Pieni php-koodi

Viestiketju Vapaata keskustelua -osiossa. Ketjun avasi salora 09.12.2005.

  1. salora

    salora Regular member

    Liittynyt:
    17.06.2004
    Viestejä:
    263
    Kiitokset:
    0
    Pisteet:
    26
    Eli haluaisin tehdä nettisivuilleni myös html-lomakkeen (tai se minulla jo on), joka php-sovelluksena lähettäisi meiliä haluttuun osoitteeseen. Nyt osaan tehdä vain sen, että se lähettää meiliä osoitteeseen jonka olen määritellyt valmiiksi.

    Lomakkeessa pitäisi pystyä myös valitsemaan haluaako evästeen, joka muistaisi lähettäjän e-mail osoitteen. Olen tehnyt sen check-boxina, eli ruksaamalla check-boxin lähettäjä valitsee itse, haluaako evästeen käyttöön. En ole yrityksistä huolimatta saanut hommaa toimimaan.

    Pystyykö kukaan auttamaan? Php.netin sivuilta en ole oikein koostunut mitään, kun tuo englannin kieli on hakusessa.
     
  2.  
  3. Jannejt

    Jannejt Moderator Ylläpitäjä

    Liittynyt:
    10.02.2005
    Viestejä:
    5,045
    Kiitokset:
    6
    Pisteet:
    118
  4. chaykin

    chaykin Member

    Liittynyt:
    22.11.2005
    Viestejä:
    5
    Kiitokset:
    0
    Pisteet:
    11
    Ensin pitäisi tehdä <form>-tagilla kenttä, jonka sisältö lähetetään POST (tai vaihtoehtoisesti GET) tavalla.
    Osaatkin jo tehdä kentän, mutta tässä nyt esimerkki
    <form method="POST" action="sephpsivumitäaiotkäyttää.php">
    <input type="text" size="49" name="emailosoite">

    Sitten seuraavan PHP-sivun (tässä tapauksessa sephpsivumitäaiotkäyttää.php) täytyisi ottaa vastaan kenttä "emailosoite". Saat sen tallennettua muuttujaan näin.

    $email_osoite = $_POST['emailosoite'];
    ja sitten voitkin varmaan käyttää mail() funktiota
    eli
    mail($email_osoite,"Haluamasi otsikko","Haluamasi viesti");

    http://php.net/manual/en/function.mail.php
     
  5. kuassa

    kuassa Guest

    Periaattessa tuo on aika yksinkertaista.

    Jos lomakkeessa jossain pitää antaa kohde spostiosoite, niin voit laittaa lomakkelle <form> tagien väliin esim.

    <INPUT TYPE="TEXT" NAME="sposti">

    joka tekee tekstikentän johon osoite voidaan laittaa.

    Lomakkeen vastaanottavasta php tiedostossa pitäisi näkyä tuon jälkeen
    '$sposti' niminen muuttuja jossa on tuohon tekstikenttään syötetty arvo, tässä tapauksessa sähköposti osoite. Muuttuja voidaan puolestaan sijoittaa lähetys tietoihin, esim. mail() funktioon tai mitä sitten käyttääkään.

    Siis periaatteessa, voi vähän riippua palvelun tarjoajasta voiko tuon tehdä noin vai pitää tehdä vaikeamman kautta.
     
  6. salora

    salora Regular member

    Liittynyt:
    17.06.2004
    Viestejä:
    263
    Kiitokset:
    0
    Pisteet:
    26
    --------------------------------------------------------------------

    LAITAN TÄMÄN NYT VAAN TÄHÄN JOS JOTAKUTA KIINNOSTAA TUTKIA JA YRITTÄÄ PÄHKÄILLÄ. TÄMÄ ON TÄYSIN RAAKILE, JOTEN ÄLKÄÄ ÄLLISTYKÖ.

    En ole osannut oikein ratkaista tuota cooki-ominaisuutta, tai lähellekkään, joten jos joku haluaa sitä katsoa, niin kiiitos vain.
    ---------------------------------------------------------------------
    <!-- tästä alkaa tuo form-ominaisuudet kattava sivu -->

    <html>

    <head>
    <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>New Page 13</title>
    </head>
    <style>
    body {SCROLLBAR-ARROW-COLOR: #222222; SCROLLBAR-BASE-COLOR: #99CCCC}
    </style>
    <body>

    <form method="post" action="palautekasittely3.php">

    <p align="justify"> </p>
    <p align="justify"><font face="Lucida Sans Unicode">Etunimi

    <input name="Etunimi" size="20" maxlength="20">

    <input type="checkbox" name="evaste" value="<?php echo $_COOKIE['Meili']; ?>">Muista sähköpostiosoitteeni<br>
    Sukunimi
    <input name="Sukunimi" size="22" maxlength="30">
    <br>
    E-mail <input name="Email" size="24" maxlength="50">
    <br>
    Otsikko</font>
    <input name="Otsikko" size="26" maxlength="30">
    </p>
    <p><font face="Lucida Sans Unicode">Palaute</font><br>
    <textarea name="Teksti" cols="50" rows="5">

    ---------------------------------------------------------------------
    <!-- Tästä alkaa php-osuus -->

    <html>

    <head>
    <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>New Page 13</title>
    </head>

    <body>
    <?php

    // Palautelomakkeen käsittelijä - versio 2005-04-06

    if (eregi("palautelomake3.php", $_SERVER['HTTP_REFERER']))
    {
    // OK
    }
    else
    {
    exit("Lomake lähetetty palvelimen ulkopuolelta.");
    }

    $Etunimi = $_POST['Etunimi'];
    $Sukunimi = $_POST['Sukunimi'];
    $Email = $_POST['Email'];
    $Otsikko = $_POST['Otsikko'];
    $Teksti = $_POST['Teksti'];
    $Meili = $_POST['Meili'];
    setcookie("Meili", $Meili, time()+60*60*24*30);

    if (strlen($Etunimi) <2)
    {
    exit ("Et antanut etunimeäsi.");
    }
    elseif (strlen($Etunimi) >20)
    {
    exit ("Etunimen pituus on rajoitettu 20 merkkiin.");
    }
    elseif (strlen($Sukunimi) <2)
    {
    exit ("Et antanut sukunimeäsi.");
    }
    elseif (strlen($Sukunimi) >30)
    {
    exit ("Sukunimen pituus on rajoitettu 30 merkkiin.");
    }
    elseif (strlen($Email) <5)
    {
    exit ("Et antanut sähköpostiosoitettasi.");
    }
    elseif (!ereg("@", $Email))
    {
    exit ("Antamasi sähköpostiosoite on virheellinen.");
    }
    elseif (strlen($Email) >50)
    {
    exit ("Sähköpostiosoitteen pituus on rajoitettu 50 merkkiin.");
    }
    elseif (strlen($Otsikko) <3)
    {
    exit ("Et kirjoittanut viestillesi otsikkoa (min. 3 mrk)");
    }
    elseif (strlen($Otsikko) >30)
    {
    exit ("Otsikon pituus on rajoitettu 30 merkkiin.");
    }
    elseif (strlen($Teksti) <10)
    {
    exit ("Et kirjoittanut palautteeseen tekstiä (min. 10 mrk)");
    }
    elseif (strlen($Teksti) >1000)
    {
    exit ("Palaute-tekstin pituus on rajoitettu 1000 merkkiin.");
    }


    $etnimi = strip_tags($Etunimi);
    $sknimi = strip_tags($Sukunimi);
    $sahkopos = strip_tags($Email);
    $otsik = strip_tags($Otsikko);


    $emailosoite = "omeosoitteeni@jossain.fi";
    $ip = $_SERVER['REMOTE_ADDR'];
    $ipkaksi = gethostbyaddr($_SERVER['REMOTE_ADDR']);
    $aika = date('d.m.Y H:i:s');


    mail("$emailosoite", "$otsik","

    Palaute - $otsik
    Palaute jätetty: $aika

    Etu- ja Sukunimi: $etnimi $sknimi
    Sähköposti: $sahkopos

    Viesti:

    $Teksti


    IP-osoite: $ip
    2. IP-osoite: $ipkaksi

    ","From: $sahkopos");

    print ("Sähköpostia lähetettiin osoitteeseen " . $emailosoite);

    ?>
    <br>
    <br>
    Palaa edelliselle sivulle <a href="palautelomake3.php">tästä</a>
    </body>

    </html>
    </body>

    </html>
     
    Viimeksi muokattu: 10.12.2005
  7. TeeKoo

    TeeKoo Regular member

    Liittynyt:
    27.09.2003
    Viestejä:
    390
    Kiitokset:
    0
    Pisteet:
    26
    Koodeille oma loota! Enkö mä joskus niin väittänytkin.
     
    Viimeksi muokattu: 11.12.2005
  8. TeeKoo

    TeeKoo Regular member

    Liittynyt:
    27.09.2003
    Viestejä:
    390
    Kiitokset:
    0
    Pisteet:
    26
    Luulenpa vaan taas, että on tässä osa suomalaista itsekkyyttä. Ei haluta antaa eteenpäin meidän osaamista. - Me ollaan....
     
  9. TeeKoo

    TeeKoo Regular member

    Liittynyt:
    27.09.2003
    Viestejä:
    390
    Kiitokset:
    0
    Pisteet:
    26
    Niin, voi vittu ollaan vahvoilla,tääkin varmaan deletoiodaan.
     
  10. salora

    salora Regular member

    Liittynyt:
    17.06.2004
    Viestejä:
    263
    Kiitokset:
    0
    Pisteet:
    26
    Jep, tänks Teekoo.
     
  11. salora

    salora Regular member

    Liittynyt:
    17.06.2004
    Viestejä:
    263
    Kiitokset:
    0
    Pisteet:
    26
    Olen päässyt jo niin pitkälle, että kaikki muu toimii paitsi evästen tuhoaminen.

    Mikä koodissani mättää:

    header("Location: etusivuni_lomake.php");

    setcookie("Email", "", time());


    -----------------------------------------------------------------------

    <?php
    setcookie("Email", "", time()-10);
    header("Location: etusivuni_lomake.php");
    header("Cache-Control: no-cache, must-revalidate");

    ?>

    Kokeilin tämmöistäkin, mutta ei pelitä.

     
    Viimeksi muokattu: 11.12.2005

Jaa tämä sivu