Unofficial WebSite X5

Categoria generale => Area Tecnica => Topic aperto da: tempesta6 - 10 Aprile, 2012, 19:10:29

Titolo: Aiuto Tesina
Inserito da: tempesta6 - 10 Aprile, 2012, 19:10:29
Salve gente ho fatto un sito con incomedia website per la tesina di informatica di quest anno,tutto bene ma ho un problemone!
ho fatto correttamente la registrazione/login utente con creazione del database in php con easy php,ma come faccio a fare tipo le sessione?
cioè mi spiego meglio uno volta dopo che mi sono loggato vorrei avere un qualcosa nella mia home page del tipo
"Sei collegato come ****"
2)mi piacerebbe che una volta loggato scombarissa la mia caselllina del login!
grazieeee
Titolo: Re:Aiuto Tesina
Inserito da: StratoS - 10 Aprile, 2012, 22:30:01
Forse se ci fai vedere lo script che hai utilizzato qualcuno ti da una mano.
Comunque alla fine di tutti i controlli con un "if" e "location" rimandi l'utente loggato nella pagina che vuoi tu, poi se vuoi far comparire anche il nome utente dovrai utilizzare un "$_SESSION" richiamandolo tipo:
<?php
      echo Benvenuto/a, $_SESSION['$nomeutente'] ;

?>
 
Chiaramente, la pagina che riceve il comando deve essere in php e deve avere aperte le sessioni all'inizio del codice HTML:
<php
session_start();

?>
 
Ciao.
Augusto.
Titolo: Re:Aiuto Tesina
Inserito da: tempesta6 - 10 Aprile, 2012, 23:20:55
Scusate se non ho messo il codice ma ero dal cellulare e non potevo! :-[
Grazie per la risposta...
Io credo che si debbano usare le sessioni ma non è argomento di quinta(i miei insegnanti hanno detto che non lo spiegano,ma voglio comunque imparare ad usarle..non si sa mai nel futuro!)
questo è il semplicissimo login:
 (l html è solo un semplice codice)


[glow=red,2,300]
<?php
    session_start();
    $psw=$_POST["Psw"];
    $usnm=$_POST["Username"];
    include "collega_db.php";
    $fatto=false;
    $fatto2=false;


    //Controllo username
    $query = "SELECT User_name FROM utenti " ;
    $result = mysql_query($query, $mysql);


    while($contr=mysql_fetch_array($result))
  if($contr['User_name']==$usnm) $fatto=true;

    echo("<body background='fuoco.jpg' bgproperties='fixed'>");   
echo("<font color='#ffffff'>");
   //Controllo password

   $query2 = "SELECT Password FROM utenti" ;
   $result2 = mysql_query($query2, $mysql);

   while($contr=mysql_fetch_array($result2))
       if($contr['Password']==$psw) $fatto2=true;


   if($fatto && $fatto2){


      $_SESSION['Usnm']=$usnm;
  $_SESSION['login'] = 'OK';
      header("Refresh:1; URL=tesina2/index.php") ;
  echo("<center>");
  echo("<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>");
      echo ("<h1>Benvenuto ".$usnm." </h1>");    //ok
      //echo ("<p>Accedi al sito <a href='tesina2/index.php'>qui</a></p>");
   }


   if(!$fatto){
   echo("<p> utente non presente nel database</p>");
   echo("<p> Ripova il login <a href='login.html'>qui</a></p> ");
   }
   if(!$fatto2){
    echo("password errata");
    echo("<p> Ripova il login <a href='login.html'>qui</a></p> ");
   }
  echo("</center>");
  echo("</font>");
   echo("</body>");
   mysql_close();


?>[/glow]










Io in pratica voglio solo una cosa molto semplice che una volta loggato veda da qualche parte nel mio sito che lo sono del tipo ad esempio in alto a destra una scritta di questo tipo:
Sei collegato come XXX
avete capito?
grazie mille!
Titolo: Re:Aiuto Tesina
Inserito da: StratoS - 10 Aprile, 2012, 23:44:28
Scusa ma hai fatto tutto tu questo script ?
Allora se è tutta farina del tuo sacco non dovrebbe essere difficile capire che se fai tutte le pagine php e apri in tutte le pagine le sessioni, come hai fatto con questa, poi dove vuoi far apparire la scritta metti:
 
Sei collegato come:
<php
echo $_SESSION['$usnm] ;
?>
 
e apparirà a video:
 
Sei collegato come:
Nomeutente.
 
Per quel che riguarda tutto il codice, non sono stato a guardare, per cui non ti sò dire se è scritto bene o no.
Ciao.
Augusto
Titolo: Re:Aiuto Tesina
Inserito da: tigrone - 10 Aprile, 2012, 23:49:42
Usare le sessioni è semplicissimo... è un array... come $_POST, $_GET, $_SERVER ecc...
Solo che mantiene i valori assegnati fino alla chiusura del browser o alla distruzione della sessione quindi ben si presta quando c'è la necessità di mantenere i valori navigando tra le pagine del sito.

Nella fattispecie, la soluzione al problema ce l'hai davanti agli occhi... guarda bene...


Edit: Augusto mi ha preceduto... comunque... più precisamente:


<?php
echo 'Sei collegato come '.$_SESSION['Usnm'];
?>

Per quanto riguarda il fatto di non far comparire il login se si è loggati... devi cercare il codice html responsabile e metterlo in un istruzione if
Titolo: Re:Aiuto Tesina
Inserito da: tempesta6 - 11 Aprile, 2012, 12:20:35
sisi ho fatto tutto io e spulciato qualcosa su internet(visto che non ce lo spiegano a scuola)
sapete dirmi su incomedia come fare a:
prima di loggarsi non sono disponibili alcune sezioni,e dopo loggarsi lo sono tutte


sapete come si fa?
grazie!
Titolo: Re:Aiuto Tesina
Inserito da: StratoS - 11 Aprile, 2012, 14:06:30
...prima di loggarsi non sono disponibili alcune sezioni,e dopo loggarsi lo sono tutte
sapete come si fa?
grazie!

Sempre con le sessioni e l'istruzione if, nelle pagine che non vuoi far vedere prima del login inserisci l'istruzione di controllo:
 
session_start();
if ($_SESSION[login] !=1)
    header("Location:http://www.tuosito/paginadilogin");

?>
 
modifica la riga di comando:
 $_SESSION['login'] = 'OK';
 
così:
$_SESSION['login']=1;
 
In questo modo le pagine "protette" reindirizzerando al login se non sei loggato.
Ciao.
Augusto.
P.S. X Tigrone, come l'ho scritto io va a capo, come l'hai scritto tu è tutto su una riga, ma sono corretti tutti e 2 o sbaglio ?  ;)
Ciao.
Augusto.
Titolo: Re:Aiuto Tesina
Inserito da: tempesta6 - 11 Aprile, 2012, 20:18:34
Grazie ragazzi risolto!veramente grazie mille!
ora un'ultima domanda:


HO fatto il carrello acquisti con incomedia,come gli passo i dati utente senza ripeterli ogni volta?
nel senso una volta che un tizio si icrive al mio sito con dati vari e poi effettua il login,come passo questi dati direttamente al carrello senza farglieli reinserire ogni volta?
grazie!
Titolo: Re:Aiuto Tesina
Inserito da: StratoS - 11 Aprile, 2012, 22:26:51
HO fatto il carrello acquisti con incomedia,come gli passo i dati utente senza ripeterli ogni volta?
nel senso una volta che un tizio si icrive al mio sito con dati vari e poi effettua il login,come passo questi dati direttamente al carrello senza farglieli reinserire ogni volta?
grazie!
Con il carrello di WX è difficile farlo, devi utilizzare un DB e richiamare i dati da li.
Ciao.
Augusto.
Titolo: Re:Aiuto Tesina
Inserito da: tigrone - 12 Aprile, 2012, 00:56:52
@tempesta
Stai studiando o no???
E allora butta incomedia nel cesso e vai avanti a studiare che è meglio!!!!


@Augusto
Se scrivi:

Codice:
Only registered users can see contents. Please click here to Register or Login.

a parte il fatto che ['$Usnm] è sbagliato... ma comunque non andrebbe a capo... teoricamente parlando; se poi infili il codice in website allora... la teoria cessa di esistere per far posto all'imponderabile! ;) 
Titolo: Re:Aiuto Tesina
Inserito da: StratoS - 12 Aprile, 2012, 01:18:26
@tempesta
Stai studiando o no???
E allora butta incomedia nel cesso e vai avanti a studiare che è meglio!!!!


@Augusto
Se scrivi:

Codice:
Only registered users can see contents. Please click here to Register or Login.

a parte il fatto che ['$Usnm] è sbagliato... ma comunque non andrebbe a capo... teoricamente parlando; se poi infili il codice in website allora... la teoria cessa di esistere per far posto all'imponderabile! ;) 

Hai ragioneeeeeeeeee :-[ non avevo fatto caso al ' mancante, e per andare a capo <br />, quindi:
 
<php
echo 'Sei collegato come:<br />' $_SESSION['$usnm'] ;
?>
 
Comunque hai ragione, ho il brutto vizio di scrivere codice semplificato con EVO e se ci lavoro più di un giorno poi faccio fatica a ricordarmi il codice giusto, devo prendere l'abitudine di scrivere sempre il codice "VERO" per non perdere l'abitudine. ;)
Ciao.
Augusto.
Titolo: Re:Aiuto Tesina
Inserito da: tigrone - 12 Aprile, 2012, 02:25:54
Augusto.... ancora sbagli...  :lol:


$_SESSION è un array............


E il punto di concatenazione???


E quello di domanda???  ;D
Titolo: Re:Aiuto Tesina
Inserito da: StratoS - 12 Aprile, 2012, 12:33:50
 :-[ :-[ :-[ :-[ :-[
Non per giustificarmi, ma guarda l'ora e stavo facendo 3 cose insieme, comunque questi sbagli non si dovrebbero fare.
Lascia perdere l'apertura del codice PHP, ma il punto di concatenazione... >:D  rimetto un'apice mancante e mi scordo il punto.
E' l'età è l'età, da una parte fa bene a tempesta6, così vede quello che non si deve fare. :lol: :lol: :lol:
Ciao.
Augusto.
Titolo: Re:Aiuto Tesina
Inserito da: tigrone - 12 Aprile, 2012, 23:01:51
Augustoooo....  ::)
Passi la dimenticanza del punto, apice ecc... sai quante volte capita anche a me... e non ti dico quando sbaglio le graffe!  ???
Pensa che bello... magari in uno script da 1000 righe... quando php ti da errore all'ultima riga e la graffa sbagliata si trova a metà listato!!! :-\
Comunque... mettere il valore al posto della chiave è un errore grave! ;)
Titolo: Re:Aiuto Tesina
Inserito da: StratoS - 13 Aprile, 2012, 01:46:12
Comunque... mettere il valore al posto della chiave è un errore grave! ;)
E c'hai ragione c'hai, lasciate questo topic sempre bene in vista per far capire quanto è facile sbagliare e risbagliare.
Non ho parole, e poi c'è da dire che l'ho ricontrollato per capire dove avevo sbagliato, ma niente non l'avevo proprio notato. :-X
Grazie Tigro... mi fa, bene ogni tanto, qualche scappellotto. :lol:
Ciao.
Augusto.