Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP / Tekstiedoston tarkistus

sedemik [25.11.2009 12:09:33]

#

Tarkoitukseni olisi tehdä tiettyjen sanojen esto lomakekenttään (kenttä esim. $url).
Tarvitsisin php-koodin, jossa luetaan tekstitiedosto. Jos tiedostosta löytyy lomakkeen kentässä oleva sana, niin silloin tulee virheilmoitus, jos sanaa ei ole, niin hommaa jatkuu.

Olen tehnyt estoja suoraan koodiin preg_matchillä, mutta voisi olla ehkä järkevämpi koostaa ne yhteen tiedostoon, joka tarkistetaan aina lähetettäessä.

Alla olevan koodin löysin, mutta saisiko tuosta jatkettua? Ko. koodi nyt vain tulostaa tiedoston

<?php
$file = fopen("testi.txt", "r");
while(!feof($file))
  {
  echo fgets($file). "<br />";
  }
fclose($file);
?>

Mod. lisäsi kooditagit

trilog [25.11.2009 12:20:42]

#

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=phpj3#ifehtolause

sankari [25.11.2009 12:23:55]

#

stristr / strstr ?

sedemik [25.11.2009 19:23:56]

#

Jos lomakekentän sana tai osa siitä on tekstitiedostossa niin viestiä ei voi lähettää. Saan kyllä tulostettua koko tiedoston, mutta kuinka saan etsittyä tiedostosta jotain tiettyä sanaa?

Teuro [25.11.2009 19:37:32]

#

Katso noista linkitetyistä oppaista neuvoa, miten noita käytetään. Tässäkin olet saanut jo muutaman oikein hyvänkin vinkin esim. tuo if-lause.

Macro [25.11.2009 19:47:12]

#

Tässä sinulle kommentoitu esimerkki:

<?php
//$pahat_sanat[] sisältää kaikki pahat sanat. Tiedostossa yksi sana per rivi, pienellä kirjoitettuna
$pahat_sanat = explode("\n", file_get_contents("pahat_sanat.txt"));
//Erotellaan viestistä kaikki sanat ja pienennetään ne
$message = $_POST["viesti"];
$viesti = strtolower(explode(" ", $message));

//Käydään $viesti[] taulukko läpi
for($i = 0; $i < sizeof($viesti); $i++) {
	//Jos $viesti[$i] on taulukossa $pahat_sanat[]
	if(in_array($viesti[$i], $pahat_sanat)) {
		die($viesti[$i], " on paha sana!");
	}
}

//Jos päästiin näin pitkälle, niin ei tullut yhtään pahaa sanaa

//Lähetetään viesti
mail("oma_osoite@palvelmeni.fi", "Viesti kotisivuilta", $message);
//Mennään kiitossivulle
header("Location: kiitos.php");
?>

Vastaus

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

Tietoa sivustosta