Gå til innhold

Hjelp til logginn-script


Anbefalte innlegg

Skrevet (endret)

Har lagd et logginn-script i php som er tilkoblet mysql. Men scriptet bruker bare den første brukeren som er registrert i databasen. Hvordan kan scriptet logge seg inn på de andre brukerne i databasen enn bare en bruker om gangen?

 

$tilkobling = mysql_connect("mysql.hosted.servetheworld.net", "", "");
//var_dump($tilkobling);
mysql_select_db("toppspi_base", $tilkobling);

$sql = "SELECT kontoid, bruker, passord, navn, yrke";
$sql .= " FROM kontoer ORDER BY bruker";
$resultat = mysql_query($sql, $tilkobling);

while ($rad = mysql_fetch_array($resultat) ) {
$bruker = $rad['bruker'];
$passord = $rad['passord'];
} 
?>

<?php

if (isset($_POST['bruker']) == $bruker && ($_POST['passord']) == $passord ) {
echo "Riktig";
}

else {
?>

<form action="" method="post">
<input type="text" name="bruker">
<input type="password" name="passord">
<input type="submit" name="login" value="Logg inn">
</form>

<?php } ?>

Endret av webby1
Videoannonse
Annonse
Skrevet (endret)

Du gjør slik:

Velg bruker fra en tabel hvor brukernavn = post_brukernavn og passord = post_password.

 

Vil bli noe slik i sql:

SELECT SELECT kontoid, bruker, passord, navn, yrke FROM kontoer WHERE bruker =  AND passord =

Etter begge "="- tegnene skal du sette inn POST variablene fra det brukeren prøvde å logge inn med.

Bare søk på google etter eksempler :)

Endret av Gjest
Skrevet (endret)

Noe sånt:

 

<?php

$tilkobling = mysql_connect("mysql.hosted.servetheworld.net", "", "");
//var_dump($tilkobling);
mysql_select_db("toppspi_base", $tilkobling);

$sql = "SELECT * FROM kontoer WHERE bruker = '" . $_POST['bruker'] . "' AND passord = '" . $_POST['passord'] . "'";
$resultat = mysql_query($sql, $tilkobling);

while ($rad = mysql_fetch_array($resultat) ) {
$bruker = $rad['bruker'];
$passord = $rad['passord'];
}
?>

<?php

if (isset($_POST['bruker']) == $bruker && ($_POST['passord']) == $passord ) {
echo "Riktig";
}

else {
?>

<form action="" method="post">
<input type="text" name="bruker">
<input type="password" name="passord">
<input type="submit" name="login" value="Logg inn">
</form>

<?php } ?>

 

edit: for sein :p

Endret av Thomas.
Skrevet (endret)

Prøvde WHERE, men da ville ikke tekstboksene til innlogg komme opp. Kom rett inn. "Riktig"

Endret av webby1
Skrevet

La merke til at AND ikke fungerer. All innhold blir borte med bruken av AND. Hva kan være grunnen til det?

Vis oss all kode du bruker. Det er nesten umulig å si hva som er feil uten å vite hva du faktisk har gjort.

Skrevet (endret)

<?php

$tilkobling = mysql_connect("mysql.hosted.servetheworld.net", "", "");
//var_dump($tilkobling);
mysql_select_db("toppspi_base", $tilkobling);


$sql = "SELECT * FROM kontoer";
$sql .= " WHERE bruker='" . $_POST['bruker'] . "' AND passord='" . $_POST['passord'] . "'";

$resultat = mysql_query($sql, $tilkobling);

while ($rad = mysql_fetch_array($resultat) ) {
$bruker = $rad['bruker'];
$passord = $rad['passord'];
} 
?>


<?php

session_start();

if (isset($_POST['knapp']) ) {
//sjekk om brukernavn og passord er riktig
if ($_POST['bruker'] == $bruker && $_POST['passord'] == $passord) {
$_SESSION['navn'] = ucfirst($_POST['bruker']);
$_SESSION['innlogget'] = true;
echo "ja";
}

else {
//kaller opp siden på nytt igjen, dvs tvinger ny innlogging
header("Location {$_SERVER['PHP_SELF']}");
exit; //hindrer at koden utføres på tross av redirect
}
}

else {
//skal vise i skjemaet
?>

<h3>Du må logge deg inn</h3>
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
<input type="text" name="bruker">Brukernavn<br>
<input type="password" name="passord">Passord<br>
<input type="submit" name="knapp" value="Logg inn">
</form>

<?php } ?>

Har skrevet en ny kode, men når jeg kobler mysql til logginn ($bruker og $passord) så kommer jeg rett inn uansett hva jeg skriver på tekstboksen. Det er bare slik, hvis man kobler til mysql. Hvis jeg legger inn brukernavn og passord i selve koden istedenfor variablene så fungerer innloggingen. Hva er det som er galt med koden?

Endret av webby1
Skrevet

Akkurat, ja. Jeg er litt for opptatt til å feilsøke koden din, men jeg ville gjort det noe lignende dette:

 

Merk at dette er veldig simpelt (ikke testet), og du bør ha flere kontroller, blant annet om noen av feltene er tomme, eller om de inneholder skadelige tegn.

 

<?php

$db = mysql_connect() // Koble til databasen

if( isset( $_POST['knapp'] ) ) // Fortsett hvis knappen "knapp" er trykket
{
$result = mysql_query( "SELECT * FROM kontoer WHERE bruker = " . $_POST['bruker'] . " AND passord = " . $_POST['passord'] );

if( mysql_num_rows( $result ) > 0 ) // Fortsett hvis antall rader (brukere) returnert er mer 0
{ 
	// Lag ny session med brukernavn og diverse info
}

else
{
	// Ingen brukere returnert, vis feilmelding eller whatever
}
}

else
{
// Vis skjema
}

?>

Skrevet

Nå ble problemet løst! :) Takk! En ting jeg lurer på er bruken av lenker i det interne innholdet. Lenke til flere sider som er interne uten å logge ut av brukeren. Noen som vet? :)

Skrevet

Er ikke verre å lage en session, og på de interne sidene sjekke om session eksiterer eller ikke.

Hvis session ikke eksiterer, redirect til login siden :)

Skrevet (endret)

Takk igjen! :) Holder på å lage redigeringsfunksjon av artikler, men sliter en del med å kombinere å hente tekst og publisere den nye teksten.

 

Hva er den beste løsningen til dette?

Endret av webby1
Skrevet

Takk igjen! :) Holder på å lage redigeringsfunksjon av artikler, men sliter en del med å kombinere å hente tekst og publisere den nye teksten.

 

Hva er den beste løsningen til dette?

Jeg ville gjort det på følgende måte:

  1. Hver artikkel vises sammen med en link for å redigere (/artikler/1/rediger)
  2. Nevnte side henter inn all data fra artikkelen basert på tallet i urlen (artikkelid) og fyller dette inn i et skjema
  3. Når skjemaet sendes (til en ny side eller samme, hvor det behandles er irrelevant) lagres dataene til artikkelen med samme ID

Du må altså kjøre to spørringer (tre, hvis vi regner med den hvor du leser selve artikkelen): en for å hente all artikkeldata og en for å lagre.

 

Var det noe lignende dette du tenkte på? Jeg kan komme med enkle kodeeksempler hvis det er ønskelig.

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