Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    variabile session si svuota da sola

    Ciao a tutti, ho la variabile $_SESSION[id] che ad un certo punto, non capisco perchè ma si svuota...
    Vi spiego cosa dovrebbe far la pagina: visualizzare un from per l'immissione dell'id, una volta inserito visualizzare il testo corrispondente all'id nella textarea in modo che possa esser modificabile, dopo di che alla pressione del pulsante "modifica" eseguire le query per modificare il testo... sfortunatamente nell'ultimo passaggio la variabile $_SESSION[id] si svuota e così non riesco a eseguire le query
    Vorrei capire cosa sbaglio
    codice:
    <?php 
    include("../gestione/verificalog.php");
    session_start();
    if((empty($_SESSION[id])) && (empty($_POST[ID]))){
    	echo "Inserisci l'id della News da modificare.
    
    	<FORM METHOD=POST ACTION=\"$PHP_SELF\">
    		<input type=\"text\" name=\"ID\" value=\"\" />
    		<input type=\"submit\" name=\"submit\" value=\"Mostra\">
    	</form>";
    }
    else{	/*se è già stato inserito l'id*/
    	$id=$_POST[ID];
    	$_SESSION[id]=$id;
    	$c = mysql_connect("localhost","*****","******"); //connessione DB
    	mysql_select_db("****i", $c) or die("Errore nella selezione del database");
    	
    	$x=mysql_query("SELECT testo FROM News WHERE ID=".$id, $c); //QUERY
    	$ris=mysql_result($x,0);
    	mysql_close($c);
    	
    	if(empty($_POST[txt_mod])){
    		echo"
    		<FORM METHOD=POST ACTION=\"$PHP_SELF\">
    			<textarea name=\"txt_mod\">";echo $ris."</textarea>
    			<input type=\"submit\" name=\"submit\" value=\"Modifica\">
    		</form>";
    		echo "variabile sessione: ".$_SESSION[id];
    	}
    	else{	/*se è già stato inserito il testo*/
    		$c = mysql_connect("localhost","*****","******"); //connessione DB
    	        mysql_select_db("****i", $c) or die("Errore nella selezione del database");database");
    		$idx=$_SESSION[id];
    		echo "
    ".$_SESSION[id];
    		$testo=$_POST[txt_mod];
    		
    		$x1=mysql_query("DELETE FROM News WHERE ID=".$idx, $c);
    		$x2=mysql_query("INSERT News(testo,ID) VALUES ('".$testo."',".$idx.");", $c);
    		$x3=mysql_query("ALTER TABLE  News ORDER BY  ID DESC",$c);
    		echo "Modifica eseguita
    ";
    		echo "DELETE FROM News WHERE ID=".$id;
    		mysql_close($c);
    	}
    }
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Guarda che se non metti le virgolette o non definisci le costanti non puoi fare nulla.

    $_SESSION['id']
    $_POST['ID']


  3. #3
    Originariamente inviato da simo22
    Guarda che se non metti le virgolette o non definisci le costanti non puoi fare nulla.

    $_SESSION['id']
    $_POST['ID']

    le virgolette non le ho mai messo e ha sempre funzionato infatti la variabile me la stampa quando faccio
    codice:
    echo "variabile sessione: ".$_SESSION[id];
    prima dell'ultimo else... da quell'ultimo else la variabile risulta vuota

  4. #4

    Risolto

    risolto, praticamente al secondo passaggio la variabile POST del primo form era vuota ma io l'assegnavo ugualmente, è bastato un if per risolvere. ecco cosa succede quando si è stanchi XD

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Originariamente inviato da Attak
    le virgolette non le ho mai messo e ha sempre funzionato infatti la variabile me la stampa quando faccio
    codice:
    echo "variabile sessione: ".$_SESSION[id];
    prima dell'ultimo else... da quell'ultimo else la variabile risulta vuota
    Guarda che non puo mai funzionare senza virgolette. Tranne che tu non hai definito una variabile id con dentro "id".

  6. #6
    Originariamente inviato da simo22
    Guarda che non puo mai funzionare senza virgolette. Tranne che tu non hai definito una variabile id con dentro "id".
    io faccio
    codice:
    $_SESSION[id]=$id;
    e poi la leggo tranquillamente
    codice:
    echo "variabile sessione: ".$_SESSION[id];
    nessun problema comunque se leggi il mio terzo post cè scritto qual'era il problema

  7. #7
    Originariamente inviato da simo22
    Guarda che non puo mai funzionare senza virgolette. Tranne che tu non hai definito una variabile id con dentro "id".
    Non e' vero, quel codice funziona. Quando PHP trova una bareword (stringa che non e' una keyword interna e non e' racchiusa da apici/virgolette) come indice di un array, prima cerca se esiste una costante con quel nome, se non esiste la stringa viene usata com'e' e viene emesso un warning.

    E' chiaramente una pessima abitudine usare stringhe non quotate, ma - sfortunatamente - non e' illegale.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Originariamente inviato da k.b
    Non e' vero, quel codice funziona. Quando PHP trova una bareword (stringa che non e' una keyword interna e non e' racchiusa da apici/virgolette) come indice di un array, prima cerca se esiste una costante con quel nome, se non esiste la stringa viene usata com'e' e viene emesso un warning.

    E' chiaramente una pessima abitudine usare stringhe non quotate, ma - sfortunatamente - non e' illegale.


    Mai sentito...
    Comunque buono a sapersi.

  9. #9
    Però il mio codice mi sembra molto macchinoso, avete dei consigli da darmi?

  10. #10
    Originariamente inviato da Attak
    Però il mio codice mi sembra molto macchinoso, avete dei consigli da darmi?
    il primo suggerimento e' di abilitare la stampa degli errori. Ne troverai e potrai cominciare a sfoltirli.

    Poi una mia domanda? che versione di php stai usando? $PHP_SELF e' finito di esistere nel 2002 con il php 4.0. Vedi la pillola di chris ....

    http://forum.html.it/forum/showthrea...hreadid=245215

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.