Log in maken in php over een databank
Helaas is mijn kunde hier niet zo zeer uitgebreidt over en kan ik wel php schrijven maar een aanmeldsysteem maken. Daar snap ik niets van, de voorbeelden die ik vindt op internet zijn onoverzichtelijk en onduidelijk vind ik. Kan mij hier iemand mee helpen? Ik moet mijn php-taal schijven in het programma php-eclipse en mijn databank die erachter hangt in php-myadmin.
Heb je al een idee en of database? Of moet je dat nog maken...
Apart.
Maar nu zou ik deze aan elkaar moeten hangen om zo te kunnen aanmelden via de gegevens van uit de tabel gebruikers.
Toevoeging op 06/03/2012 09:59:59:
Ik heb nu een databank gipopdracht die ik lokaal heb opgeslagen op mijn pc, daarin zitten een aantal tabellen waar ik later query ga laten doorlopen via mijn php-code, mar nu zou ik eerst moeten kunnen aanmelden op deze phpapplicatie om zo verder te kunnen naar de homepage van mijn site.
Als wij niet weten hoe je database eruit ziet kunnen we je moeilijk verder helpen. Wat denk je te kunnen van een login page?
Ik kan alle tekstvakken en de knop er wel opzetten maar de uiteindelijke controle van al deze waarden kan ik niet. in mijn databank staat een tabel beheerder waar ik de gegvens er al wil inzetten van de gebruikers. er mag geen neiwue gebruiker aangemaakt worden enkel ik mag dat. die gegevens moeten gecontroleerd worden of ze staan in de tabel beheerder in de databank gipopdracht
user
- id
- username
- passwords
- rights
- name
- phone
Voor het gemak ga ik hier van uit.
Weet je hoe je variabelen moet controleren of dat ze ingevuld zijn?
Weet je hoe je een Query uit moet voeren en afhandelen?
Waarom ik zo veel vraag? Nou heel simpel voor je ik je wat ga vertellen moet ik wel weten wat je kunt... Ook is het handig zodat ik je gerichter kan helpen.
www.phptuts.nl eens door te lezen.
Begin BHR_ID
BHR_NAAM
BHR_VOORNAAM
BHR_PASSWOORD
mijn php pagina heet gip.php dat is de aanmeldpagina, daarna zou ik door middel van een knop naar home.php moeten gaan waar ik dan zelf knopen heb opgezet om zo verder te lopen door mijn site.
Wat moet je op een inlog pagina doen?
- Gebruikers een gebruikersnaam & wachtwoord laten invullen.
- Gebruikersnaam controleren (ingevuld?)
- Wachtwoord controleren (ingevuld?)
- De combinatie daarvan controleren (bestaat die?)
- Sessie of cookie aanmaken
- Doorsturen naar homepage
Kijk eens of je als je dat zo op een rijtje hebt je alvast een beginnetje kunt maken. Laat dat hier zien en we verbeteren je op fouten en geven je tips. Kijk zoals SanThe zegt even op phptuts.nl
(simpel)Registerform:
Naam (als die niet gezet is niet verder gaan)
Wachtwoord (zelfde)
Controle Wachtwoord (zelfde)
Login:
Naam (controleren of die bestaat)
Wachtwoord (controleren of die in hetzelfde rijtje staat als de naam)
Ik zou graag een klein tutorialtje hierover willen schrijven maar ik heb de tijd op dit moment niet sorry
Albert de Wit,
Sorry voor het zeggen. Maar het lijkt mij ook ma goed ook dat je er geen tijd voor hebt. Gezien je zelf nogal wat belangrijke fouten maakt. Zie de link:
http://www.phphulp.nl/php/forum/topic/log-in-maken-in-php-over-een-databank/83159/last/
Nogmaals niet verkeert bedoelt eerder een hint.
Edit:
Ik weet ook hoe een inlog moet werken na behoren.
Maar als ik er een moet maken laat staan een tut moet schrijven, dan denk dat ik per direct een levens lange ban krijg met zeer veel laggende hoofden hier op het forum.
Gewijzigd op 06/03/2012 12:04:52 door Frank WD
Ik heb nu een aanmeldformulier, ik kan daarbij mijn databank aanroepen.
Ik heb gecontroleerd of de invulvelden zijn ingevuld maar ik weet niet hoe ik die waarden nu kan controleren of ze in mijn databank staan in de tabel beheerder in de rijen BHR_GB en BHR_WACHTWOORD
if ($_REQUEST["action"] == "aanmelden") {
if ($_POST['gb'] == '') {
echo 'niet ingevuld!';
}
if ($_POST['wachtwoord'] == '') {
echo 'niet ingevuld!';
}
if($_POST['gb']==gb)
}
Toevoeging op 06/03/2012 12:08:01:
die onderste lijn is fout, daar moet ik de controle naar de databank doen
Toevoeging op 06/03/2012 13:34:19:
ik heb nu mijn loginscherm, html code maar klopt deze code die ik er onder heb geschreven voor de tekst te controleren?
if ($_REQUEST["action"] == "aanmelden") {
if(empty($_POST['gb'])) {
echo "Je hebt je gebruikersnaam niet ingevuld!";
}
if(empty($_POST['wachtwoord'])) {
echo "Je hebt het wachtwoord niet ingevuld!";
}
if (!empty($_POST['gb'])){
$query = "SELECT BHR_ID FROM beheerder
WHERE gb='".$_POST["gb"]."'
AND BHR_PASSWOORD='".$_POST["wachtwoord"]." ' ";
$result=mysql_query($query) or die("FOUT : " . MySQL_error());
}
}
- SanThe - op 06/03/2012 10:27:28:
Begin www.phptuts.nl eens door te lezen.
Alles wat jij zoekt staat op die site.
Doe zelf eens wat onderzoek.
even een vraag waarom moet je een applicatie in php maken als je hier geen verstand van hebt?
voor mijn gip opdracht, ik zie in school ook wel php maar dat is echt basic basic, gwn optelsommetjes maken enzo. niet uitgebreidt zoals ze nu op mijn stage willen.
Id, Inlognaam, Wachtwoord
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
// index.php
echo "<form action='index.php' method='POST'>";
echo "Inlognaam:<input type='text' name='inlognaam'><br>";
echo "Wachtwoord:<input type='password' name='wachtwoord'><br>";
echo "<input type='submit' value='Login'>";
echo "</form>";
// controleren of de inlognaam en wachtwoord verzonden zijn
if (isset($_POST['inlognaam'])&&isset($_POST['wachtwoord']))
{//controleren of de velden niet leeg zijn
if (!empty($_POST['inlognaam'])&&!empty($_POST['wachtwoord']))
{// controleren of de naam en het wachtwoord bij elkaar horen
//uit een database(mysql in dit geval)
// verbinding maken met je local databaseverzameling
mysql_connect('localhost','root','');
// de database 'inloggegevens' selecteren
mysql_select_db('inloggegevens');
// query maken voor het opvragen van het tabel genaamd 'inlog' waar de ingegeven
// inlognaam overeenkomt met een inlognaam in de tabel
$sql = mysql_query("SELECT * FROM inlog WHERE inlognaam='".$_POST['inlognaam']."'");
// controleren of het wachtwoord overeenkomt met de overeengekomen naam
// $row[2] betekent hier de rij van wachtwoord in de database
while ($row = mysql_fetch_row($sql))
{
if ($row[2]==$_POST['wachtwoord'])
{
echo "Gefeli je bent ingelogd";
}
}
}
}
?>
// index.php
echo "<form action='index.php' method='POST'>";
echo "Inlognaam:<input type='text' name='inlognaam'><br>";
echo "Wachtwoord:<input type='password' name='wachtwoord'><br>";
echo "<input type='submit' value='Login'>";
echo "</form>";
// controleren of de inlognaam en wachtwoord verzonden zijn
if (isset($_POST['inlognaam'])&&isset($_POST['wachtwoord']))
{//controleren of de velden niet leeg zijn
if (!empty($_POST['inlognaam'])&&!empty($_POST['wachtwoord']))
{// controleren of de naam en het wachtwoord bij elkaar horen
//uit een database(mysql in dit geval)
// verbinding maken met je local databaseverzameling
mysql_connect('localhost','root','');
// de database 'inloggegevens' selecteren
mysql_select_db('inloggegevens');
// query maken voor het opvragen van het tabel genaamd 'inlog' waar de ingegeven
// inlognaam overeenkomt met een inlognaam in de tabel
$sql = mysql_query("SELECT * FROM inlog WHERE inlognaam='".$_POST['inlognaam']."'");
// controleren of het wachtwoord overeenkomt met de overeengekomen naam
// $row[2] betekent hier de rij van wachtwoord in de database
while ($row = mysql_fetch_row($sql))
{
if ($row[2]==$_POST['wachtwoord'])
{
echo "Gefeli je bent ingelogd";
}
}
}
}
?>
sorrry voor de overvloed aan commentaar maar dat is de enige manier om alles duidelijk te maken. Begrijp dit wel.... php is niet even aan te leren. Je brein moet ervoor gevormd worden en dat kost tijd. Als je PHP eenmaal snapt begrijp je me wel ;)
hopelijk helpt je dit als je het begrijpt.
Zoniet....
http://www.youtube.com/watch?v=4oSCuEtxRK8
Deze gast kan is normaal goed engels php heel mooi uitleggen.
SUC6!
Gewijzigd op 06/03/2012 14:21:48 door Albert de Wit
Het is leuk dat je probeert iemand te helpen, word denk ik zeker wel op prijs gesteld.
Maar ik denk dat je het juiste leert beter is.
Ik doel op het gebruik van * in de SELECT query.
Je kan beter hier de velden benoemen die je nodig hebt dan alle velden op te halen.
Velden selecteren die je nodig hebt is ook nog eens sneller.
Tevens mis ik een foutafhandeling bij de query.
hiermee kan ik al een eind verder bedankt.
Frank WD op 06/03/2012 14:30:33:
Ik doel op het gebruik van * in de SELECT query.
Je kan beter hier de velden benoemen die je nodig hebt dan alle velden op te halen.
Velden selecteren die je nodig hebt is ook nog eens sneller.
Tevens mis ik een foutafhandeling bij de query.
Je kan beter hier de velden benoemen die je nodig hebt dan alle velden op te halen.
Velden selecteren die je nodig hebt is ook nog eens sneller.
Tevens mis ik een foutafhandeling bij de query.
Klopt. Ik heb in de overhaastheid het * gebruikt omdat ik aanneem dat dit project hier niet officieel word gebruikt later op een site ofzo. Daarnaast verwacht ik al helemaal niet dat iemand het kopieert ;)
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
// index.php
//action kan leeg, php self, waarom elke regel aparte echo?
echo "<form action='index.php' method='POST'>";
echo "Inlognaam:<input type='text' name='inlognaam'><br>";
echo "Wachtwoord:<input type='password' name='wachtwoord'><br>";
echo "<input type='submit' value='Login'>";
echo "</form>";
?>
// index.php
//action kan leeg, php self, waarom elke regel aparte echo?
echo "<form action='index.php' method='POST'>";
echo "Inlognaam:<input type='text' name='inlognaam'><br>";
echo "Wachtwoord:<input type='password' name='wachtwoord'><br>";
echo "<input type='submit' value='Login'>";
echo "</form>";
?>
Code (php)
Code (php)
1
2
3
4
5
2
3
4
5
<?
// * gebruiken, geen mysql_real_escape_string
$sql = mysql_query("SELECT * FROM inlog WHERE inlognaam='".$_POST['inlognaam']."'");
//if($sql === false){ echo mysql_error(); }
?>
// * gebruiken, geen mysql_real_escape_string
$sql = mysql_query("SELECT * FROM inlog WHERE inlognaam='".$_POST['inlognaam']."'");
//if($sql === false){ echo mysql_error(); }
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?
//Waarom zo moeilijk doen? gebruik fetch_assoc dan kon je gewoon row['password']
//gebruiken, maar nog beter is om te controleren in de query zelf..
while ($row = mysql_fetch_row($sql))
{
if ($row[2]==$_POST['wachtwoord'])
{
echo "Gefeli je bent ingelogd";
}
}
?>
//Waarom zo moeilijk doen? gebruik fetch_assoc dan kon je gewoon row['password']
//gebruiken, maar nog beter is om te controleren in de query zelf..
while ($row = mysql_fetch_row($sql))
{
if ($row[2]==$_POST['wachtwoord'])
{
echo "Gefeli je bent ingelogd";
}
}
?>
Ik zou wat beter proberen in te springen.
Niet bedoelt om je af te kraken hoor, gelukkig probeer jij nog mensen te helpen.
Gewijzigd op 06/03/2012 14:55:08 door gerhard l
Gerhard l op 06/03/2012 14:54:00:
@Albert er is wel veel meer wat niet klopt maargoed.
action kan leeg, php self, waarom elke regel aparte echo?
action kan leeg, php self, waarom elke regel aparte echo?
Ik weet niet zeker of de persoon in kwestie hier verstand van heeft en ik wou zeker weten dat hij wist waar de $_POST[''] vandaan kwam.
Gerhard l op 06/03/2012 14:54:00:
Waarom 2 regels controleren, wat ook in 1 kan
Ik weet niet zeker of de persoon in kwestie hier verstand van heeft
Gerhard l op 06/03/2012 14:54:00:
* gebruiken, geen mysql_real_escape_string
$sql = mysql_query("SELECT * FROM inlog WHERE inlognaam='".$_POST['inlognaam']."'");
//if($sql === false){ echo mysql_error(); }
$sql = mysql_query("SELECT * FROM inlog WHERE inlognaam='".$_POST['inlognaam']."'");
//if($sql === false){ echo mysql_error(); }
Ik weet niet zeker of de persoon in kwestie hier verstand van heeft
Gerhard l op 06/03/2012 14:54:00:
Waarom zo moeilijk doen? gebruik fetch_assoc dan kon je gewoon row['password']
Klopt. Niet aan gedacht. Ik ben namelijk erg aan de fetch_row gewend en gehecht.
Vooral omdat het makkelijk te gebruiken is met loopjes. Iets waarmee ik erg veel werk
Gerhard l op 06/03/2012 14:54:00:
Ik zou wat beter proberen in te springen.
Inspringen gaat zo moeilijk als ik in een textvlak van dit forum script.
Gerhard l op 06/03/2012 14:54:00:
Niet bedoelt om je af te kraken hoor, gelukkig probeer jij nog mensen te helpen.
Zo voelt het totaal niet hoor ;)