webForumDet fria alternativet

Session + Mysql = Community Problem

PHP

14 svar · 374 visningar · startad av Simpa

Medlem sedan aug. 20002 992 inlägg
Frågan#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

Medlem sedan aug. 20002 975 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();
?>
Medlem sedan aug. 20002 992 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

Medlem sedan aug. 20002 992 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

Medlem sedan aug. 20002 975 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>
Medlem sedan aug. 20002 992 inlägg
#6

session_start();
var det ja :)

Tack, ska testa koden genast :)

Medlem sedan aug. 20002 992 inlägg
#7

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

Medlem sedan aug. 20002 975 inlägg
#8

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

Medlem sedan aug. 20002 992 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..

Medlem sedan aug. 20002 975 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.

Medlem sedan aug. 20002 992 inlägg
#11

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

Medlem sedan aug. 20002 975 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.

Medlem sedan aug. 20002 992 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 !

Medlem sedan aug. 2002224 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..

Medlem sedan aug. 20002 992 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.

252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)