Just nu i M3-nätverket
Jump to content

PHP problem


sjohan

Recommended Posts

Hej

Jag har ett par problem med min php som jag inte klarar av. Jag har letat på ett par olika ställen men inte hitta svar så ny hoppas jag att nån kanske kan hjälpa mig lite iallafall.

 

1. Kan man på något vi skicka vidare till en annan sida. Som i ASP finns en funktion som hetter Reidrect som skickar vidare till en anna sida. Så att när den är klar med koden så skickar den en vidare till en annann sida. Finns nåt sånt?

 

2. Hur skapar man sessions? Vill kolla igenom min databas efter användare och lösenord och oom något stämmer skapa en session.

 

3. Hur kollar man om sessionen finns.

 

4. Jag har IIS installerat och så har jag intallerat PHP och MySql på den. Det är bara ett problem. Typ 9 gånger av 10 så skriver den"Katalognamnet är felaktigt." och resten av gångerna fungerar det precis som jag vill. Detta är lite störande och jag skulle gärna bli av med detta.

 

5. Kan man ha en querystring? I ASP kan man skriva typ visa.asp?Olle=hej och sedan så kan man kolla den i en if sats. Finns det nåt smart sätt att göre detta på?

 

Hoppas att ni orkar med mina frågor och svarar på dem.

 

//Johan S

 

[inlägget ändrat 2002-11-20 12:38:21 av sjohan]

Link to comment
Share on other sites

Ska svara på dom frågor jag hinner med:

 

1. du använder header("Location: sida.php") för att skicka en användare vidare, men tänk på att det är en header som skrivs ut så den måste utföras innan du skickar data till klienten.

 

2. du använder session_start(); för att starta session, sen kan du använda $_SESSION["din_session"] för att fylla en session med data. Kom ihåg att alltid starta med session_start(); på varje sida när du ska hämta datan sen bara.

 

3. kör med if(isset($_SESSION["din_session"])) för att kolla om den finns.

 

5. om du använder dig av visa.php?namn=olle så kan du komma åt din s.k querystring genom $_GET["namn"] som i det här faller innehåller "olle".

 

Vet inte hur många rätt jag har, men jag tror allt är så :)

 

[inlägget ändrat 2002-11-20 12:49:28 av Divine Light]

Link to comment
Share on other sites

Tack. Fatta allt utom headern. Ska man skriva det som man vill ska göras och sedan avsluta med

 

header("Location: sida.php");

 

eller?

 

Link to comment
Share on other sites

Ja, så länge du inte skriver ut någonting till klienten.

 

Dvs, såhär kan du inte göra:

 

// Här skrivs grejer ner i en databas
echo "Skrivit i databasen";
Header("Location: hej.html");

 

Detta kommer ge en error eftersom du redan har skrivit grejer till klienten och därmed har alla headers redan skrivits ut.

 

Alltås, så länge du inte skriver ut någon data så kan du använda dig av Header funktionen.

 

Läs mer på http://www.php.net/header

 

--

Some say I am crazy..but the Voices in my head disagree...

 

Link to comment
Share on other sites

En sak till du ska tänka på är att du måste anropa exit efter att ha skrivit ut en header-location, annars kommer inte vissa webbläsare (t.ex. Opera) att gå vidare, utan stanna på en blank sida.

 

Så här kan det alltså se ut:

// Här är först lite kod
// som gör lite olika
// saker, men INTE skriver
// ut något.
$i = 1 + 2;
// Omdirigera (du kan inkludera variabler)
header("Location: sida.php?skrivit=1");
// Glöm inte exit!
exit;
// Kod här nedanför exit;
// kommer aldrig att exekveras.
$i = 2 + 2;

 

Link to comment
Share on other sites

Tack alla.

Jag fick lite problem men sessionsen. Lyckas inte riktigt. Jag vill skapa en session som heter Olle med värdet 1234 och sedan så vill jag på en annan sida kolla om det finns en session och om den innehåller 1234. Hur? Lyckas inte? Den bara säger

 

Parse error: parse error, unexpected T_STRING in d:\Documents and Settings\gbg01045\Mina dokument\Programering\gastbok\koll.php on line 6

 

Fattar inte. Nån som har lust att skriva hur man startar en session, ger den ett namn och ger den ett värde samt kollar sessionen.

 

[inlägget ändrat 2002-11-20 15:05:11 av sjohan]

Link to comment
Share on other sites

Om du får ett parse error tycker jag att du ska klistra in koden här, så vi kan se vad som är fel.

 

Sessioner fungerar så att du skapar en session, sedan sparas alla variabler på servern, och endast ID-nummret skickas till klienten (som en query string eller en kaka).

 

Läs mer om sessioner här:

http://www.php.net/manual/en/ref.session.php

 

För att påbörja en session lägger du, högst upp på varje sida som ska komma åt den, följande kod:

session_start();

 

Sedan kan du spara och läsa variabler genom $_SESSION.

Sida 1:

session_start();
$_SESSION["olle"] = 1234;
$_SESSION["lista"] = 4321;
echo "<a href=\"sida2.php\">Gå till sida 2</a>";

 

Sida 2:

session_start();
echo $_SESSION["olle"];
echo "<br>";
echo $_SESSION["lista"];

 

Sida 2 kommer nu skriva ut variablernas värde, förutsatt att du besökt sida 1 först.

 

Link to comment
Share on other sites

Aha. Då fattar jag hade inte lagt session_start() överst. Funkar bra nu. Men hur avslutar man sessionen? Använder den i ett loginsystem och behöver en logga ut länk.

 

Link to comment
Share on other sites

session_destroy() använder du för att avsluta en session.

 

Om detta kan du läsa mer på denna sida: http://www.php.net/manual/en/function.session-destroy.php

 

Där står det även att du kan använda session_unset() för att ta bort variablerna i sessionen oxå, men nu för tiden (efter version 4.1.x?) bör du istället använda dig av funktionen unset() som du kan läsa mer om här: http://www.php.net/manual/en/function.unset.php

 

--

Some say I am crazy..but the Voices in my head disagree...

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...