webForumDet fria alternativet

Session + Mysql = Community Problem

14 svar · 372 visningar · startad av Simpa

SimpaMedlem sedan aug. 20001 135 inlägg
#1

Hittar ingen lösning till det här...
Försökt i flera timmar med olika lösningar, (newbie) och just nu ser det ut så här

Sidan som kollar datan som skickar från formuläret:

<?PHP
session_register("AnvSession");
session_register("PassSession");
$FormNamnet = $_POST["namnet"];
$FormLosenordet = $_POST["losenordet"];
mysql_pconnect ("www.* * *.com *", "* * *");
mysql_select_db ("* * *");

$q = "select 1 from commu where anv = '" . $FormNamnet . "'" .
" and losenord = '" . $FormLosenordet . "'";
$c = mysql_query($q) or die(mysql_error());
if  (mysql_fetch_array($c)) {

$HTTP_SESSION_VARS["AnvSession"] = $FormNamnet;
$HTTP_SESSION_VARS["PassSession"] = $FormLosenordet;
header("location: inloggad.php");
}
?>

Den funkar bra, om det är något som krånglar så är det sättet jag sätter seissons .

Och så här ser sidan ut då jag är inloggad:

<?PHP 
session_register("SessionAnv");
session_register("SessionPass");
if(session_is_registered("SessionAnv") != "True") header("location: index.php?Spard=2"); 
?>

Välkommen<?PHP echo $HTTP_SESSION_VARS["SessionAnv"]; ?>.. Ditt lösenord är <?php echo $HTTP_SESSION_VARS["SessionPass"]; ?>
<a href="loggaut.php">Logga Ut</a> <br>

Det jag alltså vill göra är att få med Värderna Anv, och Lösenord så att man kan kolla värderna flera ggr, samt kolla om man är inloggad så man inte kommer till inloggad.php från något annat ställe än kolla.php,

så här har jag gjort loggaut.php


<?php 
session_unset("SessionAnv");
session_unset("SessionPass");
session_is_registered("SessionAnv");
session_is_registered("SessionPass");  
header("location: index.php?Spard=3");
?>

Om det är någon som kan hjälpa mej så skulle jag bli jätte glad, förklara vad som är fel, lr hur man kan göra det bättre :)

Gör det bara för att lära mej php, inte tänkt att starta något nytt fjortis community, för er som var rädda att jag skulle göra det ;)

mvh

MatteMedlem sedan aug. 20002 970 inlägg
#2

Eftersom $_POST fungerar så antar jag att du har PHP4.1.0 eller senare.

I den filen som tar emot dina formulärdata; ta bort raderna med session_register().
Ändra:

$HTTP_SESSION_VARS["AnvSession"] = $FormNamnet;
$HTTP_SESSION_VARS["PassSession"] = $FormLosenordet;

till:

$_SESSION["SessionAnv"] = $FormNamnet;
$_SESSION["SessionPass"] = $FormLosenordet;

I filen som kollar (inloggad.php) räcker det med:

<?PHP 
if (isset($_SESSION['SessionAnv'])) header("location: index.php?Spard=2"); 
?>

Välkommen <?=$_SESSION['SessionAnv'] ?>.. Ditt lösenord är <?=$_SESSION['SessionPass'] ?>
<a href="loggaut.php">Logga Ut</a> <br>

Och för att logga ut:

<?php
session_start();
session_unset();
session_destroy();
?>
SimpaMedlem sedan aug. 20001 135 inlägg
#3

Hmm..
det funkar, men funkar inte alls ändå..
kika här:
http://www.flumweb.com/commu/

Det kanske ska vara..
if (!isset($_SESSION['SessionAnv'])) header("location: index.php?Spard=2");

..eller?
men sammtidigt så blir det..
Välkommen.. Ditt lösenord är

hm

SimpaMedlem sedan aug. 20001 135 inlägg
#4

Fast har jag
if (!isset($_SESSION['SessionAnv'])) header("location: index.php?Spard=2");

Så kommer jag inte in alls :l
Då blir jag iväg skickad direkt då jag kommer till inloggad.php

MatteMedlem sedan aug. 20002 970 inlägg
#5

Helt riktigt. Jag hade missat ett utropstecken. Men värre är att jag hade glömt att sätta session_start() överst. Så här ska det vara:

<?php
session_start();
mysql_pconnect ("www.* * *.com *", "* * *");
mysql_select_db ("* * *");

$q = "select 1 from commu where anv = '" . $FormNamnet . "'" .
" and losenord = '" . $FormLosenordet . "'";
$c = mysql_query($q) or die(mysql_error());
if  (mysql_fetch_array($c)) {

$_SESSION["SessionAnv"] = $FormNamnet;
$_SESSION["SessionPass"] = $FormLosenordet;
header("location: inloggad.php");

?>

Respektive

<?PHP 
session_start();
if (!isset($_SESSION['SessionAnv'])) header("location: index.php?Spard=2"); 
?>

Välkommen <?=$_SESSION['SessionAnv'] ?>.. Ditt lösenord är <?=$_SESSION['SessionPass'] ?>
<a href="loggaut.php">Logga Ut</a> <br>
SimpaMedlem sedan aug. 20001 135 inlägg
#6

session_start();
var det ja :)

Tack, ska testa koden genast :)

SimpaMedlem sedan aug. 20001 135 inlägg
#7

Får det inte att funka, ska göra ett lätt test och kolla vilken sorts sessioner som funkar..

MatteMedlem sedan aug. 20002 970 inlägg
#8

Hos mig fungerar det alldeles utmärkt, men det är ju inte dig till hjälp.

SimpaMedlem sedan aug. 20001 135 inlägg
#9

Hmm, :)

Tror det är något problem med mina sessioner isåfall..

Kan detta hjälpa och se vad som är inställt?
http://www.flumweb.com/temp/info.php

http://www.flumweb.com/commu/index.php
var addressen till communityt..
Den skriver till databasen osv, fast det verkar vara något fel på sessionerna hmmm.. som om dem inte sattes..

MatteMedlem sedan aug. 20002 970 inlägg
#10

Det enda som skiljer sig från mina inställningar är att jag har session.use_trans_sid satt till 1, men det har betydelse endast då webbläsaren inte tillåter cookies.

SimpaMedlem sedan aug. 20001 135 inlägg
#11

Hmm :(
Får verkligen inte sessionerna att funka...

MatteMedlem sedan aug. 20002 970 inlägg
#12

Kolla om det funkar för dig här: http://www.a-kok.com/filer/simpa/index.php

Där hittar du även koderna till sidorna.

SimpaMedlem sedan aug. 20001 135 inlägg
#13

Allt går bara fel.. :(

Nu kan jag inte logga in överhuvudtaget, även om jag tar bort
<?PHP
session_start();
if (!isset($_SESSION['SessionAnv'])) header("location: index.php?Spard=2");
?>
Så kommer jag bara tebaxs till första sidan..

Man kanske borde sova på den här nöten, förstår inte vad jag gör för fel, testade ju din kod, :l

Tack för all hjälp förresten !

GaqziMedlem sedan aug. 2002228 inlägg
#14

hm, jag gjorde oxå en inloggning med sessions..
Och då fick jag inga värden på anv. lösenord och det..
Så när jag gjorde variablarna som innehäll värdet globala funkade det tokbra..
ex:

$anv = $_POST['user'];
$pass = $_POST['pass'];
Global $anv;
Global $pass;

 session_register ('anv');
 session_register ('pass');

Funkar för mej iallafall..

SimpaMedlem sedan aug. 20001 135 inlägg
#15

Det här är helt sjukt, får det verkligen inte att funka, ska ta kontakt med webhotelet och se om det kan vara nå problem där.

Genererad på 394 ms · cache AV · v20260730165559-full.f96bc7eb