Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: Command button

Sivun loppuun

paatzo [23.10.2007 16:18:27]

#

Olis sellanen juttu että pitäis kouluun tehdä sivu, jossa on lomake ja lomakkeessa nappi jota painamalla se lähettää täytetyn lomakkeen tiettyyn sähköpostiin. Ja sitten vielä toinen nappi joka tulostaisi lomakkeen. Kiitos auttajille jo etukäteen.

moptim [23.10.2007 16:28:49]

#

Siitä tulostuksesta en tiedä, mutta sähköpostia lähetetään funktiolla mail().

paatzo [23.10.2007 16:35:01]

#

Voisi tietysti tässä vähän tarkentaa tilannetta.
Eli siis..
Kyseessä on ilmoittautumislomake, jossa on kohdat jotka pitää täyttää ennenkuin pääsee nappia painamaan.
Ja sitten tosiaan sen pitäisi lähettää lomakkeessa olevat tiedot tiettyyn sähköpostiin.
Tulostusnappi ei ole pakollinen, mutta tohon toisen napin tekemiseen olisi kiva saada tarkat ohjeet :)

Ja tietysti myös HTML ratkaisu kelpaa jos sellaista löytyy.

tsuriga [24.10.2007 17:25:09]

#

Asiaan liittyen, täältä tietoa PHP:n mail-funktion vaaroista

ville-v [24.10.2007 18:15:35]

#

Tämmöistä olen joskus käyttänyt, kasaa siitä itsellesi sopiva:

<?php




if(isset($_POST["teksti"])){

	if(strlen($_POST["nimi"]) < 2){

		echo("Et antanut nime&auml;si.");

	}

	elseif(strlen($_POST["email"]) < 5){

		echo("Et antanut s&auml;hk&ouml;postiosoitettasi.");

	}

	elseif(!ereg("@", $_POST["email"])){

		echo("Antamasi s&auml;hk&ouml;postiosoite on virheellinen.");

	}

	elseif(!ereg(".", $_POST["email"])){

		echo("Antamasi s&auml;hk&ouml;postiosoite on virheellinen.");

	}

	elseif(strlen($_POST["otsikko"]) < 3){

		echo("Et kirjoittanut palautteellesi otsikkoa (minimi 3 merkki&auml;)");

	}

	elseif(strlen($_POST["teksti"]) < 10){

		echo("Et kirjoittanut palautteeseen tarpeeksi teksti&auml; (minimi 10 merkki&auml;)");

		ex();

	}

	elseif(strlen($_POST["teksti"]) > 1000){

		echo("Palautetekstin pituus on rajoitettu 1000 merkkiin.");

	}



	$nim=$_POST["nimi"];

	$sahkopos=$_POST["email"];

	$otsik=$_POST["otsikko"];

	$tekst=$_POST["teksti"];



	$emailosoite="ville-v@mbnet.fi";

	$aika=date('d.m.Y H:i:s');



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



Palaute - $otsik

Palaute jätetty: $aika



Nimi: $nim



Sähköposti: $sahkopos



Viesti:



$tekst



","From: $sahkopos");



	echo("Kiitos palautteestasi.<br /><a href=\"/ville-v/\">Etusivulle</a>");

}

else{

?>



<form method="post" action="?s=palaute" name="palaute" id="palaute">

	<table>

		<tbody>

			<tr>

				<td>Nimi:</td>

				<td><input type="text" name="nimi" id="nimi" style="width:400px;" value=""></td>

			</tr>

			<tr>

				<td>Email:</td>

				<td><input type="text" name="email" id="email" style="width:400px;" value=""></td>

			</tr>

			<tr>

				<td>Otsikko:</td>

				<td><input type="text" name="otsikko" id="otsikko" style="width:400px;" value=""></td>

			</tr>

			<tr>

				<td>Palaute:</td>

				<td><textarea name="teksti" id="teksti" style="width:400px;" rows="5" value=""></textarea></td>

			</tr>

			<tr>

				<td style="text-align:center;" colspan="2"><input type="submit" value="L&auml;het&auml;" />&nbsp;<input type="reset" value="Tyhjenn&auml;" /></td>

			</tr>

		</tbody>

	</table>

</form>



<?php

}

?>

Vasta_alkaja [24.10.2007 18:16:19]

#

Lisätieto olisi kyllä poikaa, mutta tulostusnappi tulee tässä.

<input type="button" onclick="JavaScript:window.print();" value="tulosta">

LaNu [24.10.2007 18:16:30]

#

paatzo kirjoitti:

Kyseessä on ilmoittautumislomake, jossa on kohdat jotka pitää täyttää ennenkuin pääsee nappia painamaan.
Ja sitten tosiaan sen pitäisi lähettää lomakkeessa olevat tiedot tiettyyn sähköpostiin.
Tulostusnappi ei ole pakollinen, mutta tohon toisen napin tekemiseen olisi kiva saada tarkat ohjeet :)

Ja tietysti myös HTML ratkaisu kelpaa jos sellaista löytyy.

w3school on hyvä referenssi html:n ja css:n kirjoittamiseen. Tuossa on html-lomakkeesta: http://www.w3schools.com/html/html_forms.asp Napista voisi sen verran vinkata, että tarvittava html-elementti on input.

Mailia on mahdollista lähettää joko suoraan html-lomakkeesta tai sitten antaa lomakkeen tiedot skriptille, joka lähettää viestin. Skriptin etuna on mahdollisuus tietojen tarkisteluun ja email-osoitteen pysyminen piilossa. Ehdottomasti suositeltavampi tapa siis :-)

Tuosta putkan php-oppaan luvusta voisi olla apua: https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=phpj4

tsuriga [24.10.2007 18:55:44]

#

Suht karsea tuo ville-v:n käyttämä koodi. PHP:n manuaalista löytyy email-osoitteen oikeellisuuden testaukseen funkkareita, kuin myös Regular Expressions info -sivustolta. Lisäksi tuokin taitaa olla altis mielivaltaisille headereille ellei serverillä ole suhosin-laajennus / mod_security käytössä.

paatzo [24.10.2007 20:28:20]

#

Okei... sain lomakkeen nyt siihen malliin että kaikki muu on kunnossa paitsi yksi asia. Kun nyt painaa ilmoittaudu nappia niin se avaa sähköpostiohjelman ja kopioi tarvittavat kohdat suoraa siihen, mutta se pitäisi saada sillä lailla, että se lähettäisi sen suoraan ilman että lähettäjä joutuu käyttämään sähköpostia. Onko tälläinen mahdollista?

ja siis koodi tässä kohdassa on tällä hetkellä tälläinen:

<form action="MAILTO:sähkö@posti.fi" method="post" enctype="text/plain" name="form" id="form" onsubmit="return tarkistus();" >

paatzo [24.10.2007 23:35:20]

#

Niin ja sitten on vielä sellainen juttu, että en itse pääse serverille käsiksi, eli sen viestin pitäisi mennä suoraan ilman "välikäsiä" perille.


Sivun alkuun

Vastaus

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

Tietoa sivustosta