Gå til innhold

Litt PHP-assistanse


Anbefalte innlegg

Hallo!

 

 

Jeg har noen spørsmål om forskjellige PHP-funksjoner.

Jeg har fikset et login-system som fungerer fint, men er ute etter følgende:

 

Når noen har logget seg inn, så vil jeg at brukernavnet til vedkommende skal dukke opp der hvor login-boksene

var tidligere. Jeg trodde jeg kunne gjøre noe slikt:

 

<?php 
if (isset($_SESSION['user_id'])) {?>

Velkomme <?php echo $_SESSION['user_name'];?>

 

 

Det neste er at jeg har et skjema hvor de innloggede kan poste meldinger til en slags gjestebok.

Jeg vil at de skal slippe å skrive inn sitt eget brukernavn, men at det automatisk dukker opp når innlegget vises.

Kan jeg kanskje bruke samme funksjon til disse to tingene?

 

Håper noen vet råd.

Lenke til kommentar
Videoannonse
Annonse

Hvorfor bytter du mellom PHP og HTML? Det er like så greit å kjøre alt i PHP:

 

<?php
if (isset($_SESSION['user_id'])) {
echo "Velkommen ".$_SESSION['user_name']."!";
}
?>

Koden er ikke testet, men du forstår sikkert prinsippet.

 

Angående gjesteboken kan du bruke cookies eller $_SESSION for å mellomlagre brukernavnet, som sendes som et argument til databasen der meldingene oppbevares.

 

Ellers ser jeg ikke helt problemstillingen din – kanskje du vil utdype mer? Gjerne med kode.

Endret av Ishq
Lenke til kommentar

Måten jeg håndterer dette på selv, er å kjøre en sjekk.

Jeg lagrer $_SESSION['uid'] (User-ID).

 

Om bruker ikke er logget in:

 

<?
$id = $_SESSION['id']; // Hente $_SESSION['id'] til en variabel, så slipper man repetere seg selv så mye 
if(!$id) { // Om de ikke er logget inn, så kommer login skjemaet
include("loginnskjema.php");
} else
if($id) { // Ellers får de opp medlemslinker, som f.eks endre passord, se på meldinger etc.
include("medlemslinker.php");
}
?>

 

Nå kan du skrive formen din til gjestebok med allerede satt brukernavn.

 

f.eks et skjult felt med brukernavnet

<input type="hidden" name="brukernavn" value="<? echo $_SESSION['username']; ?>" />

Endret av legg1
Lenke til kommentar

Først og fremst hvis du skal gjøre dette så er det en fordel å ha samme navn i $_SESSION variabelen :p

 

Så er det også viktig at du åpner session på hver side med en session_start() funksjon

altså:

<?php
session_start();
if (isset($_SESSION['user_name'])) {
echo "Velkommen ".$_SESSION['user_name']."!";
}
?>

 

Men session har sine ulemper når det kommer til diverse nettlesere og gjennomføring etc.

Så jeg anbefaler cookie.

 

Login.php

// DATABASEKODE
setcookie("user", $_POST['username']);

 

andre.php

if(isset($_COOKIE['user']))
echo "Velkommen, " . $_COOKIE['user'] . "!";

Endret av duckyduck
Lenke til kommentar

Nå kan du skrive formen din til gjestebok med allerede satt brukernavn.

 

f.eks et skjult felt med brukernavnet

<input type="hidden" name="brukernavn" value="<? echo $_SESSION['username']; ?>" />

 

Hva er vitsen med det, da? Kan enkelt postes uten brukernavn da.

 

Hvorfor ikke bare hente ut brukernavn når man submit'er formen?

 

<?php
if(isset($_POST['submit'])) {

$brukernavn = $_SESSION['brukernavn'];

}
?>

Lenke til kommentar

Nå kan du skrive formen din til gjestebok med allerede satt brukernavn.

 

f.eks et skjult felt med brukernavnet

<input type="hidden" name="brukernavn" value="<? echo $_SESSION['username']; ?>" />

 

Hva er vitsen med det, da? Kan enkelt postes uten brukernavn da.

 

Hvorfor ikke bare hente ut brukernavn når man submit'er formen?

 

<?php
if(isset($_POST['submit'])) {

$brukernavn = $_SESSION['brukernavn'];

}
?>

 

Ja, stemmer.

beklager den der :p hehe, lettere trøtt når jeg satte meg her i dag ^^

Lenke til kommentar

Først og fremst hvis du skal gjøre dette så er det en fordel å ha samme navn i $_SESSION variabelen :p

 

Så er det også viktig at du åpner session på hver side med en session_start() funksjon

altså:

<?php
session_start();
if (isset($_SESSION['user_name'])) {
echo "Velkommen ".$_SESSION['user_name']."!";
}
?>

 

Men session har sine ulemper når det kommer til diverse nettlesere og gjennomføring etc.

Så jeg anbefaler cookie.

 

Login.php

// DATABASEKODE
setcookie("user", $_POST['username']);

 

andre.php

if(isset($_COOKIE['user']))
echo "Velkommen, " . $_COOKIE['user'] . "!";

Nei nei nei

Hvilke ulemper har session med nettlesere?

Eneste session har med nettlesere å gjøre er at det blir sendt en session cookie.

Ikke bruk cookies på denne måten, da kan brukeren lett bytte ut navnet sitt som brukes (alle cookies lagres på PC, mens session bare lagrer en ID)

Lenke til kommentar

 

Hvordan kan du i det heletattanbefalle cookies?!!! Det eneste cookies er godt for, og ikke det engang mener jeg, er å huske hvor lenge brukeren skal være innlogget!!

Det er kanskje det mest usikre du kan bruke!

Jeg tror du bør revudere det der litt. «Cookie» er på ingen måter noe unyttig. Det kan brukes til å lagre f.eks. innstillinger som ikke har noen betydning for andre brukere eller sikkerheten til nettstedet, og det kan gjøres uten at brukeren engang er en registert bruker av systemet. I forhold til sikkerhet har dog «cookie» liten nytte utover å holde på en referanse til noe på serveren.

Lenke til kommentar
  • 2 uker senere...

Hei dere!

 

 

Jeg sliter fortsatt med å få til dette her jeg, til tross for mange gode forslag og råd.

 

Tenkte kanskje det holdt med noe sånt som dette

 

<?php
if (isset($_SESSION['user_id'])) {
  echo "Jeg er medlem";

  } else {
  echo "Jeg er ikke medlem";

  }
?>

 

(laget enkelt bare for å teste)

..... men det funker ikke. Om jeg er logget inn eller ikke, så står det kun "Jeg er ikke medlem".

Hvis dette hadde funket kunne jeg jo lagt inn noen knapper i echo-kommandoen der.

 

Noen som føler seg kallet?

Lenke til kommentar

Har du startet sessions da?

 

Session skal være startet ved login.

 

 

     
<?php
      session_start();
   session_regenerate_id (true); 


	$_SESSION['user_id']= $id;  
	$_SESSION['alder'] = $alder;		
	$_SESSION['full_name'] = $full_name;
	$_SESSION['user_name'] = $user_name;		
	$_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']);
?>

 

Men jeg har kanskje ikke startet det på den aktuelle siden som man blir redirected til. Åssen kan det se ut?

Endret av tomarild
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...