Community [opdateret]

 

Dette er en grundlæggende artikel til hvordan du laver et lille community, med forskelige
diverse funktioner. I de fleste community's og brugersystemer bliver det brugt session's.
En session er noget der bliver gemt på det brugte server, som gemmer de dataer man taster ind.
Men session'en bliver for det meste kun brugt til at gemme et brugernavn.

Hvis du følger denne artikel er det vigtigt at din server /(dit host) understøtter MySQL og
sessions.


NB. Under denne artikel kan der nemt forkomme stavefejl - og kode fejl, men håber du kan bruge den =)

----------------------------------------------------
Del #1,1: Lav databasen.

I din MySQL database skal du altid gemme tabeller, med hvisse navne; som dit script kender.


CREATE TABLE brugere (
id int(9) unsigned NOT NULL auto_increment,
brugernavn varchar(200) NOT NULL default '',
kodeord varchar(200) NOT NULL default '',
email varchar(200) NOT NULL default '',
UNIQUE K'EY id (id)
) TYPE=MyISAM;


Når du har gjordt det er din database faktisk klar.


----------------------------------------------------

Del #1,2: Forbindelsen til database; Lav en fil: ("db_connect.php")

I stedet for at holde kontakt til databasen på alle siderne laver jeg altid én fil med
forbindelsen, filen kan derfor include's på alle de andre sider og dermed holde
kontakten vedlige.

I filen kan du også indsætte mange andre nyttige ting som skal være på alle de dynamiske sider.
På denne side har jeg også valgt at indsætte log-ud strengen.

 
<?php
$database = ""; // her skal du angive din database
$bruger = ""; // her skal du angive din bruger
$password = ""; // her skal du indtaste dit kodeord til din mySQL server
$host = "";// dit host for det meste er det localhost

mysql_connect($host, $bruger, $password); // Forbindelse til serveren.
mysql_select_db($database); // Holder forbindelse til databasen

if($mod == "logOut"){
session_start();
session_destroy();

echo "<script>\n setTimeOut(\"location.href='login.php?ermsg=Du er nu logget ud';\", 200); \n </script>";

}

if($brugernavn){
$bSQL = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$brugernavn'");
$brugerinfo = mysql_fetch_array($bSQL);
}
?>


Så kan jeg skrive
<? include "db_connect.php"; ?>
på alle siderne.

----------------------------------------------------
Del #2,0: Login siden, tjek om opkysningerne passer; Lav en fil: ("login.php")

I alle communityes skal man altid angive noget for at få adgang til nogle bestemte sider, nogle
gange bare et kodeord, nogle gange kundenummer eller brugernavn. Men i dette tilfælde skal vi
angive brugernavn eller Username som nogle vælger og kalde det (Engelsk)



<?php
session_start();
include "db_connect.php";
if($tjek == "yes") {
$sql = mysql_query("SELECT * FROM BRUGERE WHERE brugernavn = '$fbruger'");
$btjek = mysql_fetch_array($sql);
if($fkode == $btjek[kodeord]){
$brugernavn = $btjek[brugernavn];
session_register("brugernavn");
header("location: login_ok.php");
}
else{
$ermsg = "Forkert brugernavn eller password \n";
}
}
if($brugernavn){
header("location: login_ok.php");
}
else{
?>
<HTML>
<HEAD>
<TITLE> community </TITLE>
</HEAD>
<BODY>

<?
if($ermsg){
echo "<font color=\"red\" size=\"2\" face=\"Tahoma\">". $ermsg . "</font><br><br>\n";
}

?>

<FORM ACTION="<?=$PHP_SELF?>" METHOD="POST" NAME="FORM">
<input type="hidden" name="tjek" value="yes">
Brugernavn : <input name="fbruger" type="text"><br>
Kodeord : <input name="fkode" type="password"><br>
<input type="submit" value="login">
</form>

</BODY>
</HTML>
<?
}
?>



----------------------------------------------------
Del #2,1: Login-okay siden, forside til dem der ER logget ind; Lav en fil: ("login_ok.php")

Når brugerene er logget ind, får de nu adgang til en række funktioner, som de kan benytte sig af.

1; ret profil
2; se profiler
3; log af


<?php
session_start();
include "db_connect.php";

if($brugernavn){
if($page){

echo "<HTML>\n <HEAD>\n <TITLE> community </TITLE>\n </HEAD>\n <BODY>";

if($page == "bliste"){
$sql = mysql_query("select * from brugere");
echo "\t komplet liste over alle bruger:<br><br>";
$strNumber = 0;
while($row = mysql_fetch_array($sql)) {
$strNumber = $strNumber+1;
echo "\t\t #$strNumber - <a OnClick=\"parent.location.href='?page=profil&id=$row[id]'\" style=\"cursor:hand\">$row[brugernavn]</a><br>\n";
}
if($page == "profil"){

$sql = mysql_query("select * from brugere where id = '$id'");
while($row = mysql_fetch_array($sql)) {

echo "\n\t velkommen til $row[brugernavn]'s profil.\n \t Du kan kontakte $row[brugernavn] på følgene e-mail $row[email] \n \n \t <br> Der er ikke andet her.";

}
if($id == NULL){
echo "\n Den afsøgte bruger blev ikke fundet. <br>\n Prøv igen senere.\n";
}
}
if($page == "rbruger"){

if($module){
mysql_query("UPDATE brugere SET email = '$email' WHERE brugernavn = '$brugernavn' OR id = '$brugerinfo[id]");
echo "\n \t<script> \n \t alert(\"Din profil er nu redigeret\"); \n \t parent.location.href='?page=profil&id=$brugerinfo[id]'; \n \t </script>\n";
}

echo "\t <form action=\"login_ok.php\" method=\"post\">\n";
echo "\t <input type=\"hidden\" name=\"page\" value=\"rbruger\"> \n";
echo "\t <input type=\"hidden\" name=\"module\" value=\"action\"> \n";
echo "\t <input type=\"text\" name=\"email\">\n\n";
echo "<input type=\"submit\" value=\"Rediger profil\">\n \t</form>\n";
}

echo "</BODY>\n </HTML>";
}
else{


?>
<HTML>
<HEAD>
<TITLE> community </TITLE>
</HEAD>

<body link="#000000" vlink="#000000" alink="#000000">

<DIV align=left>
<TABLE style="BORDER-COLLAPSE: collapse" borderColor=#111111 height=198 cellSpacing=0 cellPadding=0 width=432 border=0>
<TBODY>
<TR>
<TD vAlign=top width=157 height=198>

<font size="2" face="tahoma">

<a OnClick="parent.frame.location.href='?page=bliste';" style="cursor:hand">Brugerliste</a><br>
<a OnClick="parent.frame.location.href='?page=rbruger';" style="cursor:hand">Ret bruger</a><br>
<a OnClick="parent.location.href='?mod=logOut';" style="cursor:hand">Log af</a>

</TD>
<TD vAlign=top width=269 height=198>
<iframe name="frame" src="?page=start" width="200" height="300" frameborder="0">
</iframe>
</TD></TR>
</TBODY>
</TABLE>
</DIV>

</BODY>
</HTML>
<?
}
if(!$brugernavn){
header("location: login.php?ermsg=Du er ikke logget ind.");
}
}
}
?>


----------------------------------------------------Slut...

Eksemplerne som er indtastet her, er testet på en Apache server med PHP Ver. 4.1.1; Og dermed kører det fint.

Håber du fik god af artiklen.

Skrevet AF nikolaj sommer jensen 13 oktober '04 start: 20:41 slut 22:21



Skrevet af: | Dato : 2004-10-21 17:2 | Lst : 15152 gange