Gå til innhold

Hjelp til logginn-script


Anbefalte innlegg

Disse simple eksemplene er skrevet på 15 minutter og ikke testet, så de kan inneholde feil. Du må selv sørge for at data brukere sender til serveren din er sikre (det som skrives i skjemaet og id i urler).

 

Uansett burde de gi deg en viss idé om hvordan det kan løses!

 

artikler.php:

 

<?php

// Brukeren prøver å vise artikkel med id 1
if( isset( $_GET['id'] ) )
{
$artikkel_id = $_GET['id'];

$query = mysql_query( "SELECT * FROM artikler WHERE id = $artikkel_id LIMIT 1" );

if( mysql_num_rows( $query ) == 0 )
{
	// Artikkelen med id 1 finnes ikke
}

else
{
	while( $artikkel = mysql_fetch_array( $query ) )
	{
		// Vis artikkeltekst og lignende

		// Lag link til følgende url: rediger_artikkel.php?id=1
		echo '<a href="/rediger_artikkel.php?id=' . $artikkel['id'] . '">rediger artikkel</a>';
	}
}
}

// Ingen id er satt i urlen
else
{
// Vis en liste over alle artikler, kategorier eller hva du måtte føle for
}

?>

 

 

rediger_artikkel.php:

 

<?php

// Brukeren prøver å redigere/lagre artikkel med id 1
if( isset( $_GET['id'] ) )
{
$artikkel_id = $_GET['id'];

// Skjemaet med endringer er sendt
if( isset( $_POST['submit'] ) )
{
	$query = mysql_query( "INSERT INTO artikler (tittel, tekst) VALUES ('$_POST[tittel]', '$_POST[tekst]')" );

	if( $query == false )
	{
		// Det skjedde en feil, vis en feilmelding eller videresend brukeren tilbake til skjemaet
	}

	else
	{
		// Great success
	}
}

// Skjemaet er ikke sendt, vis skjema med originale data
else
{
	$query = mysql_query( "SELECT * FROM artikler WHERE id = $artikkel_id LIMIT 1" );

	if( mysql_num_rows( $query ) == 0 )
	{
		// Artikkelen med id 1 finnes ikke
	}

	else
	{
		while( $artikkel = mysql_fetch_array( $query ) )
		{
			// Vis et skjema og fyll det med artikkeldata:
			echo '<form action="/rediger_artikkel.php?id=' . $artikkel['id'] . '" method="post">
					<input type="text" name="tittel" value="' . $artikkel['tittel'] . '" />
					<input type="submit" name="submit" value="lagre endringer" />
				</form>';
		}
	}
}
}

// Ingen id er satt i urlen
else
{
// Vis en liste over alle artikler eventuelt en feilmelding
}

?>

 

Lenke til kommentar
Videoannonse
Annonse

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.

 

hvordan får du sjekket om det ineholder skadelige tegn på en enklest mulig måte?

 

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 :)

 

en bør vel sjekke hvor gammel session er også i tilfelle inaktivitet.

Lenke til kommentar

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.

 

hvordan får du sjekket om det ineholder skadelige tegn på en enklest mulig måte?

Godt spørsmål!

 

mysql_real_escape_string() er en god start når det gjelder flere typer tegn. For å sikre tall kan man bruke intval() eller lignende. Man kan også bruke regulære uttrykk.

 

Jeg vil anbefale deg å lese denne artikkelen: http://www.phpro.org/tutorials/Validating-User-Input.html, samt søke på Google etter mer løsninger på mer spesifikke problemer.

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