Gå til innhold

ønsker et script som passordbeskytter sider..


Anbefalte innlegg

Hei

 

Jeg kunne tenke meg en script som en side var passord beskyttet med innhold som kun jeg kan legge inn.. men at man skal bruke et php script til å legge inn det innholde..

 

Noen som kan hjelpe meg litt her :hmm:

Endret av Neverio
Lenke til kommentar
Videoannonse
Annonse

OK. Da setter jeg opp helt basic, så ser du bare om du får det til å funke. Jeg kommer ikke til å teste no særlig på min server om det funker, så det kan hende det blir feil i scriptet.

 

Anyway, først må du lage tabellene i databasen. Jeg går ut fra at du lager en tabell til innholdet(innhold) og en til innloggingen(brukere) hvis du ikke har dette fra før.

I tabellen til brukere tenker jeg at du har radene brukernavn og passord.

I tabellen til innholdet tenker jeg at radene blir noe sånt som id, avsender, dato og tekst, så det blir det jeg bruker i eksempelet.

 

først må du lage en fil der du logger inn (login.php). For eksempel:

<?php

$mysql_host = "localhost";
   $mysql_user = "brukernavn";
   $mysql_pass = "passord";
   $mysql_db = "databasenavn";

$link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass)
           or die ("$lang_dberr1");
if (mysql_select_db ($mysql_db)) {
 $mode = $_GET['mode'];

if ($mode == "process") {

    $error = true;

$brukernavn = $_POST['brukernavn'];
$passord = $_POST['passord'];

   if (mysql_select_db ($mysql_db)) {
       $result = mysql_query ("Select * from brukere where brukernavn='$brukernavn'");
       if (mysql_affected_rows() == 0) {
           $msg = "Brukeren finnes ikke.";
       } else {
           $row = mysql_fetch_array ($result);
           if ($row['passord'] == $passord) {
   	$_SESSION['brukernavn'] = $row['brukernavn']; 
                   $error = false;
           } else {
           $msg = "Feil passord";
           }
       }
   } else {
       $msg = "Kunne ikke finne databasen.";
   }
   mysql_close ($link);

   if (!$error) {
 echo "Du har logget inn.";
       

   } else {
   echo "
<p>Error</p>
<p>$msg</p>
";
}
}

else {

   echo "
<table>
<tr>
<td colspan='2'>Logg Inn</td>
</tr>
<form method='POST' action='login.php?mode=process' name='login'>
<td><font>Brukernavn</td>
<td><input type='text' name='brukernavn' size='30'></td>
</tr>
<tr>
<td>Passord</td>
<td><input type='password' name='passord' size='30'></td>
</tr>
<tr>
<td colspan='2'><input type='submit' value='Logg inn' name='login'></td>
</tr>
</table>
</form>
";
}
}
?>

 

så må du ha en side der alle kan legge til innhold i databasen(add.php):

<?php

$mysql_host = "localserver";
$mysql_user = "brukernavn";
$mysql_pass = "passord";
$mysql_db = "databasenavn";

$link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass)
           or die ("$lang_dberr1");
if (mysql_select_db ($mysql_db)) {
 $mode = $_GET['mode'];
    $error = true;

 if ($mode == "process") {
 
 $tekst = $_POST['tekst'];
 $avsender = $_POST['avsender'];
 $dato = date("Y-m-d H:i");  
 
 	$ins_str = ("Insert into innhold set tekst='$tekst', avsender='$avsender', dato='$dato'");
   if (mysql_query($ins_str)) { $error = False; } else { $msg = "Kunne ikke legge til."; }
   
 	if (!$error) {
 	echo "Innhold er lagt til.";

     } else {
     	echo "
   <p>Error</p>
   <p>$msg</p>
   ";
 	}    
 }
 
 else {
     echo "
<table>
<tr>
 <td>Skriv til meg</td>
</tr>
 <form method='POST' action='add.php?mode=process' name='leggtil'>
<tr>
 <td>
<tr>
 <td>Navn
 	<input type='text' name='avsender' size='30'></td>
</tr>
<tr>
 <td>Tekst<br>
 	<textarea WRAP='VIRTUAL' rows='6' name='tekst' cols='40'></textarea><br>
 </td>
</tr>
<tr>
 <td>
 	<input type='submit' value='OK' name='leggtil'></td>
</tr>
</table>
</form>
 ";
}
}

?>

 

Og så en side bare du kan se hvis du er logget inn:

<?php
session_start();

$brukernavn = $_SESSION['brukernavn'];
if (isset($brukernavn)) {
$mysql_host = "localserver";
$mysql_user = "brukernavn";
$mysql_pass = "passord";
$mysql_db = "databasenavn";

$link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass)
           or die ("$lang_dberr1");
if (mysql_select_db ($mysql_db)) {

 $result = mysql_query("Select * from innhold");
 while ($row = mysql_fetch_array($result)) {
 
 echo "
 	<table>
   <tr>
   	<th>Avsender</th><th>Dato</th>
   </tr>
   <tr>
   	<td>".$row['avsender']."</td>
   	<td>".$row['dato']."</td>
   </tr>
   <tr>
   	<td colspan='2'>".$row['tekst']."</td>
   </tr>
 	</table>
 ";
}}
}
else {
 echo "Du må logge inn.";
}

 

Så det skulle vel være alt tror jeg. Nå har jeg ikke hatt mulighet til å teste i det hele tatt faktisk, så det kan godt hende det blir masse bugs. I såfall, bare si ifra her, så skal vi nok finne ut av det.

Om dere andre synes koden er stygg eller dårlig så er jeg absolutt null interessert, poenget er for meg å få det til å funke, ok?

 

Husk at du må ha en

<?php session_start(); ?>

øverst på alle sidene der du skal fortsette å være innlogget.

Endret av anners
Lenke til kommentar

Ok, du lurer altså på hvordan du legger inn rader, og hvilke innstillinger de bør ha? Har du phpMyAdmin installert?

Den siste siden kan du kalle akkurat hva du vil, jeg har ikke lagt noen link til den eller noe sånt.

 

Har oppdatert koden littegranne pga. diverse småfeil.

Lenke til kommentar

Ok, det skal gå å bare kjøre disse spørringene (trykk deg inn på databasen, og klikk SQL):

CREATE TABLE `brukere` (
`brukernavn` VARCHAR( 60 ) DEFAULT NULL ,
`passord` VARCHAR( 60 ) DEFAULT NULL 
);


CREATE TABLE `innhold` (
`id` INT NOT NULL AUTO_INCREMENT ,
`avsender` VARCHAR( 50 ) DEFAULT NULL ,
`tekst` TEXT DEFAULT NULL ,
`dato` DATETIME DEFAULT NULL ,
PRIMARY KEY ( `id` ) ,
FULLTEXT (
`avsender` ,
`tekst` 
)
);

 

dette lager begge tabellene med rader med innstillinger jeg troor skal funke.

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