muffe Skrevet 13. desember 2003 Del Skrevet 13. desember 2003 Har en database med medlemsinformasjon. Problemet er bare at det eneste man trenger for å få tilgang til og endre all medlemsinformasjon er medlemsnummeret. Er det mulig å lage et system med passord i tillegg til medlemsnummeret, slik at hver og en kun har adgang til sin egen medlemsinformasjon, og at kun de kan endre det? Tenkte å bruke etternavn (muligens også fornavn) og medlemsnummer som passord. Dvs. Medlemsnummer og etternavn (fornavn) må stemme over ens med hverandre for at en skal kunne redigere dataene i den raden. Nå har alle medlemmer et tresifret medlemsnummer som begynner på 1 og løper oppover. Er det mulig å automatisk generere et tilfeldig 5-sifret medlemsnummer til alle 500 medlemmene, og overskrive det gamle i en og samme prosess? Kan eventuelt lage en ny kolonne for nytt medlemsnummer med et annet navn, for så å slette den gamle, og rename den nye. På forhånd takk for all hjelp. Lenke til kommentar
???????? Skrevet 13. desember 2003 Del Skrevet 13. desember 2003 For å beskytte medlemsinfo må du i så fall legge til en sikkerhetsfunksjon i scriptet ditt. Dette kan gjøre på mange måter - og uten å vite noe om scriptet ditt foreslår jeg at du søker etter noen tutorial eller poster litt info om scriptet ditt. Hvis du i dag bruker en query som SELECT * FROM tabell WHERE id = '100' hvor 100 er medlemmsnummeret. Da kan du enkelt legge til kravet f.eks. fornavn og etternavn - hvis du bruker et skjema legg da til disse feltene. SELECT * FROM tabell WHERE id = '100' AND etternavn = '$etternavn' AND fornavn = '$fornavn' På denne måten må de vite fornavnet og etternavnet i tilegg! Den sikreste måten ville kanskje være å bruke et passord i steden for eller i tillegg! Ved å legge til et slik krav i spørringen slipper du å tenkte på å endre medlemsnummer - fordelene med dette er at du da kan se hvilke medlemmer som kom først og hvilke som er nye! Lenke til kommentar
BlueEAGLE Skrevet 15. desember 2003 Del Skrevet 15. desember 2003 Jeg vil anbefale å legge til et passord. Dette ville jeg kryptert i databasen og brukt ssl for å overføre data (https://). En enkel måte å gjøre dette på er f.eks. Query for å legge til bruker "INSERT INTO Medlemmer (Navn, Email, Pass) VALUES('$Navn', '$Email', '".md5($Pass)."'); Sjekke passord når du redigerer $row=(mysql_fetch_array(mysql_query('SELECT * FROM Bruker WHERE ID='.$ID))); if (md5($_POST['Passord'])==$row['Passord'])){ $query="UPDATE Brukere SET Navn='".$_POST['Navn'].... Lenke til kommentar
muffe Skrevet 15. desember 2003 Forfatter Del Skrevet 15. desember 2003 Jeg vil anbefale å legge til et passord. Dette ville jeg kryptert i databasen og brukt ssl for å overføre data (https://). En enkel måte å gjøre dette på er f.eks. Query for å legge til bruker "INSERT INTO Medlemmer (Navn, Email, Pass) VALUES('$Navn', '$Email', '".md5($Pass)."'); Sjekke passord når du redigerer $row=(mysql_fetch_array(mysql_query('SELECT * FROM Bruker WHERE ID='.$ID))); if (md5($_POST['Passord'])==$row['Passord'])){ $query="UPDATE Brukere SET Navn='".$_POST['Navn'].... Mulig å gjøre dette uten SSL? Lenke til kommentar
???????? Skrevet 15. desember 2003 Del Skrevet 15. desember 2003 SSL sikrer bare informasjonene mellom brukerene (client) og serveren - så det er fult mulig uten SSL. Dersom siden din ikke er utsatt for mange hackere er ikke SSL så viktig. Siden jeg mener man brude gjøre mye for å tette sikkerhetshull i scripts fraråder jeg deg ikke å bruke SSL - påpeker at det ikke alltid er like nødvendig og ikke alltid verdt kostnaden (ved mindre du bruker open ssl). Ta like vel en kikk på hvordan du kan sikre data før det sette inn i en SQL database: http://no.php.net/manual/en/function.mysql-escape-string.php Les også kapittelet om sikkerhet i PHP: http://no.php.net/manual/en/security.index.php Lenke til kommentar
muffe Skrevet 16. desember 2003 Forfatter Del Skrevet 16. desember 2003 Har nå laget et script som automatisk genererer og setter passord etter hvert som brukerne logger inn, men får denne feilmeldingen: Notice: Undefined variable: out in D:\Programfiler\Apache Group\Apache2\htdocs\Medlem\medlemsview.php on line 46Ditt passord er: 5i7gb Ta godt vare på dette. Du vil trenge det ved senere innlogginger. Det som er merkelig er at scriptet fungerer helt fint, til tross for feilmeldingen. Her er koden: /* Kontrollerer om det er satt passord */ $query_pass = "SELECT Passwd FROM medlemmer WHERE id = $id AND Etternavn = '$etternavn'"; $result_pass = mysql_query($query_pass) or die("Spørring feilet : " . mysql_error()); $row=(mysql_fetch_array(mysql_query('SELECT Passwd FROM medlemmer WHERE id='.$id))); if (isset($row['Passwd'])) { echo ("<br>"); } else { function password ($len) { $chars = "abcdefghijklmnopqrstuvwxyz123456789"; mt_srand( (double) microtime() * 100000000); for ($i=1;$i<=$len;$i++) $out .= $chars[mt_rand(0,(strlen($chars)-1))]; return $out; } $password = password(5); echo("Ditt passord er: $password <br>"); echo("Ta godt vare på dette. Du vil trenge det ved senere innlogginger."); $query_setpass = "UPDATE medlemmer SET id='$id', Passwd='".md5($password)."' WHERE id = '$id'"; $result_setpass = mysql_query($query_setpass) or die("Spørring feilet : " . mysql_error()); } Noen tips til hvordan bli kvitt feilmeldingen? Lenke til kommentar
???????? Skrevet 16. desember 2003 Del Skrevet 16. desember 2003 Notice er som tittelen indikerer, bare en notis - behøver ikke å være noe feil med scrptet ditt en gang. Kikk på: http://no2.php.net/manual/en/function.error-reporting.php Du kan forsøke å sette inn en @ på begynnelsen av den aktuelle linjen! 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å