Rescudo Skrevet 10. juli 2004 Skrevet 10. juli 2004 (endret) loginform.php: <form method="post" action="loginaction.php"> Brukernavn: <input type="text" name="brukernavn"> <br> Passord: <input type="password" name="passord"> <br> <input type="submit" value="Logg inn"> </form> loginaction.php: <?php $brukernavn = "brukernavn"; /* Skriv inn brukernavnet du vil ha her */ $MD5_passord = "md5kryptert passord abcdef1234567890 "; $brukerdata = $_POST['brukernavn']; $passord = md5($_POST['passord']); if($passord == "$MD5_passord" && $brukerdata == "$brukernavn") { session_start(); $_SESSION['innlogget'] = 1; $_SESSION['brukernavn'] = $brukernavn; $_SESSION['passord'] = $MD5_passord; } else { echo "Feil brukernavn eller passord! Sjekk at Caps Lock ikke er aktivert og prøv igjen."; } ?> loggut.php: <?php session_start(); session_destroy(); echo "Du er nå logget ut! "; ?> Sjekker om du er innlogget: <?php if ($_SESSION['innlogget'] == 1) { //du er innlogget } else { //du er ikke innlogget } ?> Og husk å putte session_start(); helt i toppen av alle sider som bruker $_SESSION. Lykke til videre Endret 11. juli 2004 av opix
Tha_Zaynt Skrevet 10. juli 2004 Forfatter Skrevet 10. juli 2004 Bare et siste spørsmål; må brukernavn og passordet på innloggings-scriptet være det samme som på phpmyadmin?
Rescudo Skrevet 10. juli 2004 Skrevet 10. juli 2004 (endret) Niks, det må det ikke. Du kan velge akkurat det brukernavnet og passordet du vil ha. EDIT: Så lenge det er md5-kryptert. Du kan generere et md5passord slik: $pass = md5("passord"); Endret 10. juli 2004 av opix
Tha_Zaynt Skrevet 10. juli 2004 Forfatter Skrevet 10. juli 2004 hm...får bare: Warning: mysql_query(): Access denied for user: 'ODBC@localhost' (Using password: NO) in c:\appserv\www\steinar\slettinnhold.php on line 6 Warning: mysql_query(): A link to the server could not be established in c:\appserv\www\steinar\slettinnhold.php on line 6 En feil oppstod. når jeg trykker på slett-knappen EDIT: ble ikke det siste spørsmålet likevel;)
Rescudo Skrevet 11. juli 2004 Skrevet 11. juli 2004 (endret) inkluder config.php.... Og det gjør ingenting at du stiller spørsmål, det er jo det forumet er til! Endret 11. juli 2004 av opix
Tha_Zaynt Skrevet 12. juli 2004 Forfatter Skrevet 12. juli 2004 (endret) Får forsatt samme error når koden ser slik ut: <?php session_start(); if ($_SESSION['auth']) { include ('config.php'); $id = $_GET['id']; if (mysql_query("DELETE FROM $mySQLtable WHERE id = '$id'")) { echo "Innlegget er slettet."; } else { echo "En feil oppstod."; } } else { echo "Du må være logget inn dersom du skal ha tilgang til denne funksjonen.<p>"; include ("login.php"); } ?> Hva er galt her da hmmm ? Endret 12. juli 2004 av Tha_Zaynt
Rescudo Skrevet 13. juli 2004 Skrevet 13. juli 2004 har du husket å koble til mysql? Jeg vet at ikke alle pleier å koble til i selve config.php, så jeg bare spør..
Tha_Zaynt Skrevet 13. juli 2004 Forfatter Skrevet 13. juli 2004 nope, det skjer ikke i config.php, men i reg.php hos meg, så der ligger nok feilen ja. Men jeg får parse error når jeg skriver inn connect to mySQL koden, sikkert bare en fnutt som mangler eller noe, men jeg finner ikke feilen. Her er koden; <?php session_start(); ?> <?php include ("config.php"); if ($_SESSION['auth']) {mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect: " . mysql_error()); mysql_select_db($mySQLdb);} $id = $_GET['id']; if (mysql_query("DELETE FROM $mySQLtable WHERE id = '$id'")) { echo "Innlegget er slettet."; } else { echo "En feil oppstod."; } } else { echo "Du må være logget inn dersom du skal ha tilgang til denne funksjonen.<p>"; include ("login.php"); } ?>
jorgis Skrevet 13. juli 2004 Skrevet 13. juli 2004 må man ikke ha mellomrom mellom { og neste linje med kode? if ($_SESSION['auth']) { mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect: " . mysql_error()); mysql_select_db($mySQLdb); }
Rescudo Skrevet 13. juli 2004 Skrevet 13. juli 2004 (endret) nope, det skjer ikke i config.php, men i reg.php hos meg, så der ligger nok feilen ja. Men jeg får parse error når jeg skriver inn connect to mySQL koden, sikkert bare en fnutt som mangler eller noe, men jeg finner ikke feilen. Her er koden; <?php session_start(); ?> <?php include ("config.php"); if ($_SESSION['auth']) {mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect: " . mysql_error()); mysql_select_db($mySQLdb);[b]}[/b] $id = $_GET['id']; if (mysql_query("DELETE FROM $mySQLtable WHERE id = '$id'")) { echo "Innlegget er slettet."; } else { echo "En feil oppstod."; } } else { echo "Du må være logget inn dersom du skal ha tilgang til denne funksjonen.<p>"; include ("login.php"); } ?> Du har en } for mye... riktig: <?php session_start(); ?> <?php include ("config.php"); if ($_SESSION['auth']) { mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect: " . mysql_error()); mysql_select_db($mySQLdb); $id = $_GET['id']; if (mysql_query("DELETE FROM $mySQLtable WHERE id = '$id'")) { echo "Innlegget er slettet."; } else { echo "En feil oppstod."; } } else { echo "Du må være logget inn dersom du skal ha tilgang til denne funksjonen.<p>"; include ("login.php"); } ?> Endret 13. juli 2004 av opix
Tha_Zaynt Skrevet 13. juli 2004 Forfatter Skrevet 13. juli 2004 Fikk fiksa slette-funksjonen nå. Takk for hjelpen!. Men et spørsmål til; Jeg prøver å få til sånn at webadrerssen de skriver inn blir til en link, men har litt problemer.Får denne feilmeldingen;Parse error: parse error, unexpected T_VARIABLE in c:\appserv\www\steinar\reg.php on line 20. Slik ser koden ut nå; if ($webside == "http://") { $webside = "ingen side"; } else { (linje 20)$webside = "<a href="$webside">"$webside"</a>"; }
jorgis Skrevet 13. juli 2004 Skrevet 13. juli 2004 (endret) Du må huske å escape dobbeltfnutter med \, eller bruke ' til å omslutte strengen med istedenfor. if ($webside == "http://") { $webside = "ingen side"; } else { (linje 20)$webside = "<a href=\"$webside\">\"$webside\"</a>"; } Endret 13. juli 2004 av jorgis
Tha_Zaynt Skrevet 13. juli 2004 Forfatter Skrevet 13. juli 2004 (endret) Funka det ja. Takk skal du ha! Er det forresten _ekstremt_ vanskelig å legge til smileys-funksjon? Endret 13. juli 2004 av Tha_Zaynt
jorgis Skrevet 13. juli 2004 Skrevet 13. juli 2004 Evt. kan du lese på preg_replace, og lære deg regulære utrykk. Det kan komme godt med hvis du vil implementere støtte for BBCode.
Rescudo Skrevet 13. juli 2004 Skrevet 13. juli 2004 Denne er fin: http://phptriks.7kt.net/index.php?side=art...ikel&ptside=PHP
aog Skrevet 14. juli 2004 Skrevet 14. juli 2004 Hei.. Jeg søkte etter akkurat denne tråden.. og jeg fant den men det var ikke det jeg skulle si. Jeg ser det ble brukt if ($_SESSION['innlogget'] == 1), men kan jeg bruke $_SESSION['brukernavn'] = $brukernavn;, og sjekke om det er likt en row i en tabel? Saken er at jeg skal ha flere brukere. En bruker som har lagt inn en "post" i en database skal kunne slette den, men ingen andre. Derfor lurte jeg på om jeg kan sjekke at $_SESSION['brukernavn'] = $brukernavn && $user; eller noe slikt. Går det?
Rescudo Skrevet 14. juli 2004 Skrevet 14. juli 2004 Da må du sjekke om posten som skal slettes er skrevet av den som går inn i scriptet. f.eks. if ($_SESSION['brukernavn'] == $post->forfatter) Dette betinger at du har hentet ut posten i variabelen post, at du har en kolonne som heter forfatter som inneholder brukernavnet til forfatteren av posten og at du har en session med brukernavnet i.
aog Skrevet 14. juli 2004 Skrevet 14. juli 2004 bra. da funker det slik jeg håpet. Kan jeg hente brukernavn fra ($_SESSION['brukernavn'] så jeg kan få et skrit til å automatisk legge in forfatter når forfateren skal lage posten?, eller må det skrives inn manuelt? Kan selfølgelig kontrolere at navn of brukernavn er lik før en post lagres, men det ville vert kjekkere om forfatter kunne skrives inn automatisk etter hvilken bruker som var loget inn.
Tha_Zaynt Skrevet 14. juli 2004 Forfatter Skrevet 14. juli 2004 Har laget flooding-sperre til gjesteboken min nå, slik at det bare går an å skrive et innlegg i timen. Når man har en slik floodingsperre må nødvendigvis tiden og datoen for innlegget være logget i samme filen som ip'en. Derfor lurer jeg på om det er mulig å hente frem denne infoen, slik at datoen og tiden vises i innlegget. //Floodingsperre if (!file_exists($IPLogFile)) { $fp = fopen($IPLogFile, "w"); fwrite($fp, ""); fclose($fp); } function FloodDetector($IPLogFile) { $done = 0; $line = 0; $file = file($IPLogFile); $ip = getenv("REMOTE_ADDR"); $hour = date("HdmY"); $date = $a[6]; while($file[$line]) { $a = explode("|", $file[$line]); if (($a[0] == $ip) && ($a[1] == $hour)) { $done = 1; } $line++; } if ($done == 1) return true; else { $a = implode($file, ""); $fp = fopen($IPLogFile, "w"); fwrite($fp, $ip . "|" . $hour . "|\n" . $a); fclose($fp); return false; } }
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å