Help - Controllo parole

zerobit

Utente Attivo
10 Mar 2012
35
0
0
Salve a tutti , avrei la necessità di eseguire un controllo sulle parole digitate nel form , ossia se viene trovata ad esempio la parola latte , con un redirect devo rimandare ad un’altra pagina .

Ho provato in vari modi ma niente da fare , potreste aiutarmi a risolvere questo problema ?


PHP:
<?php
<form method=post action=pagina.php>  
<input type=text size="95" name=chiave style='BACKGROUND-COLOR: ecc……
</form>	
$chiave=$_REQUEST['chiave'];  
top();
// connessione al database
$keys = explode (",", $chiave);
$query = "";
reset ($keys);
while (list(,$parola) = each ($keys))
{ $parola = trim($parola);
if ($parola != "")
$query .= "creazione della query…………………………..";
}
$query .= " 0";
$query = "SELECT ecc…………..     " . $query;
while ($row = mysql_fetch_array($result))
{
$prezzo = $row['prezzo'];
$mozzarella = $row['mozzarella'];

//CONTROLLO SULLE PAROLE DIGITATE
$filtro=("latte");
if ($parola != "$filtro")
Header( "Location: http:indirizzo del sito web" );
?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao

il reindirizzamento con header dovresti metterlo a inizio pagina o cmq prima di qualsiasi output

esempio con php

PHP:
<?php
if(isset($_POST['chiave'])) {
    if($_POST['chiave'] == "latte") {
        header('location:altrapagina.php');
    }
}

echo "<form method='post' action='" . $_SERVER['PHP_SELF'] . "'>";
echo "<input type='text' name='chiave'/>";
echo "<input type='submit' value='Invia'/>";
echo "</form>";
?>

esempio con javascript

Codice:
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
            function controllo(parola) {
                var chiave='latte';                
                if(parola==chiave) {
                    location.href="altrapagina.php";
                }
            }
        </script>
    </head>
    <body>
        <input type="text" name="chiave" onkeyup="controllo(this.value)"/>
    </body>
</html>
 

zerobit

Utente Attivo
10 Mar 2012
35
0
0
Grazie criric per la risposta

Li ho provati entrambi , ma niente da fare ...
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se non ho capito male il problema, prova con questa

PHP:
<?php
ob_start();
$cerca=array('latte'=>'pinco.php','pane'=>'pallo.php');//questa evidentemente dovrà arrivare da un db
if(isset($_POST['chiave'])) {
	foreach($cerca as $parola =>$vai_a){
		if($parola == $_POST['chiave']){
			header( "Location: http:$vai_a" );
		}
	}
}
echo "<form method='post' action='" . $_SERVER['PHP_SELF'] . "'>";
echo "<input type='text' name='chiave'/>";
echo "<input type='submit' value='Invia'/>";
echo "</form>";
ob_end_flush();
?>
 

zerobit

Utente Attivo
10 Mar 2012
35
0
0
Ciao grazie anche a te , ma ancora niente da fare

Ti spiego quello che avviene :

- L'utente digita una frase
- Creazione di cookie
- Parte l'interrogazione e il recupero dei dati da mysql
- Se nel database non viene trovato niente scatta il controllo
- Questo controllo SULLE PAROLE DIGITATE nel form deve avvenire al termine di tutte le altre operazioni

Hai presente gli script che eseguono il controllo sulle parolacce ? devo realizzare qualcosa di simile
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
domande, metto dei nomi a caso.
all'inizio hai detto che se per es trova latte deve essere riinviato ad una pagina (pag_uno.php), se trova pane ad un'altra (pag_due.php) o alla stessa di latte (pag_uno.php)?
parli di frase, quindi l'utente può inserire "oggi ho fatto colazione con pane e latte" giusto? quindi riinviato ad una pagina (pag_tre.php o pag_uno.php ?)?
se l'utente inserisce "oggi ho fatto colazione con saleme e biscotti", non essendoci pane o latte riinviato ad una pagina diversa (pag_quattr.php ?)

è così?
 

zerobit

Utente Attivo
10 Mar 2012
35
0
0
all'inizio hai detto che se per es trova latte deve essere riinviato ad una pagina (pag_uno.php), se trova pane ad un'altra (pag_due.php) o alla stessa di latte (pag_uno.php)?

No ipotizziamo due termini

1- Latte

2 - Farina

Ora se l'utente digita UNA FRASE del tipo , per fare il budino ci vuole il LATTE e quella frase è presente nel database recupero i dati e tutto finisce li .

Se invece "non è presente" allora scatta il controllo , quindi :

Se la frase contiene LATTE vai alla pagina uno.php

Se la frase contiene FARINA vai alla pagina due.php

Se la frase contiene FARINA + LATTE vai alla pagina tre.php

Se la frase NON contiene FARINA o LATTE mostri un messaggio ( la preghiamo di cercare un negozio migliore di questo ! )


Stavo pensando di usare $_REQUEST['chiave']; invece di $_POST['chiave'] vediamo se ottengo risultati migliori


Con questo codice che ho trovato sul forum , la soluzione è vicina :

PHP:
<form method="post" action=pagina1.php> 
<input type=text size="50" name=chiave>
<input type="submit" name="invio" /><br />
</form>
<?php
if(isset($_POST['invio'])){
$chiave=$_POST['chiave'];
$controllo=0;

$array_control=array('latte','farina');

$array=explode(' ',$chiave);
for ($x=0; $x<sizeof($array); $x++){

			for($a=0;$a<sizeof($array_control);$a++){
			if($array[$x]==$array_control[$a]){$controllo++;}
		}
}

if($controllo>0){$stringa=trovato;}else{$stringa=nontrovato;}
echo "$stringa";
}else{echo 'inserire un carattere';}
?>


Ci sono comunque due problemi .

Il primo e che funziona SOLO se clicchi sul pulsante SUBMIT che invia la query , altrimenti se premi solo INVIO non va ! ( di conseguenza voglio abolire il submit )

Il secondo invece riguarda il redirect , ho provato in questo modo , ma non va

PHP:
if($controllo>0){
Header( "Location: paginauno.php" ); 
}
else {
}
Header( "Location: paginadue.php" ); 
      }
?>



Qualche idea su come risolvere ?
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
credo di aver capito (spero).
in giornata o domani ci dò un occhio e poi ti so dire.
comunque ero orientato verso qualcosa di simile
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova così, però guarda che è un'idea e che può essere (se funzia) migliorata

PHP:
<?php
function estrai_parole($f){
	if($f !=""){
		$p=explode(" ",$f);//esplodo secondo lo spazio che divide le parole
		//la frase è una sola parola senza spazi, quindi non esplosa, non un array
		if(!is_array($p)){
			$pa[0]=$f;//ritorno comunque come se fosse un array
			return $pa[0];//ritorno comunque come un array
		}else{
			//verifico che non ci siano parole fatte di soli spazi generate da due o più spazi tra le parole nella frase
			foreach($p as $chiave => $valore){
				if(trim($valore)==""){unset($p[$chiave]);}//elimino l'elemento vuoto dell'array
			}
			return $p;//ritorno l'arrya con tutte le parole
		}
	}else{
		//la frase è vuota
		return FALSE;
	}
}//fine function
ob_start();
//dati di connessione
if(isset($_POST['invia'])){
	$frase=addslashes(strtolower(trim($_POST['chiave'])));//standardizzo la frase es. Ho Visto l'Alba => ho visto l\'alba
	if($frase==""){
		header( "Location: http:{$_SERVER['PHP_SELF']}" );//la frase è vuota torno al form
		exit();
	}else{
		//cerco la frase nel db
		$ris=mysql_query("SELECT * FROM tabella WHERE frase='$frase'");
		if(mysql_num_rows($ris)>0){//la frase esiste
			//fai quello che devi fare
		}else{
			$parole=estrai_parole($frase);
			if($parole===FALSE){//la frase è errata quindi ritorno al form
				header("Location: http:{$_SERVER['PHP_SELF']}");
				exit();
			}else{
				//non so se le parole le ricavi da un db o fai un array
				//io per semplificare faccio un array
				$da_trovare=array('latte','pane','formaggio');
				$conta=0;
				foreach($parole as $valore){
					if(in_array($valore,$da_trovare)){
						$conta++;
						$trasm[]=$valore;//questo se vuoi poi trasmettere le parole trovate
					}
				}
				$stringa=serialize($trasm);
				//metto lo switch così se ti serve puoi trattare più risultati
				switch($conta){
					case 0:
						//la preghiamo di cercare un negozio migliore di questo !
						header("Location: http:pa_della_che_vuoi.php");
						exit();
					break
					case 1:
						header("Location: http:pa_uno.php?tr=$stringa");
						exit();
					break
					case 2:
						header("Location: http:pa_due.php?tr=$stringa");
						exit();
					break
					default://più di due
						header("Location: http:pa_della_che_vuoi.php?tr=$stringa");
						exit();
					break;
				}
			}
		}
	}
}else{
echo <<<EOD
<form method='post' action='{$_SERVER['PHP_SELF']}'>
<input type='text' name='chiave'/>
<input type='submit' value='invia' name='invia'/>
</form>
EOD;
}
ob_end_flush();
?>
verifica che non abbia fatto errori di scrittura
 

zerobit

Utente Attivo
10 Mar 2012
35
0
0
Interessante lo terrò da parte , non si sa mai !

Credo comunque di aver risolto , l'unico intoppo è che funziona solamente con il testo minuscolo , il maiuscolo non lo digerisce bene .

Adesso vedo di lavorarmelo .


Ciao , grazie per i suggerimenti e per il codice che hai postato .

Buona domenica :fonzie:
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [PHP] Help: controllo valori inseriti in un campo PHP 1
foki Problema Controllo Username HELP PHP 3
M Help for Linux Bash Programmazione 1
E Help Sql somma orari PHP 32
P Passare i risultati di un foreach in un modal. Help! PHP 2
J help me C/C++ 1
K Help: problema con uno script di booking in php! PHP 0
Q HELP ME PLEASE!‼️‼️ E-Commerce 1
L difficoltà con Xampp. printing php mancante...help Web Server 6
K [PHP] Help me a problem... Pleases PHP 1
S Problemi con modulo upload video php (help!) PHP 0
M HELP FORM CREATO IN PHP PHP 14
M Help - consultare (ed esportare) dati da un DB pubblico mySql PHP 2
S [PHP] help me!! PHP 2
F Cerco contatto tipo help-desk Offerte e Richieste di Lavoro e/o Collaborazione 2
F Help-PDO copiare Database MySQL PHP 3
Andrea1981 [WordPress] [HTML] Help modifica credits nel footer.Tema Customizr. WordPress 5
simgia [Javascript] Google maps help! Javascript 1
S [WordPress] Footer php - il background riempie tutta la pagina - help WordPress 1
A funzioni asincrone e callback...help! Ajax 10
F Help array da javascript a php Javascript 2
P Help con js/php PHP 6
N Sistema di Help di Delphi 7 non funziona su Win10 Windows e Software 0
silvia88 ***Help*** - Anteprima immagine photoshop diversa da file Photoshop 3
A HELP: vedo il sito posizionato in serp solo con i tool di posizionamento!!! SEO e Posizionamento 3
T [PHP] Calcolo anzianità soggetti [era: Help me :( Esercizio per me impossibile] PHP 9
trattorino Creare codice php help PHP 26
CoyotesSon [PHP] Help! Creazione di una finestra PHP 5
V help java Java 2
L help me Presentati al Forum 0
L N00b need help Webdesign e Grafica 2
I Help - Problema installazione tema di themeforest WordPress 1
claudiav ciao!! help.. Presentati al Forum 0
Z Invio mail da telecamere HIKVision - HELP!!! IP Cam e Videosorveglianza 0
M - WordPress - Sito Annunci HELP ME!!!! :crying: WordPress 2
L Hosting, help HTML e CSS 2
M HoneyPot su macchina virtuale HELP ME PLEASE!!! Reti LAN e Wireless 0
F Help con leaseweb Hosting 2
M DropDownList HELP ASP.NET 8
E [Javascript] help me !!! array da php a java Javascript 9
N Query lenta, help ! MySQL 0
P Help! modifica script Javascript 11
R cookies policy - help Leggi, Normative e Fisco 21
I Piccolo roblema di compatibilità mobile.. help! PHP 1
zorro Help paginazione PHP 10
A Help! Creare un blog/portale con chat in real time WordPress 0
P help variabile js concatenata a echo php Javascript 0
O Help, devo fare un sito web con alcune caratteristiche... HTML e CSS 2
Alessandra Fanelli Menu Collapse- help -nn iserisce azioni a pulsanti Flash 0
M php help ! PHP 3

Discussioni simili