Gå til innhold

problem med gjestebok


Anbefalte innlegg

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

Endret av opix
Lenke til kommentar
Videoannonse
Annonse

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

Lenke til kommentar

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 :hmm: ?

Endret av Tha_Zaynt
Lenke til kommentar

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");
}
?>

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

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>";
}

Lenke til kommentar

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

Hei..

Jeg søkte etter akkurat denne tråden.. og jeg fant den :thumbup:

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?

Lenke til kommentar

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.

Lenke til kommentar

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.

Lenke til kommentar

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;
}
}

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å
×
×
  • Opprett ny...