een login in twee databasen
Hoe kan dat staat al die database in de Wamp5 server met elkaar in verbinding? of hoe zit dat
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
40
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
40
<?php
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
include('../includes/config.php');
// bovenstaan is om alle foutmeldingen op het beeldscherm te zetten.
// en we moeten natuurlijk de verbind.php include omdat we verbinding willen
// met de database
//if(isset($_POST['inloggen']))
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$gebruiker_query = "SELECT * FROM gebruiker WHERE gebruiker_naam = '".mysqli_real_escape_string($con, trim($_POST['gebruikersnaam']))."';";
$gebruiker_sql = mysqli_query($con, $gebruiker_query)or die(mysql_error());
$gebruiker_tellen= mysqli_num_rows($gebruiker_sql);
if ($gebruiker_tellen == 1){
$rij = mysqli_fetch_array($gebruiker_sql);
if(sha1($_POST['wachtwoord']) == $rij['gebruiker_wachtwoord']){
session_start();
$_SESSION['gebruiker_id'] = $rij['gebruiker_id'];
$_SESSION['gebruiker_naam'] = $rij['gebruiker_naam'];
$_SESSION['gebruiker_rank'] = $rij['gebruiker_rank'];
header('Location: index1.php');
}else{
echo 'Fout bij het inloggen. Probeer het opnieuw';
}
}else{
echo 'Fout bij het inloggen. Probeer het opnieuw';
}
}else{
echo '<br />
<table width="400px" align="center" border="0" bordercolor="#0000A0" cellpadding="5" cellspacing="0">
<form method="POST" action="inloggen.php">
<tr>
<td align="left">Naam:</td><td><input type="text" name="gebruikersnaam"></td>
<td align="left">Wachtwoord:</td><td><input type="text" name="wachtwoord"></td>
<td><input type="submit" name="inloggen" value="Inloggen"></td>
<td> </td><td><a href="?uitloggen">uitloggen</a></td>
</tr>
</form>';
}
?>
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
include('../includes/config.php');
// bovenstaan is om alle foutmeldingen op het beeldscherm te zetten.
// en we moeten natuurlijk de verbind.php include omdat we verbinding willen
// met de database
//if(isset($_POST['inloggen']))
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$gebruiker_query = "SELECT * FROM gebruiker WHERE gebruiker_naam = '".mysqli_real_escape_string($con, trim($_POST['gebruikersnaam']))."';";
$gebruiker_sql = mysqli_query($con, $gebruiker_query)or die(mysql_error());
$gebruiker_tellen= mysqli_num_rows($gebruiker_sql);
if ($gebruiker_tellen == 1){
$rij = mysqli_fetch_array($gebruiker_sql);
if(sha1($_POST['wachtwoord']) == $rij['gebruiker_wachtwoord']){
session_start();
$_SESSION['gebruiker_id'] = $rij['gebruiker_id'];
$_SESSION['gebruiker_naam'] = $rij['gebruiker_naam'];
$_SESSION['gebruiker_rank'] = $rij['gebruiker_rank'];
header('Location: index1.php');
}else{
echo 'Fout bij het inloggen. Probeer het opnieuw';
}
}else{
echo 'Fout bij het inloggen. Probeer het opnieuw';
}
}else{
echo '<br />
<table width="400px" align="center" border="0" bordercolor="#0000A0" cellpadding="5" cellspacing="0">
<form method="POST" action="inloggen.php">
<tr>
<td align="left">Naam:</td><td><input type="text" name="gebruikersnaam"></td>
<td align="left">Wachtwoord:</td><td><input type="text" name="wachtwoord"></td>
<td><input type="submit" name="inloggen" value="Inloggen"></td>
<td> </td><td><a href="?uitloggen">uitloggen</a></td>
</tr>
</form>';
}
?>
Code (php)
1
2
3
4
2
3
4
<?php
$db = mysql_connect('localhost', 'user', 'ww') or die (mysql_error());
mysql_select_db("Databasename", $db) or die (mysql_error());
?>
$db = mysql_connect('localhost', 'user', 'ww') or die (mysql_error());
mysql_select_db("Databasename", $db) or die (mysql_error());
?>
@Niek waarom gebruik je 2 databases dan?
Ja dat is een gewoonte.
Want als je een tutorial volgt, staat er meestal eerst maak een database aan.
En
Maarten
Dat kun je ook in je config of connectie script zetten
Reshad F op 18/10/2013 10:15:02:
@Maarten mysql is deprecated ( verouderd )
Dat is nog lang niet aan de orde.
Er zijn al langer plannen om mysql als deprecated te zetten, of af te schaffen in volgende php-versies.
Maar volgens mij komt dat er niet al te vlug.
En als het ooit komt, moet je eerst zelf die nieuwe php-versie installeren vooraleer je er last mee kan krijgen.
Toevoeging op 18/10/2013 11:25:14:
@Niek maar als je al een database hebt hoef je deze toch niet opnieuw aan te maken?
Quote:
@Niek maar als je al een database hebt hoef je deze toch niet opnieuw aan te maken?
Die vraag snap ik niet helemaal.
Je bedoeld zeker dat ik alles in een database moet stoppen.
dat gebeurt wel als het word ge-upload naar de server, maar nu ff niet.
Ik heb dus een forum script met een eigen database en voetbal script met eigen database in wamp5 en in beide het zelfde inlog systeem ze zouden niet met elkaar verbinding moeten staan omdat het 2 verschillende databases zijn, Maar toch doen ze dat wel in de Wamp server.
Gewijzigd op 19/10/2013 18:02:31 door Niek Kasius
Niek Kasius op 18/10/2013 02:57:42:
Ik heb 1 inlog scripts en dat heb ik in 2 verschillende databasen staan met de zelfde tabel naam,
Heb je nu 1 of 2 scripts? En heb je dat script (of die scripts) in een database staan? Scripts die in een database staan heb je niet zoveel aan. En dezelfde tabelnaam?
Oftewel, begin eerst eens met je probleem helder uit te leggen in goed Nederlands, want van je uitleg klopt volgens mij helemaal niets.
Als je verschillende sessievariabelen gebruikt voor je logins (dus niet gebruiker_id, maar forum_gebruiker_id en voetbal_gebruiker_id enzo) dan zou het wel goed moeten gaan.
Quote:
Oftewel, begin eerst eens met je probleem helder uit te leggen in goed Nederlands, want van je uitleg klopt volgens mij helemaal niets
Niet alleen maar de vraag lezen maar ook de reacties.
Gewijzigd op 20/10/2013 02:38:00 door Niek Kasius
Als je niet geholpen wil worden, moet je vooral je probleem niet goed uitleggen....
Niek Kasius op 20/10/2013 02:36:25:
Niet alleen maar de vraag lezen maar ook de reacties.
Op een vraag worden vaak uiteenlopende reacties gegeven. Hoe minder duidelijk de vraag, hoe uiteenlopender de reacties. De vraagsteller kan het best beoordelen welke reacties relevant zijn.
Op een forum als dit word je geholpen door mensen die het leuk vinden om anderen te helpen. Niemand wordt betaald voor zijn diensten. Je kunt dan ook moeilijk verwachten dat mensen moeite gaan doen om te begrijpen wat je probleem nu eigenlijk is. Door je vraag duidelijk te formuleren kweek je veel meer goodwill om geholpen te worden.
Het duidelijk formuleren van je vraag heeft nog een bijkomend voordeel: omdat je jezelf op die manier als het ware dwingt om gestructureerd na te denken over je probleem, ga je vaak zelf al inzien wat de oorzaak of oplossing is. Je wilt niet weten hoeveel vragen ik hierdoor niet gesteld heb, of waar de uiteindelijke vraagstelling volkomen anders was dan de oorspronkelijke.
Haal je dit uit een SESSIE ?
En hoeveel SESSIEs heb je dan ? 1 of 2 ?
Het lijkt er op dat je het in en uitloggen bij beide databases in één enkele variabele bij houdt en niet in 2 aparte.
dus daaraan weet ik dat ik ben ingelogd, en als ik uitlog dan kom ik er niet meer in zonder opnieuw in te loggen.
Dus dat is wel goed.
Maar ik was een beetje aan het experimenteren met dat script in verband met de gebruiker_rank die er in zit,
En ging (zonder eerst uit te logen) daarom kijken in het forum script waarin het zelfde inlog script word gebruikt maar dat niet in mysqli, En toen zag ik dat ik daar ingelogd was, En ik heb daarin toen uitgelogd, en ben toen weer terug gegaan naar het script waarmee ik aan het stoeien, en moest daar opnieuw inloggen.
En nee ik had Browsergeschiedenis verwijderd.
Wel zijn de naam en velden van de tabelen in beide scripts het zelfde.
Maar dat zou geen probleem mogen dacht ik toch, want ze gebruiken allebij een andere database
Gewijzigd op 20/10/2013 18:58:14 door Niek Kasius
En is het probleem wellicht verwoord.
Sla je de gegenereerde loginsessies wel op in je database? Die je vervolgens controlleerd met de huidige waarde van de browser?
Als deze gelijk zijn, is het 90% zeker dat het dezelfde gebruiker is die deze sessiegegevens heeft laten opslaan in het database tijdens de login.
Als je logincheck alleen maar bestaat uit het controlleren of de gebruiker een sessie heeft, wat je niet controlleerd, kan dit voorkomen ja.
En als je dezelfde sessienamen gebruikt in je andere script waar je uitlogt, wordt de sessie verwijderd. En ben je ook in je andere script uitgelogd.
Dus als ik jou was zou ik eerst met mn loginscript gaan 'stoeien'
Niek Kasius op 20/10/2013 02:36:25:
Erwin H
Niet alleen maar de vraag lezen maar ook de reacties.
Quote:
Oftewel, begin eerst eens met je probleem helder uit te leggen in goed Nederlands, want van je uitleg klopt volgens mij helemaal niets
Niet alleen maar de vraag lezen maar ook de reacties.
Lees zelf de reacties ook eens goed door
Willem vp op 19/10/2013 20:47:04:
Het probleem is volgens mij dat je weliswaar je gebruikers in een database hebt staan, maar dezelfde sessievariabelen gebruikt om bij te houden wie er ingelogd is. Als je dus uitlogt op je forum wordt de sessievariabele verwijderd en in je voetbalscript ben je dan ook opeens niet meer ingelogd.
Als je verschillende sessievariabelen gebruikt voor je logins (dus niet gebruiker_id, maar forum_gebruiker_id en voetbal_gebruiker_id enzo) dan zou het wel goed moeten gaan.
Als je verschillende sessievariabelen gebruikt voor je logins (dus niet gebruiker_id, maar forum_gebruiker_id en voetbal_gebruiker_id enzo) dan zou het wel goed moeten gaan.
Gewijzigd op 20/10/2013 19:44:49 door Ger van Steenderen
En Bedankt