Runar Skrevet 23. februar 2010 Del Skrevet 23. februar 2010 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
ilpostino Skrevet 23. februar 2010 Del Skrevet 23. februar 2010 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
Runar Skrevet 23. februar 2010 Del Skrevet 23. februar 2010 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå