Problema con le sessioni

  • Creatore Discussione Creatore Discussione Sector
  • Data di inizio Data di inizio

Sector

Nuovo Utente
18 Mar 2009
26
0
0
Salve a tutti , avete 10 secondi per dirmi chi ha inventato i cookie e le sessioni ..... meno 9 , 8 , 7 , 4 , 2 , 1 ....
Tempo scaduto !! , vabbè sarà per la prossima volta , meditate gente , meditate .....

Scherzi a parte , ho un piccolo grande problema con le sessioni , cambio tono e mi spiego meglio

Avrei le seguenti necessità :

1 - Memorizzare TUTTO quello che viene digitato nel Form di ricerca in un file di sessione .

2 - Nel caso il TESTO venisse ripetuto a distanza di pochissimo tempo ( essendo digitato nuovamente nel Form ) , dovrei far partire un suono ( piacevole si intende , mica una puzzetta ) .

Utilizzando il codice sottostante riesco solo a memorizzare il primo testo digitato , dal secondo in poi neanche a parlarne .
Qualcuno sa dirmi come potrei fare ?

PHP:
<?php
session_start();
$_session['nome'] = "parola";
if (!($chiave)){
session_register("chiave");
}
?>



Saluti alla comunità
 
Ciao borgo italia

Ho dato un'occhiata ma non ho capito come applicare il tutto per risolvere il mio problema .

Qual'era il tuo pensiero a riguardo ?


Saluti :book:
 
ciao
per prima cosa io farei

PHP:
if(!isset($_SESSION)){
session_start ();
}
$_session['nome'] = "parola";

in modo che non ricrei tutte le volte, e poi, se non ho capito male, dovresi fare

PHP:
//leggi quello che proviene dal fom
$chiave=$_POST['chiave'];
//se $chiave non vuota e diverso dalla sessione, modifichi valore di session

if (!$chiave && $_SESSION['nome'] != $_POST['chiave']){ 
 $_session['nome'] = $chiave
}

se in $chiave hai la parola da cercare

poi fai un if/else

PHP:
if($_POST['chiave']==$_SESSION['nome']){
// fai partire la musichetta
}else{
//fai quello che devi fare
}

questo per quel che vale:byebye:

p.s.
col mio post precedente volovo solo indicarti di non utilizzare session_register
 
Salve borgo italia

Ho usato il codice che mi hai postato , ma dopo aver digitato il primo
testo di ricerca nel Form e aver premuto invio parte subito il messaggio
" Hai già cercato questo termine " e nel file di sessione non ha memorizzato niente , direi che qualcosa non va , mi e stato detto che con un array potrei risolvere , ma avendo un solo campo di ricerca e un solo form come potrei costruire un array adeguato ?


Ciao e Grazie per l'aiuto che hai cercato di darmi !
 
Ciao , scusa il ritardo nel risponderti , ma alcuni eventi imprevisti mi hanno trattenuto .

scusa dimenticavo..il form rimanda ad un'altra pagina o fa la ricerca ecc. sulla stessa?

Ho provato in entrambi i modi ma il risultato e sempre lo stesso , il file di sessione risulta vuoto , fammi sapere se ti viene in mente qualcosa .

Saluti e ancora grazie !
 
ciao
prova quasto script

PHP:
<?php
if(!isset($_SESSION)){
session_start ();
}


if($_session['nome']==""){$_session['nome'] = "parola";}
//var_dump($_session['nome']);
if(isset($_POST['invia']) && $_POST['invia']=="invia"){
	$chiave=$_POST['chiave'];
	if ($_SESSION['nome'] != $chiave){ 
 		$_SESSION['nome'] = $chiave;
		echo "faccio la ricerca con chiave $chiave";
	}elseif($_SESSION['nome'] == $chiave){
		echo "senti che bella musichetta<br>hai appana cercato con $chiave";
	}



}
?>

<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
inserisci una parola<input name="chiave" type="text"><br>
<input name="invia" type="submit" value="invia">

</form>

sembrerebbe che nella sua semplicità funzi
 
Ciao borgo italia

Ho provato il tuo script , ma non funge , e nel file di sessione non memorizza niente .

Il recupero dati dal database avviene in maniera corretta , quindi fin quì va tutto bene , ma l'echo non va , strano perchè il codice sembrerebbe a
posto .....


Questa e la parte principale :

PHP:
<form method=post action=filedue.php>  
<input type=text size="70" name=chiave'>
</form>	   
<?
$chiave=$_REQUEST['chiave'];  
top();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database");
$keys = explode (",", $chiave);
$query = "";
reset ($keys);
while (list(,$parola) = each ($keys))
{ $parola = trim($parola);
if ($parola != "")
$query .= "titolo = '$parola' ecc ... ";
}
$query .= " 0";
$query = "SELECT id, ecc.... " . $query;
$result = mysql_query($query, $db);
if (mysql_num_rows($result)==0) {
ecc .....


Hai mantenuto la parola , e hai cercato di darmi una mano , Grazie !


Per sdrammatizzare ecco il consiglio del giorno :

Mangiatevi un castoro e salverete un albero
 
Ultima modifica:
ciao
a me funzia, ma a te no perchè nel postarlo avevo scritto

$_session

e come sai php è casesensiive:incazz:

$_SESSION


anche i migliori:rolleyes:...sbagliano
 
Avevo già provato a correggere questa cosa , adesso ho riprovato ma non vuole saperne , non da errore , ma come ti dicevo l'echo non va e nel file di sessione non risulta memorizzato nessuno dei termini digitati nel Form

Qualcosa ci sfugge ma non riesco a capire dov'è l'errore ! :book:

Saluti e ancora grazie
 
ciao
ho riprovato lo scripit che ti avavo postato (metendo anche vari var_dump per verificare i valori di session) e funzia, un piccolo dubbio il tuo form

<form method=post action=filedue.php>
<input type=text size="70" name=chiave'>
</form>

non ti sei dimenticato il pulsante di submit?
 
dimenticavo, prova al posto di

PHP:
if($_SESSION['nome']==""){$_SESSION['nome'] = "parola";}

scrivere

PHP:
if($_SESSION['nome']==NULL){$_SESSION['nome'] = "parola";}
 
Ok Borgo italia

E andata , adesso funziona però devo cliccare per forza sul pulsante invia
altrimenti non va , mentre prima usavo solo enter , quindi dovrò cercare di correggere quest'anomalia .



Ciao e grazie mille per l'aiuto che mi hai dato ! :elvis:
 

Discussioni simili