Gå til innhold

ønsker et script som passordbeskytter sider..


Anbefalte innlegg

Skrevet (endret)

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
Videoannonse
Annonse
Skrevet

ok, la oss si at jeg har et kontakt skjema da, isteden for at jeg får de på mail, vill jeg heller få alle meldingene på en passord beskyttet side.

Skrevet

Ok. Har du MySQL? Og kan du noe php, sånn at jeg bare forklarer hva du må gjøre, eller skal jeg lage et script for deg(jeg har lite å gjøre som tilbyr meg i det hele tatt :p).

Skrevet (endret)

Ja da mySQl har jeg, jeg kan noe php..

Sån hvis du får satt opp en liten del så skal nok jeg klare å forsette/ vidre utvilke det hvis jeg trenger det :)

Endret av Neverio
Skrevet (endret)

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
Skrevet (endret)

ok, det med database tabeller er jeg helt blank på.. :blush:

 

jeg vet hvordan jeg kan legge de inn.. men jeg vet ikke hvordan jeg kan kode selv osv..

 

Edit:

Hva skal den siste siden hete?

Endret av Neverio
Skrevet

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.

Skrevet (endret)

jepps har tilgang til phpmyadmin.. (bare opprettet en free konto på en siden :p side mySQL på min server virker ikke enda.. og hostin min sin server er nede..)

Endret av Neverio
Skrevet

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.

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