Gå til innhold

Hjelp til logginn-script


Anbefalte innlegg

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
Lenke til kommentar
Videoannonse
Annonse

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
Lenke til kommentar

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.
Lenke til kommentar

<?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
Lenke til kommentar

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
}

?>

Lenke til kommentar

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.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...