Gå til innhold

[LØST] form redirect spørsmål


Anbefalte innlegg

Hallo.

Jeg har laget en login side, hvor man taster brukernavn og passord for å logge på. Tingen er at jeg ikke får til å redirecte brukeren direkte inn på systemet. Man må liksom først trykke login, deretter klikke på en link for å komme inn på systemet. Prøvd header, men får bare headers already been sent out. Noen som har noe tips om hvordan jeg kan løse dette?

Endret av lassejl
Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+142

Enten hiver du inn ob_start(); før noe som helst output skjer, eller så kan du prøve deg på

echo '<meta http-equiv="refresh" content="0; url=/index.php" />';

Lenke til kommentar

Sett inn en ob_start() i toppen du ;)

Den gjør at hele siden blir generert på serveren før den sendes ut til brukeren.

 

Hvis du inkluderer alle undersidene ut fra index; bør du definere hvilke undersider som ob_start() skal brukes på (siden ob_start gjør at serveren må generere siden før den blir sendt ut og ikke sender ut underveis blir det en flaskehals)

Lenke til kommentar

Hmm... leste litt på php.net, men skjønte ikke helt hva ob_start gjorde. Koden min er som følger:

 

På toppen av siden:

<?php 
session_start();
$id = $_GET['id'];
if ($_POST['sub']) {
$_SESSION['pass'] = $_POST['pass'];
$_SESSION['user'] = $_POST['user'];
}
if ($id == "login") { header('Location:http://lassejl.com/ljlcms/index2.php'); }
?>

 

Skjemaet:

<form method="post" action="index.php?id=login">
User:<br />
<input type="text" name="user" />
<br />
Password:<br />
<input type="password" name="pass" />
<br />
<input type="submit" name="sub" value="Login" />
</form>

<?php
if ($id == "logOut") { 
unset($_SESSION['user'],$_SESSION['pass']); 
echo "You are now logged out.";
}
else {
echo "Type username and password to log in.";
}

 

Tingen er at jeg får redirectet til siden slik som jeg har fikset nå, men da vil ikke sessions bli satt og jeg blir da ikke logget inn.

 

Hvordan kan da ob_start hjelpe meg?

Lenke til kommentar

Header er instrukser som blir sendt til nettleseren i begynnelsen av dokumentet.

Når det blir lagt til andre ting før header(); får du feil siden headeren allerede har blitt sendt til nettleseren.

 

ob_start() går gjennom filen og setter alle header(); som måtte bli aktivert til toppen av dokumentet slik at det er noe av det første som blir sendt til nettleseren.

 

Jeg kan ikke se hvordan det skal kunne hjelpe deg med det scriptet du har postet her, siden du nå sier at du blir sendt videre, men problemet er at scriptet ikke oppfatter at du er logget inn.

 

Når du skriver inn brukernavn og passord virker det som at session ikke blir satt eller du har feil i scriptet som sjekker om session er satt.

Lenke til kommentar
Gjest Slettet+142
Joda, det er en selvfølge. Men å echo'e et enkelt javascript er hakket enklere enn header samt ob_start.

Men hva da om bruker har deaktivert JavaScript?

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...