  <?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>web &#8211; paologironi blog</title>
	<atom:link href="https://www.gironi.it/blog/tag/web-it/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.gironi.it/blog</link>
	<description>Appunti sparsi di (retro) informatica, analisi dei dati, statistica, seo, e cose che cambiano</description>
	<lastBuildDate>Fri, 20 Sep 2024 13:08:32 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Pagine con piu&#8217; scopi in php</title>
		<link>https://www.gironi.it/blog/pagine-con-piu-scopi-in-php/</link>
					<comments>https://www.gironi.it/blog/pagine-con-piu-scopi-in-php/#respond</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Wed, 02 Mar 2011 21:37:10 +0000</pubDate>
				<category><![CDATA[sviluppo web]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sviluppo]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">http://gironi.it/blog/?p=55</guid>

					<description><![CDATA[Pagine con piu&#8217; scopi, ovvero pagine che possono decidere cosa mostrare in base a una o piu&#8217; condizioni. La lettura del bel libro di Kevin Yank e&#8217; stata illuminante&#8230; Vediamo un esempio: &#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&#62; &#60;html xmlns="http://www.w3.org/1999/xhtml"&#62; &#60;head&#62; &#60;title&#62;Sample Page&#60;/title&#62; &#60;meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /&#62; &#60;/head&#62; &#60;body&#62; &#60;?php if (!isset($_GET['name'])): &#8230; <a href="https://www.gironi.it/blog/pagine-con-piu-scopi-in-php/" class="more-link">Leggi tutto<span class="screen-reader-text"> "Pagine con piu&#8217; scopi in php"</span></a>]]></description>
										<content:encoded><![CDATA[<p>Pagine con piu&#8217; scopi, ovvero pagine che possono decidere cosa mostrare in base a una o piu&#8217; condizioni. La lettura del <a href="http://education.mondadori.it/Libri/SchedaLibro.asp?IdLibro=88-04-53965-8" target="_blank" rel="noopener">bel libro di Kevin Yank</a> e&#8217; stata illuminante&#8230;</p>
<p>Vediamo un esempio:</p>
<pre class="brush: xml; ruler: true;">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;title&gt;Sample Page&lt;/title&gt;
&lt;meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;?php if (!isset($_GET['name'])): ?&gt;

  &lt;!-- Nessun nome assegnato, per cui viene richiesto all'utente --&gt;

  &lt;form action="&lt;?php echo $_SERVER['PHP_SELF']; ?&gt;" method="get"&gt;
  &lt;label&gt;Please enter your name: &lt;input type="text" name="name" /&gt;&lt;/label&gt;
  &lt;input type="submit" value="GO" /&gt;
  &lt;/form&gt;

&lt;?php else: ?&gt;

  &lt;p&gt;Your name: &lt;?php echo $_GET['name']; ?&gt;&lt;/p&gt;

  &lt;p&gt;This paragraph contains a &lt;a href="newpage.php?name=&lt;?php echo urlencode($_GET['name']); ?&gt;"&gt;link&lt;/a&gt; that passes the name variable on to the next document.&lt;/p&gt;

&lt;?php endif; ?&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p><span id="more-55"></span></p>
<p>Qualche picola nota:</p>
<p>E&#8217; da da notare, l&#8217;uso della funzione <strong>isset</strong>.<br />
Questa funzione ritorna un valore &#8220;vero&#8221; se alla variabile e&#8217; assegnato un valore e &#8220;falso&#8221; se la variabile non esiste.</p>
<p>Interessante anche l&#8217;uso della variabile $_SERVER[&#8216;PHP_SELF&#8217;], utilizzata per specificare l&#8217;attributo <em>action</em> del form.</p>
<p>$_SERVER[&#8216;PHP_SELF&#8217;] e&#8217; sempre configurata sull&#8217;URL della pagina corrente, quindi il form, una volta inviato, carichera&#8217; sempre la stessa pagina, ma con la variabile settata.</p>
<hr />
<p>&nbsp;</p>
<p>Immaginiamo ora di avere un sito gestito attraverso database. Il problema e&#8217; quello di creare due differenti versioni di ciascuna pagina: una per l&#8217;utente non loggato (con la form per fare il login), una per l&#8217;utente regolarmente loggato.<br />
Usando la tecnica delle pagine con piu&#8217; scopi il problema ha in php una soluzione semplice ed elegante. L&#8217;esempio che riporto e&#8217; tratto da un articolo di Kevin Yank (<a href="http://www.devarticles.com/c/a/PHP/Developing-Multipurpose-Pages-With-PHP" target="_blank" rel="noopener">questo il link all&#8217;articolo originale</a>).</p>
<p>Bob ha una pagina con delle news e un piccolo riquadro di login. Ecco il codice:</p>
<p>&nbsp;</p>
<pre class="brush: xml; ruler: true;">&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Bob's Login Site&lt;/title&gt;
&lt;body bgcolor="#00cc00"&gt;
&lt;?php
if ($_POST['login'] == "do") {
$name = $_POST['name'];
$pass = $_POST['password'];
$db_cnct = mysql_connect("localhost", "user", "pass") or die("Could not connect to the database!");
$db = mysql_db_select("users", $db_cnct);
$sql = "SELECT user, pass FROM users WHERE user = \"$name\" and pass = \"md5($pass)\"";
// This is for an encrypted password-protection database
$check_user = mysql_query($sql);
$users = mysql_num_rows($check_user);
if ($users &lt; 1) {
echo ("&lt;center&gt;Invalid Password!&lt;/center&gt;");
echo ('&lt;form action="'.$PHP_SELF.'" method="post"&gt;');
echo ('&lt;input type="text" name="name"&gt;&lt;br /&gt;');
echo ('&lt;input type="password" name="password"&gt;&lt;br /&gt;');
echo ('&lt;input type="hidden" name="login" value="do"&gt;');
echo ('&lt;input type="submit" value="Log-in"&gt;');
echo ('&lt;/form&gt;');
}
else {
echo ("Welcome, $name!");
}
}
else {
echo ('&lt;form action="'.$PHP_SELF.'" method="post"&gt;');
echo ('&lt;input type="text" name="name"&gt;&lt;br /&gt;');
echo ('&lt;input type="password" name="password"&gt;&lt;br /&gt;');
echo ('&lt;input type="hidden" name="login" value="do"&gt;');
echo ('&lt;input type="submit" value="Log-in"&gt;');
echo ('&lt;/form&gt;');
?&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>&nbsp;</p>
<p>Lo script controlla se ci sono username e password (passati tramite il metodo HTTP POST).<br />
Se non ci sono, lo script mostrera&#8217; il codice che chiedera&#8217; di loggarsi.</p>
<p>Se ci sono, lo script interroga il database per controllare se si tratta di una coppia di valori validi.<br />
Se e&#8217; tutto ok, verra&#8217; mostrata la scritta &#8220;Welcome, $name!&#8221;, altrimenti verra&#8217; stampata a schermo una indicazione di errore e verra&#8217; riproposto il modulo di login.</p>
<p>Ed ecco un esempio pratico un po&#8217; piu&#8217; evoluto:</p>
<p>&nbsp;</p>
<pre class="brush: xml;">&lt;?PHP
$forum = $_GET['forum'];
if (!isset ($forum) ) {
$sql = "SELECT forums, ID FROM master_list";
$get_forums = mysql_query($sql);
while ($forums = mysql_fetch_array($get_forums) ) {
echo ('&lt;a href="forums.php?forum'.$forums["ID"].'"&gt;'.$forums["forums"].'&lt;/a&gt;&lt;br /&gt;');
}
}

else {
$thread = $_GET['thread'];
if (!isset ($thread) ) {
$sql = "SELECT thread, ID FROM forum".$forum;
$get_threads = mysql_query($sql);
while ($threads = mysql_fetch_array($get_forums) ) {
echo ('&lt;a href="forums.php?forum='.$forum.'&amp;thread='.$threads["ID"].'"&gt;');
echo ($threads["thread"].'&lt;/a&gt;&lt;br /&gt;');
}
}
else {
$sql = "SELECT messages FROM thread".$thread;
$get_messages = mysql_query($sql);
while ($messages = mysql_fetch_array($get_messages) ) {
echo ('&lt;table&gt;&lt;tr&gt;&lt;td&gt;'.$messages["message"].'&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;');
}
}
?&gt;</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/pagine-con-piu-scopi-in-php/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
