inlog en post script

Status
Niet open voor verdere reacties.

Example5

Terugkerende gebruiker
Lid geworden
9 mrt 2008
Berichten
2.172
hey,

ik ben al een tijdje bezig met het maken van een php site, maar dit wil niet erg opschieten... ik wil namelijk een log in functie maken, (met mod en admin mogelijkheden) en dat geregistreerde gebruikers dan kunnen commenten...

vergelijk het idee maar een beetje met een site als geenstijl, de webmaster typt een stukje, en geregistreerde gebruikers kunnen dan reageren op zon stukje, mits ze geregistreerd en aangemeld zijn...

zou iemand mij hiermee kunnen helpen? zelf kom ik er namelijk niet uit, ik heb al geprobeerd de inlogfunctie van kant en klare templates te halen, maar ook dit werkte niet...

(ik heb beschikking over php en een mysql database...)

bedankt :D


P.S

"(met mod en admin mogelijkheden)" dit kan ik eventueel later ook nog toevoegen, ik heb nu eigenlijk eerst de basis nodig... ik zou het trouwens mooi vinden als de inlogfunctie er ongeveer net zo uitziet als bijv hyves... een klein inlogveldje, weggewerkt in de bovenhoek van een scherm (ja die posities enzo kan ik zelf wel aanpassen :P) maar dat wanneer er ingelogd is er ook in diezelfde hoek staat aangegeven dat je bent aangemeld...

(net als deze site eigenlijk, er staat eerst dat je moet inloggen, en als je dat gedaan hebt:

Welkom, renep90.
Je laatste bezoek: blabla


)
 
dit klinkt btw misschien net alsof ik zelf niks wil doen voor dit script maar dat is niet zo... het lukt gewoon niet zelf...
 
Kun je eens laten zien wat je al hebt (geprobeerd?).

Heb je al een HTML formulier gemaakt? Heb je al een database gemaakt? Heb je al enige PHP ervaring?
 
het gaat dus vooral fout bij het linken tussen de database en de phpdingetjes omdat ik daar nog niet echt veel ervaring mee heb... php doe ik al vrij lang, maar zelfs daar ben ik niet zo goed in ;(


nu heb ik net een rij met dingen gepost maar die staan er niet meer :S
 
Laatst bewerkt:
Kun je eens laten zien wat je al hebt (geprobeerd?).

Heb je al een HTML formulier gemaakt? Heb je al een database gemaakt? Heb je al enige PHP ervaring?



dit dus:





naja ik ben begonnen met 3 paginaatjes te maken, login, checklogin en donelogin.php



toen heb ik geprobeerd dit in te vullen in de database:

CREATE TABLE `members` (
`id` int(4) NOT NULL auto_increment,
`username` varchar(65) NOT NULL default '',
`password` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

hierna probeerde ik iemand toe te voegen maar begon ie al errors te geven...


daarop heb ik een kant een klaar forumscript gedownload en geprobeerd aan te passen... maar dit was te ingewikkeld voor mij :P

(hier bijv nog het tablescriptje:)
Code:
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>

alleen nu weet ik niet wat ik fout doe bij de database, EN ik weet niet hoe of ik login moet controleren etccc/registreren...
 
Je hebt dus een tabel met drie velden, dat is alvast een goed begin. Je zou ervoor kunnen kiezen om bijvoorbeeld ook nog een emailadres op te slaan om mensen een nieuw wachtwoord op te sturen als ze het vergeten zijn, maar voor nu is dit een goed begin. Drie pagina's gebruiken, tsja, de opzet is goed, maar het kán makkelijk op 2 pagina's. 1 voor het inloggen en dan een pagina die alleen te bekijken is als je ingelogd bent.

Ik maak even een nieuw formpje aan, voor het overzicht, maar dit kun je gewoon aanpassen zolang je de namen van de velden hetzelfde houdt.

PHP:
<form name="inloggen" method="post" action="">
  Username: <input type="text" name="username" /><br />
  Password: <input type="password" name="password" /><br />
  <input type="submit" name="submit" value="Login" />
</form>

Nu moet op die zelfde pagina ook de validatie komen:

PHP:
<?php
session_start(); // zorg dat de sessie toegankelijk is voor de parser

if ( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) { // kijk of het formulier verstuurd is

  if ( trim ( $_POST[ 'username' ] ) != '' && trim ( $_POST[ 'password' ] ) != '' ) { // kijk of beide velden ingevuld zijn

    $connection = mysql_connect ( 'localhost', 'MySQLuser', 'MySQLpass' ); // maak een connectie met de mysqlserver
    $db = mysql_select_db ( 'naamvanjedatabase' ); // maak een connectie met de database

    $sql = "SELECT id FROM members WHERE username = '" . $_POST[ 'username' ] . "' AND password = '" . $_POST[ 'password' ] . "'"; // stel de SQL-query samen
    $result = mysql_query ( $sql, $connection ); // voer de query uit en sla het resultaat op

    if ( mysql_num_rows ( $result ) > 0 ) { // kijk op er meer dan 0 rijen waren in het resultaat (gebruikersnaam en wachtwoord combinatie bestaat)

      $_SESSION[ 'username' ] = $_POST[ 'username' ]; // zet de gebruikersnaam in de sessie zodat deze ook later beschikbaar is
      $_SESSION[ 'loggedin' ] = true; // zet de boolean 'loggedin' op true

    } else {

      session_destroy(); // gebruiker bestaat niet, vernietig voor de zekerheid gewoon de sessie

    }

  }

}

?>

Wat je dus hierboven nog moet in vullen is: MySQLuser en MySQLpass dat zijn de gegevens van je database, dus niet iets dat in de tabel staat. naamvanjedatabase moet je nog vervangen door de werkelijke naam van je database.

Op elke pagina die je wilt beveiligen doe je dan:

PHP:
<?php
session_start(); // maak de sessie weer beschikbaar
if ( !isset ( $_SESSION[ 'loggedin' ] ) || $_SESSION[ 'loggedin' ] != true ) { // kijk of de $_SESSION['loggedin'] bestaat en of de waarde true is
  header ( 'Location: urlnaarjeloginpagina.php' ); // zo niet, verwijs de gebruiker door naar de loginpagina
  exit(); // en stop het script.
}
?>

Op deze manier moet je nog wel je gebruikers handmatig toevoegen. Als dit werkt kunnen we wel eens kijken naar een formulier om gebruikers zich te laten registreren. Ook kunnen we het nog beter beveiligen door bijvoorbeeld een MD5 codering te gebruiken, maar voorlopig is dit denk ik een goede basis.

EDIT: overigens, allebeide stukken PHP moet helemaal bovenaan de pagina komen waar de op staan. Anders krijg je een error.
 
Laatst bewerkt:
okee bedankt, ik ben ff niet thuis maar vanavond test ik hem ff....
miss moet ik ook ff die gegevens versleutelen ... maar ik kijk vanavond ff.. bedankt alvast
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan