php piccolo form cerca

alessandromonti

Utente Attivo
25 Mar 2012
62
0
0
scritto banale form php


ecco il piccolo form cerca.php

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>


</head>

<body>
<form id="form1" name="form1" method="post" action="ricerca.php">
  <label for="ricerca"></label>
  <input type="text" name="ricerca" id="ricerca" />
  <input type="submit" name="invia" id="invia" value="cerca" />
</form>
</body>
</html>


ecco il ricerca.php

PHP:
<?php
ini_set('SMTP','out.alice.it');
$pagina_tabella = "http://localhost/nuovo2/tabella.html";
$pagina_pulsante = "http://localhost/nuovo2/pulsante.html";
$pagina_nulla = "http://localhost/nuovo2/nulla.html";


$risposta = $_POST['ricerca'];

if($risposta == "tabella")
{  echo "tabella";}
	else if ($risposta == "pulsante")
	{ echo "pulsante";}
	else
	{
		echo "nulla";
	}
		
	 

?>

invece di stampare tabella o pulsante o nulla... come faccio a mandare l'utente del sito alla pagina tabella.html o pulsante.html o nulla.html? cioè se $risposta è = tabella vai alla pagina tabella.html; se $risposta= pulsante vai alla pagina pulsante.html; altrimenti vai alla pagina nulla.html

grazie
 
Ultima modifica di un moderatore:
Prova così (ho modificato molte cose):
PHP:
<?php
ini_set('SMTP', 'out.alice.it');

// per valori fissi è meglio usare le costanti
define('PAGINA_TABELLA',  'http://localhost/nuovo2/tabella.html');
define('PAGINA_PULSANTE', 'http://localhost/nuovo2/pulsante.html');
define('PAGINA_NULLA',    'http://localhost/nuovo2/nulla.html');

$risposta = $_POST['ricerca'];

// meglio usare lo switch se controlli per lo stesso valore
switch ($risposta) {
    case 'tabella':
        $page = PAGINA_TABELLA;
        break;

    case 'pulsante':
        $page = PAGINA_PULSANTE;
        break;

    case 'nulla':
        $page = PAGINA_NULLA;
        break;

    // e se il valore non è nessuno di quelli sopra?
    default:
        // ...
}

// effettui il redirect
header("Location: {$page}");
?>
 
innanzitutto grazie per la riposta...con i tuoi suggerimenti ho riscritto lo script ricerca.php così:

PHP:
<?php 
ini_set('SMTP', 'out.alice.it'); 


// per valori fissi è meglio usare le costanti 
define('PAGINA_TABELLA',  'http://localhost/nuovo2/tabella.html'); 
define('PAGINA_PULSANTE', 'http://localhost/nuovo2/pulsante.html'); 
define('PAGINA_LISTA',    'http://localhost/nuovo2/lista.html');
define('PAGINA_NULLA',   'http://localhost/nuovo2/nulla.html');

$risposta = $_POST['ricerca']; 

// meglio usare lo switch se controlli per lo stesso valore 
switch ($risposta) { 
    case 'tabella': 
        $page = PAGINA_TABELLA; 
        break; 

    case 'pulsante': 
        $page = PAGINA_PULSANTE; 
        break; 

    case 'lista': 
        $page = PAGINA_LISTA; 
        break; 

    // e se il valore non è nessuno di quelli sopra? 
    default:   $page = PAGINA_NULLA; 
	      		header ("Location: $page");
			 
        // ... 
} 

// effettui il redirect 
header("Location: {$page}"); 
?>

per ora funge

per un form-ricerca più complesso (cioè capace di trovare più delle 3 voci finora previste) mi limito a prevedere lo stesso meccanismo anche per altre voci oppure esistono altri metodi?
gtrazie
 
Ultima modifica di un moderatore:
è quello che non so..cioè...come si fa un form di ricerca tipo quelli che si vedono per la rete?...non credo siano strutturati come il php che ho scritto ( invece che prevedere 4 case ne prevedo 40000)

grazie
 
Te l'ho detto: dipende da dove sono contenuti i contenuti (scusa il gioco di parole) del tuo sito. Se sono in un database, puoi effettuare la ricerca lì, altrimenti ti conviene usare le API di Google, perché cercare in file di testo è piuttosto complicato.
 

Discussioni simili