Gå til innhold

Hjelp med logg inn kode (PHP og MySQL)


Anbefalte innlegg

Det jeg trenger hjelp til, er å sette en cookie hvis man blir logget inn. For når jeg bruker det her (altså det jeg har nå), så vil det stå "Velkommen brukernavn!", men hvis jeg for eksempel går til forsiden igjen (ikke admin-panelet), og så til admin-panelet, så står det bare "Velkommen !". Noen som kan hjelpe?

 

<?php
session_start();
?>
<html>
<head>
<title>Du må være logget inn for å legge til nyheter</title>
<style type="text/css">
body {
color: black;
font-size: 12pt;
font-family: tahoma,arial;
background-colr: white;
}
a:link, a:active, a:visited {
color: black;
font-size: 12pt;
font-family: tahoma,arial;
background-color: transparent;
}
a:hover {
color: red;
font-size: 12pt;
font-family: tahoma,arial;
background-color: transparent;
}
</style>
</head>
<body>
<?php

$db=mysql_connect("localhost", "brukernavn", "passord");
mysql_select_db("database", $db);


    $bruker = htmlentities($_POST['bruker']);
    $pass = htmlentities($_POST['pass']);
    
    $bruker = mysql_real_escape_string($bruker);
    $pass = mysql_real_escape_string($pass);

    $query = mysql_query("SELECT bruker, pass FROM medlemmer WHERE bruker = '$bruker' AND pass = '$pass'");

    
    if(mysql_num_rows($query) == 1 OR $_SESSION['online'] == true ) {
    $_SESSION['online'] = true;
    echo "
<meta http-equiv=\"refresh\" content=\"1;url=leggtil.php\">
Velkommen $bruker!
          ";
    }



    else {
   echo "
<form action=\"\" method=\"post\">
<p>Brukernavn</p>
<input type=\"text\" name=\"bruker\" />
<br />
<p>Passord:</p>
<input type=\"password\" name=\"pass\" />
<br />
<br />
<input type=\"submit\" value=\"Logg inn\" />
</form>
    ";
    }

mysql_close($db);

?>
</body>
</html>

 

 

 

*Det er forresten noe feil her:

elseif(isset($_POST['navn']) || mysql_num_rows($query)== 0)
echo "
<form action=\"\" method=\"post\">
<p>Brukernavn</p>
<input type=\"text\" name=\"bruker\" />
<br />
<p>Passord:</p>
<input type=\"password\" name=\"pass\" />
<br />
<br />
<input type=\"submit\" value=\"Logg inn\" />
</form>
";

For hvis jeg skriver "Feil brukernavn eller passord" der, så kommer jo den teksten før jeg har prøvd å logge på :S

 

 

 

Håper noen kan hjelpe meg :)

Endret av Andy-Pandy
Lenke til kommentar
Videoannonse
Annonse

under:

$_SESSION['online'] = true;

 

Kan du legge til:

$_SESSION['bruker'] = $bruker;

 

Så når du skal legge til navnet hans andre steder, så skiver du:

echo $_SESSION['bruker'];

 

Husk at du skal den samme session_start() i alle filene..

Du kan gjøre det ved å lage en fil som heter for eksempe, konfig.php

det dokumentet kan starte med session_start(); så kan du evt legge til database spørringa der og..

 

Denne:

PHP
$db=mysql_connect("localhost", "brukernavn", "passord");

mysql_select_db("database", $db);

 

Så i hver fil, inkluderer du konfig.php

Det kan du gjøre med: require_once("konfig.php");

 

Lykke til videre!

Endret av Mr Chief
Lenke til kommentar
elseif(isset($_POST['navn']) || mysql_num_rows($query)== 0)

echo "

<form action=\"\" method=\"post\">

<p>Brukernavn</p>

<input type=\"text\" name=\"bruker\" />

<br />

<p>Passord:</p>

<input type=\"password\" name=\"pass\" />

<br />

<br />

<input type=\"submit\" value=\"Logg inn\" />

</form>

";

 

Du har skrevet echo " med dobbelapostrof (eller hva det heter?), så når du da skriver videre, kan du ikke ha (") i formen du har laget , men bruk (') .

Tror jeg, eller er det derfor du har slike slashes?

 

mvh Magne

Lenke til kommentar
elseif(isset($_POST['navn']) || mysql_num_rows($query)== 0)

echo "

<form action=\"\" method=\"post\">

<p>Brukernavn</p>

<input type=\"text\" name=\"bruker\" />

<br />

<p>Passord:</p>

<input type=\"password\" name=\"pass\" />

<br />

<br />

<input type=\"submit\" value=\"Logg inn\" />

</form>

";

 

Du har skrevet echo " med dobbelapostrof (eller hva det heter?), så når du da skriver videre, kan du ikke ha (") i formen du har laget , men bruk (') .

Tror jeg, eller er det derfor du har slike slashes?

 

mvh Magne

7750178[/snapback]

Det er derfor jeg har \ før " ja. Da fungerer de helt fint.

 

 

Edit; ingen av innleggene fungerte :/

Endret av Andy-Pandy
Lenke til kommentar
elseif(isset($_POST['navn']) || mysql_num_rows($query)== 0)

echo "

<form action=\"\" method=\"post\">

<p>Brukernavn</p>

<input type=\"text\" name=\"bruker\" />

<br />

<p>Passord:</p>

<input type=\"password\" name=\"pass\" />

<br />

<br />

<input type=\"submit\" value=\"Logg inn\" />

</form>

";

 

Du har skrevet echo " med dobbelapostrof (eller hva det heter?), så når du da skriver videre, kan du ikke ha (") i formen du har laget , men bruk (') .

Tror jeg, eller er det derfor du har slike slashes?

 

mvh Magne

7750178[/snapback]

 

 

Tja, ('') er jo raskere en ("") også da.. Men hvorfor ikke bare avslutte PHP når det bare er ren html og så starte den igjen ? du vil få en mye finere kode uten alle de helvettes \" overalt..

Lenke til kommentar

Men cookies...skjønner ikke helt åssen jeg skal plassere cookien. Kan du plassere den inn i koden?

 

    if(mysql_num_rows($query) == 1 OR $_SESSION['online'] == true ) {
   $_SESSION['online'] = true;
   echo "
Velkommen $bruker!

 

For du sa vel "under den andre sessionen?". Eller kanskje du mente start_session()? Nei, nå blir jeg forvirret

Endret av Andy-Pandy
Lenke til kommentar

<?php
session_start();
?>
<html>
<head>
<title>Du må være logget inn for å legge til nyheter</title>
<style type="text/css">
body {
color: black;
font-size: 12pt;
font-family: tahoma,arial;
background-colr: white;
}
a:link, a:active, a:visited {
color: black;
font-size: 12pt;
font-family: tahoma,arial;
background-color: transparent;
}
a:hover {
color: red;
font-size: 12pt;
font-family: tahoma,arial;
background-color: transparent;
}
</style>
</head>
<body>
<?php

if ($_SESSION['online']) {
echo "Velkommen " . $_SESSION['bruker'];
}

else if (isset($_POST['bruker']) && isset($_POST['pass'])) {
$db=mysql_connect("localhost", "brukernavn", "passord");
mysql_select_db("database", $db);


   $bruker = htmlentities($_POST['bruker']);
   $pass = htmlentities($_POST['pass']);
  
   $bruker = mysql_real_escape_string($bruker);
   $pass = mysql_real_escape_string($pass);

   $query = mysql_query("SELECT bruker, pass FROM medlemmer WHERE bruker = '$bruker' AND pass = '$pass'");

  
   if(mysql_num_rows($query) == 1) {
   $_SESSION['online'] = true;
   $_SESSION['bruker'] = $bruker;
   echo "
<meta http-equiv=\"refresh\" content=\"1;url=leggtil.php\">
         ";
mysql_close($db);
   }

   else {
  echo "
<form action=\"\" method=\"post\">
<p>Brukernavn</p>
<input type=\"text\" name=\"bruker\" />
<br />
<p>Passord:</p>
<input type=\"password\" name=\"pass\" />
<br />
<br />
<input type=\"submit\" value=\"Logg inn\" />
</form>
   ";
   }

?>
</body>
</html>

 

Slik da? ;)

Lenke til kommentar

Nydelig Ståle :D

At jeg ikke kunne se det selv .P

Tusen takk alle sammen, nå henger det hele sammen :) ... utenom en del, sånn som her; at det er sånn personlig info om hver enkelt person, men likevel på samme side, altså diskusjon.no/index.php?side=5 så får du Ståle for eksempel. Forresten, det kan jeg gjøre selv. Tenkte vel mest på sånn at...nei, bare glem det, nå tror jeg dere hadde blitt forvirret hvis jeg hadde fortsatt.

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å
×
×
  • Opprett ny...