Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Käsiteltyämme tiedot varmistamme, että käyttäjä ei voi lähettää tietoja uudestaan käyttämällä selaimen edellinen-toimintoa. Käytämme header-funktiota: header( 'Location: index.php'). Koska muokkaamme suoraan sivun HTTP-otsaketta (HTTP header), tulee tämä tehdä ennen kuin yhtään HTML-koodia on tulostettu tiedostoon tai siitä seuraa virhe. Huomaa, että syötämme osoitteeseen muuttujan, joka määrittää uuden tai muuttunen viestin yksilöllisen tunnuksen (ID). Tällä tavalla voimme myöhemmin korostaa sen erottumaan muista viesteistä Javascriptin ja CSS:n avulla.

Code Block
	// Choose the correct action based on the value of the $_POST['action']
	if ($_POST['action'] == 'new_message')
	{
		// Add a message to the database
		// prepare query
		// save it with htmlspecialchars in order to stop clever javascripting and HTML-tags ;)
		$query = $mysql_conn->prepare("INSERT INTO peukku_viestit (message) VALUES ('" . htmlspecialchars($_POST['message']) . "')");
		// run query
		$query->execute();

		//remove post data by redirecting to ourselves
		header( 'Location: index.php?new=' . $rivi['LAST_INSERT_ID()'] ) ;

	}

...

Code Block
// Scrolls straight from current page Y coordinate to specified element Y coordinate. 
// Dependencies: elemYPosition()
// roughScroll( string elementID )
function roughScroll(eID) {
    var stopY = parseInt(elmYPosition(eID));
	stopY = stopY - parseInt(window.screen.height / 2);
	window.scrollTo(0, stopY);
}

Sijoitamme viestin HTML-koodiin sen yksilöllisen tunnuksen (ID), jos se uusi tai sitä on muutettu. Muutoksen olemassaolo tarkistetaan isset-funktiolla.

Code Block


$i=1;
while ($rivi = $kysely->fetch(PDO::FETCH_ASSOC)) {

...

?>
<div class="single-comment" <?php 

// check if this item has been updated
if(isset($_GET['new']))
{
	if($rivi["id"] == $_GET['new'])
	{
		echo 'id="new-comment"';
	}
}

...

i++;
}
		
?>>

Lopuksi tarvitsemme vielä tavan selvittää, onko luotu uutta viestiä tai muutettu vanhaa. Toteutamme sen tarkistamalla new-muuttujan olemassaolon isset-funktiolla.

Code Block

<?php
	if(isset($_GET['new']))
	{
		echo '<script type="text/javascript">roughScroll("new-comment");</script>';	
	}
	
 ?>