Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    69

    perdita sessione dopo query di insert

    ciao a tutti

    sto realizzando un applicativo di gestione appuntamenti per lavoro

    mi loggo in base a un nome utente e una password, storate in una tabella. Il login funziona, fa l' accesso differenziato in base all' utente che si logga senza problemi, ma a questo una volta loggato, mi compare un form dove devo inserire dei dati da inserire in record dentro una tabella. qua sorge il problema: Appena compilo tutti i campi e clicco sul pulsante per far partire la query, vengo buttato fuori e rimandato alla pagina di inserimento nome utente e password. Come posso fare per tenere la sessione dell' utente attiva?



    aspetto risposte

    grazie a tutti

  2. #2

    Re: perdita sessione dopo query di insert

    Originariamente inviato da serrafra

    aspetto risposte
    Piu che risposte ti devi aspettare una domanda: Come gestisci le sessioni?

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    69
    una volta loggato, dichiaro che la variabile di sessione login == on

    ti posto il codice:

    questa è la pagina che contiene il form di autenticazione

    if ($_POST['NomeUtente'] == ""){
    echo "<h1>Gestione appuntamenti</h1>";
    echo $modulo;
    echo "Inserisci nome utente e password";
    }else{
    $anag=mysql_query("SELECT * FROM agenti");
    while ($ana=mysql_fetch_assoc($anag)){
    $utente=$ana['User'];
    $pwd=$ana['Pwd'];
    $tip=$ana['Tipologia'];
    if ($_POST['NomeUtente'] == $utente && $_POST['CodiceAccesso'] == $pwd){
    $_SESSION[login] = "on";?>
    <h2>Ciao<?php echo $ana['Nome']."".$ana['Cognome'].",";?>benvenuto nella tua area personale della gestione appuntamenti. Il tuo profilo:<?php echo $ana['Tipologia'];?></h2>
    <?php if ($ana['Tipologia'] == "T") {
    include ('inc.inserisciappuntamento.php');
    }
    else {
    include ('inc.visualizzaappuntamenti.php');
    }
    ?>
    <a href=?uscita=esci>Logout</a><?php
    }
    }
    }

    come puoi vedere, in base al tipo di utente viene caricata una pagina (nel nostro caso la pagina dove il telefonista inserisce i dati che verranno memorizzati con la query). Ti posto l' include da controllare

    <?php
    session_start();

    include('inc.connessione.php');?>
    <form action="<?php $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">
    Telefonista:<input type="text" size="50" maxlenght="50" name="telefonista" />

    Data appuntamento:<input type="text" name="dataapp" size="15" maxlenght="15" value="<?php echo date("d/m/Y");?>" />

    Quantit&agrave;Sim:<input type="text" name="qtasim" size="4" maxlenght="4" />

    Ragione sociale:<input type="text" size="70" maxlenght="70" name="ragionesociale" />

    Indirizzo:<input type="text" size="70" maxlenght="70" name="indirizzo" />

    Numero Civico:<input type="text" size="5" maxlenght="5" name="civico" />

    CAP:<input type="text" size="5" maxlennght="5" name="cap" />

    Localit&agrave;:<input type="text" maxlenght="50" size="50" name="localita" />

    Telefono:<input type="text" size="30" maxlenght="30" name="telefono" />

    Referente:<input type="text" maxlenght="30" size="30" name="referente" />

    <input type="submit" name="Invia" value="inserisci" />
    </form>


    <?php

    if ($_POST['Invia']=="inserisci"){
    $telefonista=$_POST['telefonista'];
    $data=$_POST['dataapp'];
    $qta=$_POST['qtasim'];
    $rag=$_POST['ragionesociale'];
    $ind=$_POST['indirizzo'];
    $civ=$_POST['civico'];
    $cap=$_POST['cap'];
    $loc=$_POST['localita'];
    $tel=$_POST['telefono'];
    $ref=$_POST['referente'];

    $inserisci=mysql_query("INSERT INTO appuntamenti (Telefonista, DataAppuntamento, QtaSim, RagioneSociale, Indirizzo, NCivico, CAP, Localita, Telefono, Referente) VALUES ('$telefonista', '$data', '$qta', '$rag', '$ind', '$civ', '$cap', '$loc', '$tel', '$ref')");
    mysql_query($inserisci) or die('Errore query di inserimento');
    }
    ?>


    dopo che faccio clic per inserire l' appuntamento, mi butta fuori

  4. #4
    Non si capisce granché su quali sono i files, cosa viene prima e cosa viene dopo.

    Comunque forse ti sei dimenticato un session_start() in qualche pagina.
    Oppure hai fatto qualche echo prima del session_start() e usi le sessioni basate sui cookies

    (La sessione deve partire prima di qualsiasi altro output, echo e cose varie... persino un "a capo" accidentale dopo il tag di chiusura ?> in un qualsiasi file può dare problemi)

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    69
    ciao a tutti

    ho modificato lo script, sembra che inizi ad andare un po meglio.....vi posto il codice commentato cosi si capisce meglio:

    questa è la pgina di index, con un form che manda la pagina ad uno script:

    ///---Inizio codice-----///
    <!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" />
    <link rel="stylesheet" src="style.css" type="text/css" />
    <title>Applicativo Gestione Appuntamenti</title>
    </head>
    <body>
    <form action="login.php" enctype="multipart/form-data" method="post">
    <table width="280" border="0">
    <tr><td>Nome Utente</td><td><input type="text" name="NomeUtente" size="25" /></td></tr>
    <tr><td>Password</td><td><input type="password" name="CodiceAccesso" size="26" /></td></tr>
    </table>
    <input type="submit" name="login" value="Login" />
    </form>
    </body>
    </html>
    ///-----Fine codice----///


    Questo è lo script del login

    ///-----Inizio codice---////

    <?php
    include('inc.connessione.php');
    //attivo sessione
    session_start();
    session_regenerate_id(TRUE);
    //variabili per criptare in md5 = $password=md5(htmlspecialchars( $_GET[pass]));
    $user=htmlspecialchars( $_POST['NomeUtente']);
    $password=htmlspecialchars( $_POST['CodiceAccesso']);
    $query = "SELECT * FROM agenti WHERE User='".$user."' AND Pwd='".$password."'";
    $result = mysql_query($query);

    //controllo esistenza utente
    if(mysql_num_rows($result)) {

    //se è loggato creo la sessione
    $_SESSION['user'] = $user;
    $_SESSION['password'] = $password;?>

    //Faccio visualizzare un form per inserire dei valori
    <form action="ok.php" method="post" enctype="multipart/form-data">
    Telefonista:<input type="text" size="50" maxlenght="50" name="telefonista" />

    Data appuntamento:<input type="text" name="dataapp" size="15" maxlenght="15" value="<?php echo date("d/m/Y");?>" />

    Quantit&agrave;Sim:<input type="text" name="qtasim" size="4" maxlenght="4" />

    Ragione sociale:<input type="text" size="70" maxlenght="70" name="ragionesociale" />

    Indirizzo:<input type="text" size="70" maxlenght="70" name="indirizzo" />

    Numero Civico:<input type="text" size="5" maxlenght="5" name="civico" />

    CAP:<input type="text" size="5" maxlennght="5" name="cap" />

    Localit&agrave;:<input type="text" maxlenght="50" size="50" name="localita" />

    Telefono:<input type="text" size="30" maxlenght="30" name="telefono" />

    Referente:<input type="text" maxlenght="30" size="30" name="referente" />

    <input type="submit" name="Invia" value="inserisci" />
    </form>
    //Link logout
    Logout

    //Lettura valori da form
    <?php
    if ($_POST['Invia']=="inserisci"){
    $telefonista=$_POST['telefonista'];
    $data=$_POST['dataapp'];
    $qta=$_POST['qtasim'];
    $rag=$_POST['ragionesociale'];
    $ind=$_POST['indirizzo'];
    $civ=$_POST['civico'];
    $cap=$_POST['cap'];
    $loc=$_POST['localita'];
    $tel=$_POST['telefono'];
    $ref=$_POST['referente'];

    //Query di inserimento
    $inserisci=mysql_query("INSERT INTO appuntamenti (DataAppuntamento, Telefonista, QtaSim, RagioneSociale, Indirizzo, NCivico, CAP, Localita, Telefono, Referente) VALUES ('$data', '$telefonista', '$qta', '$rag', '$ind', '$civ', '$cap', '$loc', '$tel', '$ref')");
    mysql_db_query($db_database ,$inserisci) or die (mysql_error());
    }

    //chiusura IF di controllo esistenza
    }

    //alternativa all IF di controllo esistenza
    else
    {echo "login invalido}
    ?>

    appena vado a eseguire la query, cliccando sul submit, il form mi porta a una pagina (ok.php), che mi indica il corretto inserimento e genera un link per tornare al form, ma appena clicco sul suddetto link mi viene mostrata la scritta login invalido, ossia l' alternativa all' IF di controllo. Quindi penso che questo voglia dire che la sessione è andata perduta....Inoltre la query non viene eseguita, in quanto controllando sul database non ce nessuna riga.....come posso fare? vi prego aiutatemi ho urgenza


    grazie a tutti

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ciao serrafra,
    session_start(); lo devi mettere prima di ogni cosa e soprattutto prima del DOCTYPE.

  7. #7
    sarebbe meglio se il codice fosse inserito tra tag [php ] e [/php ]

    poi non si capisce bene dove iniziano e dove finiscono le varie pagine.

    Pero' si capisce bene questo:
    Codice PHP:
    //Query di inserimento
    $inserisci=mysql_query("INSERT INTO appuntamenti 
            (DataAppuntamento, Telefonista, QtaSim, RagioneSociale, Indirizzo, NCivico, CAP, Localita, Telefono, Referente) 
           VALUES 
           ('
    $data', '$telefonista', '$qta', '$rag', '$ind', '$civ', '$cap', '$loc', '$tel', '$ref')");

    mysql_db_query($db_database ,$inserisci) or die (mysql_error()); 
    esegui due volte l'insert e nella seconda con mysql_db_query (deprecata) vai ad infilare la risposta della prima insert eseguita con mysql_query.

    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.