inlog probleemje
Niek Kasius op 22/08/2013 00:49:52:
zelf schrijven, Hhoe moet dat? mMoet ik eerst eEngels geeaan leren, want ik weet niet wat die woorden allemaal betekenen.
Misschien ook nog wat aan je Nederlands doen... ;-)
De woorden die je voor het scripten nodig hebt, zijn beperkt.
Als je echt iets wilt, zul je er tijd en energie in moeten steken.
Als jij je wilt beperken tot kopiëren / plakken en niet de moeite neemt om zelf ook maar iets te leren/uit te zoeken, hoef je niet op mijn hulp te rekenen.
Gewijzigd op 22/08/2013 08:12:42 door Obelix Idefix
Quote:
zelf schrijven, Hhoe moet dat? mMoet ik eerst eEngels geeaan leren, want ik weet niet wat die woorden allemaal betekenen
Misschien ook nog wat aan je Nederlands doen... ;-)
als je dat er zie zo ziet staan, moet je toch echt je bril eens poetsen of je pc laten naarkijken
want ik heb dat nog een na gekeken.
Maar wat punt 3 betreft heb je natuurlijk wel gelijk.
Willem vp!
appreciëren alweer zo;n moeilijk woord, kan ik dat ruilen voor 2 woordjes viaduct
grapje
Maar ik ben van een andere generatie dan de meeste hier, en er werd vroeger op school niet uit gelegt waarom iets was wat het was dat moest je gewoon maar aannemen, dat werd me pas uitgelegt tijdens een opfris curcus voor ouders waarvan de kinderen naar het verlolg onderwijs gingen, zoals bijvoorbeeld als ik een briefje op de deur hing voor de bakker dat ik geen brood nodig had die dag met de tekst "baker geen brood vandaag" fout was en het bakker moest zijn, dus dat als de klinker kort was in een woord je 2 medeklinker moest gebruiken en zo iets dergelijks, en dat een groep ook uit 1 ding of persoon kon bestaan, waardoor ik een beter inzicht kreeg.
en daarbij had ik al in de eerste klas een hekel aan school omdat ik altijd an mijn oren werd getrokken door dat kreng van een jufrouw.
Tja je wil programmeur worden of niet, als je geen moeite wil doen om te snappen wat je nu precies doet wordt het lastig. Ja Engels is een belangrijke taal in web development (ontwikkeling), dus je zult wel de basis van Engels moeten kennen.
Tutorials zijn er om van te leren, niet 1-op-1 te copy/pasten (kopieeren/plakken) en hier en daar wat aanpassingen te doen. Uiteraard hebben meerdere mensen dit al uitgelegd aan je zie ik, maar je moet dus geen scripts van 8 jaar oud gaan gebruiken.
Hier zitten functies in die er dus in nieuwere PHP versies uit zijn gehaald, dit kan verschillende redenen hebben maar dat is niet belangrijk. Belangrijk is dat je dus zelf weet wat je doet, anders zul je nooit een stabiele omgeving kunnen ontwikkelen.
Tevens is een simpel login script voor iemand met basis kennis Engels, PHP en MySQL in ongeveer 2 a 4 uur te schrijven. Dus dan moet jij dat makkelijk in een week kunnen lijkt me ;-)
PHP for Dummies is mooie stof voor een beginner, voor Hello World op je scherm heb je geen PHP nodig klopt. Maar nu weet je wel dat doormiddel van een echo je php output (uitvoer) op je scherm kunt weergeven. Het heet niet voor niets PHP voor Dummies, dit is voor mensen die nog nooit wat met PHP gedaan hebben.
Dat je gelijk een hoog project pakt als eerste echte PHP ervaring is niet verstandig, begin met wat simpels en ga gewoon verschillende PHP functies gebruiken en kijken hoe ze werken. Heb je die onder de knie dan kun je verder gaan kijken naar wat uitgebreidere en gecompliceerdere code zoals inlog systemen en protected (beschermde) pagina's etc.
Succes, maar ik raad je wel aan om een goed PHP boek door te nemen.
En daar heb ik nu dus niks meer aan, net zo als PHP en mySQL voor dummies want die werkte met mysql
Gewijzigd op 23/08/2013 00:57:18 door Niek Kasius
Als jij (als bestuurder) in een auto zit en je kijkt constant in je achteruitkijkspiegel, dan is de kans groot dat je je bestemming niet zult halen.
Als je iets wilt bereiken in het leven, dan moet je proberen om vooruit te kijken en je niet te laten belemmeren door dingen die in het verleden zijn gebeurd. Dat je een vervelende juffrouw had in de eerste klas, of dat je een keer een verkeerd boek hebt gekocht is geen reden om dan maar nooit meer een boek te kopen of om nooit meer iets te leren. Probeer het eens als een uitdaging te zien. Probeer eens wél een goed boek te vinden! Ga eens kijken op bol.com of er een leuk boek tussen staat! En heb je iets gevonden? Dan kun je voordat je het aanschaft hier vragen of het een goed boek is.
Maar in het algemeen: laat je niet leiden door je verleden, maar kijk vooruit naar je toekomst! Wordt je leven een stuk leuker en interessanter van.
We hebben hier op het forum een stuk dat heet PHP Boeken, kijk daar eens even staan een paar mooie voorbeelden tussen.
Van alle boeken zijn tegenwoordig online inkijk exemplaren, dus google het boek en je zult verder komen.
En die boeken die hier beschreven staan zijn ook PHP6 naar ook al verouderd, want die gaan allemaal over mysql en niet over mysqli
Gewijzigd op 24/08/2013 00:13:52 door Niek Kasius
Niek Kasius op 24/08/2013 00:10:16:
ook al verouderd, want die gaan allemaal over mysql en niet over mysqli
Op zich hoeft dat niet zo'n probleem te zijn. Als je overal waar mysql staat mysqli neerzet, ben je er eigenlijk al bijna. Het grote verschil is dat je bij mysqli altijd een resource mee moet geven terwijl dat bij de mysql-functies meestal optioneel was (maar m.i. sowieso verstandig om te doen).
Verder maakt het niet zo gek veel uit of je een boek over PHP 5.0, 5.3 of 5.5 hebt. De basis van de taal blijft hetzelfde. Waarschijnlijk kun je zelfs beter een boek hebben over 5.0 dan over 5.5, vooral als je een provider hebt die nog met 5.3 werkt (en dat zijn er best een hoop). Tegen de tijd dat je nut hebt van de functionaliteit die in 5.3, 5.4 of 5.5 is toegevoegd, heb je waarschijnlijk het boek niet eens meer nodig. ;-)
Zoek: mysql_
Vervang door: mysqli_
Zoek: mysqli_query(
Vervang: sql_query(
Voeg extra bestand toe, include die en zet in dat bestand dit:
Code (php)
Klaaaar :D
Eddy E op 24/08/2013 08:06:39:
return mysqli_query($query, $connection)
Bijna goed. ;-) Het moet uiteraard zijn:
return mysqli_query($connection, $query);
En als ik dat zou doen dan nog blijf ik toch met dat uitlog probleem zitten. WANT
Ik heb nu 2 andere login scripts.
Een met mysqli maar zonder md5, sha1 of iets dergelijks dat wel werkt op zich, maar als ik mijn admin erin zet kan ik wel inloggen, maar dat uitloggen werkt dan nog steeds niet, het wel alsof ik ben uitgelogt en stuurt me terug naar de login, maar als ik dan afsluit en opnieuw de pagina open ben ik nog steeds in gelogt.
En een zonder mysql, dus ook zonder beveiliging.
Maar dat werkt wel, als ik daarin uitlog dan ben ik ook werkelijk uigelogt.
Heb dat script met mysqli wat aangepast heb er een sha1 en een email met controle aan toegevoegd, En het werkt ook nog, ik kan nu registreren en alles komt in de database, en ik kan inloggen, alleen gaat dat volgens mij op een omslachtige manier, ik heb members met daarin het admin script en members2 waarin ik de login mee open.
Maar als ik de admin via de login open word die ook wel geopend maar werk het uilog gebeuren niet en kan ik er zonder inloggen weer in.
Als je wilt dat we even meehelpen zoeken naar je probleem, laat dan op zijn mist even je relevante code zien.
Maar nu met php5.4 en mysqli krijg ik dat niet voor mekaar.
Ik heb onderstaand inlog script
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
session_start();
require "config.php"; //Connection Script, include in every file!
//Check to see if the user is logged in.
if(isset($_SESSION['user'])){
header("location: members.php"); //isset check to see if a variables has been 'set'
}
if(isset($_POST['submit']))
{
//Variables from the table
$user = $_POST['user'];
$pass = sha1($_POST['pass']);
//Prevent MySQL Injections
$user = stripslashes($user);
$pass = stripslashes($pass);
$user = mysqli_real_escape_string($con, $user);
$pass = mysqli_real_escape_string($con, $pass);
//Check to see if the user left any space empty!
if($user == "" || $pass == "")
{
echo "Please fill in all the information!";
}
//Check to see if the username AND password MATCHES the username AND password in the DB
else
{
$query = mysqli_query($con,"SELECT * FROM members WHERE username = '$user' and password = '$pass'") or die("Can not query DB.");
$count = mysqli_num_rows($query);
if($count == 1){
//YES WE FOUND A MATCH!
$_SESSION['username'] = $user; //Create a session for the user!
header ("location: members.php");
}
else{
echo "Username and Password DO NOT MATCH! TRY AGAIN!";
}
}
}
?>
<html>
<table width="300" align="center" cellpadding="0" cellspacing="1" border="1px solid black">
<tr>
<form name="register" method="post" action="login.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong><center>Login </center></strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input type="text" name="user" id="user"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input type="password" name="pass" id="pass"></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input type="submit" name="submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
</html>
session_start();
require "config.php"; //Connection Script, include in every file!
//Check to see if the user is logged in.
if(isset($_SESSION['user'])){
header("location: members.php"); //isset check to see if a variables has been 'set'
}
if(isset($_POST['submit']))
{
//Variables from the table
$user = $_POST['user'];
$pass = sha1($_POST['pass']);
//Prevent MySQL Injections
$user = stripslashes($user);
$pass = stripslashes($pass);
$user = mysqli_real_escape_string($con, $user);
$pass = mysqli_real_escape_string($con, $pass);
//Check to see if the user left any space empty!
if($user == "" || $pass == "")
{
echo "Please fill in all the information!";
}
//Check to see if the username AND password MATCHES the username AND password in the DB
else
{
$query = mysqli_query($con,"SELECT * FROM members WHERE username = '$user' and password = '$pass'") or die("Can not query DB.");
$count = mysqli_num_rows($query);
if($count == 1){
//YES WE FOUND A MATCH!
$_SESSION['username'] = $user; //Create a session for the user!
header ("location: members.php");
}
else{
echo "Username and Password DO NOT MATCH! TRY AGAIN!";
}
}
}
?>
<html>
<table width="300" align="center" cellpadding="0" cellspacing="1" border="1px solid black">
<tr>
<form name="register" method="post" action="login.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong><center>Login </center></strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input type="text" name="user" id="user"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input type="password" name="pass" id="pass"></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input type="submit" name="submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
</html>
En in die members(admin) staat:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
session_start();
require "config.php"; //Connection Script, include in every file!
//Controleerd of de gebruiker is ingelogt.
if(isset($_SESSION['username'])){
echo "Hello ".$_SESSION['username']." <a href='logout.php'>Uit loggen</a>.";
}
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
include ("../../includes/admin_header.php");
include ("../../includes/config.php");
include ("../../includes/verwerk.php");
?>
</head>
<body>
session_start();
require "config.php"; //Connection Script, include in every file!
//Controleerd of de gebruiker is ingelogt.
if(isset($_SESSION['username'])){
echo "Hello ".$_SESSION['username']." <a href='logout.php'>Uit loggen</a>.";
}
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
include ("../../includes/admin_header.php");
include ("../../includes/config.php");
include ("../../includes/verwerk.php");
?>
</head>
<body>
En in die members2(admin) staat:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
session_start();
require "config.php";
//Controleerd of de gebruiker is ingelogt.
if(isset($_SESSION['username'])){
echo '<h2 align="center"><br /><font color="red">'; echo "Hello ".$_SESSION['username'].", <br /><a href='logout.php'>Klik Om uit loggen.</a></>";
}
else{
echo '<h2 align="center"><br /><font color="red">Please <a href="login.php">Log In </a> Om de Admin pagina te openen!';
}
?>
session_start();
require "config.php";
//Controleerd of de gebruiker is ingelogt.
if(isset($_SESSION['username'])){
echo '<h2 align="center"><br /><font color="red">'; echo "Hello ".$_SESSION['username'].", <br /><a href='logout.php'>Klik Om uit loggen.</a></>";
}
else{
echo '<h2 align="center"><br /><font color="red">Please <a href="login.php">Log In </a> Om de Admin pagina te openen!';
}
?>
En verder niks
PS.
ik heb dat oude script ff op gezocht en gezien dat het inlog gebeuren zonder database ging, en met cookies
Gewijzigd op 29/08/2013 01:55:15 door Niek Kasius
Niek Kasius op 29/08/2013 01:19:19:
Maar nu met php5.4 en mysqli krijg ik dat niet voor mekaar.
Wat lukt er niet dan?
T.a.v. de code:
Zet error-reporting in elk script en helemaal boven aan (na session_start).
Om te controleren of een formulier verzonden is:
ipv $_POST['submit']
Na header -> exit;
Je controleert niet of de variabelen $_POST['user'] en $_POST['pass'] bestaan.
Waarom nieuwe variabelen aanmaken obv $_POST-waarden?
Waarom stripslashes bij een wachtwoord?
mysqli_real_escape_string gebruik je _in_ een query.
Wat gebeurt er als beide velden leeg zijn (op regel 24)?
Gebruik geen * maar benoem het veld/de velden die je wilt opvragen.
Variabelen buiten quotes in een query.
Waar is de foutafhandeling van de query (geen or die aub, jij gaat toch ook niet dood als je een keer iets fout doet?!)?
Voor die tip van exit();
Het werkt nu,
En op regel 24 als ik geen naam en of wachtwoord invul krijg ik: Please fill in all the information! en als de naam of wachtwoord verkeerd invul, krijg ik: Username and Password DO NOT MATCH! TRY AGAIN!
Dus een controle zit er wel op.
Het zou nog beter kunnen door de naam en wachtwoord gescheiden weer te geven als die fout is, maar ik hen hier al erg tevreden mee.
Oh ja en de config heb is ook veranderd dus geen or die meer.
Code (php)
Gewijzigd op 31/08/2013 02:45:30 door Niek Kasius
Het inloggen werkt wel goed, maar ik kan inloggen met en of zonder hoofdletters, Dus bijvoorbeeld Niek, niek, nIeK, NIeK enz, enz. en dat is niet de bedoeling, met het wachtwoord gaat het wel goed.
Gewijzigd op 01/09/2013 17:44:47 door Niek Kasius
Lees mijn topic eens door.
http://www.phphulp.nl/php/forum/topic/hoe-maak-ik-mysql-case-sensitive/91993/
dat werkt.
Eddy E!
Ja was het maar zo gemakkelijk, dat gaat voor sommige scripts blijkbaar niet op.
Want dit was het orgineel
{code]
stand.php
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$stand_sql="SELECT id, team, punten, wedstrijden, winst, verlies, gelijk, caramboles, maken, beurten, moyenne, percent, voor, tegen, punten, ROUND(voor/maken, 2) AS percent, ROUND(voor/beurten, 2) AS moyenne FROM stand ORDER BY punten DESC";
$uitslag_resultaat = mysql_query($stand_sql) or die(sql_error());
while($uitslag = mysql_fetch_array($uitslag_resultaat))
{
?>
$stand_sql="SELECT id, team, punten, wedstrijden, winst, verlies, gelijk, caramboles, maken, beurten, moyenne, percent, voor, tegen, punten, ROUND(voor/maken, 2) AS percent, ROUND(voor/beurten, 2) AS moyenne FROM stand ORDER BY punten DESC";
$uitslag_resultaat = mysql_query($stand_sql) or die(sql_error());
while($uitslag = mysql_fetch_array($uitslag_resultaat))
{
?>
En heb dit heb veranders in dit, en dat werkt wel,
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function sql_query($query)
{
global $conn; // of $link of wat je db-connectie ook is
return mysqli_query($conn, $query);
}
$stand_mysqli = "SELECT id, team, punten, wedstrijden, winst, verlies, gelijk, caramboles, maken, beurten, moyenne, percent,
voor, tegen, punten, ROUND(voor/maken, 2) AS percent, ROUND(voor/beurten, 2) AS moyenne FROM stand ORDER BY punten DESC";
$uitslag_resultaat = sql_query($stand_mysqli) or die(mysqli_error());
while($uitslag = mysqli_fetch_array($uitslag_resultaat))
{
?>
function sql_query($query)
{
global $conn; // of $link of wat je db-connectie ook is
return mysqli_query($conn, $query);
}
$stand_mysqli = "SELECT id, team, punten, wedstrijden, winst, verlies, gelijk, caramboles, maken, beurten, moyenne, percent,
voor, tegen, punten, ROUND(voor/maken, 2) AS percent, ROUND(voor/beurten, 2) AS moyenne FROM stand ORDER BY punten DESC";
$uitslag_resultaat = sql_query($stand_mysqli) or die(mysqli_error());
while($uitslag = mysqli_fetch_array($uitslag_resultaat))
{
?>
Maar bij een ander script werkt het blijkbaar niet.
uitslagen.php
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$datum = '%d-%m-%Y';
$uitslag_query = "SELECT * FROM wedstrijden ORDER BY id ASC";
$uitslag_resultaat = mysql_query($uitslag_query) or die(mysql_error());
while($uitslag = mysql_fetch_array($uitslag_resultaat))
{
?>
$datum = '%d-%m-%Y';
$uitslag_query = "SELECT * FROM wedstrijden ORDER BY id ASC";
$uitslag_resultaat = mysql_query($uitslag_query) or die(mysql_error());
while($uitslag = mysql_fetch_array($uitslag_resultaat))
{
?>
veranderd naar en dat werkt niet.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function sql_query($query)
{
global $conn; // of $link of wat je db-connectie ook is
return mysqli_query($conn, $query);
}
$datum = '%d-%m-%Y';
$uitslag_mysqli_query = "SELECT * FROM wedstrijden ORDER BY id ASC";
$uitslag_resultaat = sql_query($uitslag_mysqli_query) or die(mysqli_error());
while($uitslag = mysqli_fetch_array($uitslag_resultaat))
{
?>
function sql_query($query)
{
global $conn; // of $link of wat je db-connectie ook is
return mysqli_query($conn, $query);
}
$datum = '%d-%m-%Y';
$uitslag_mysqli_query = "SELECT * FROM wedstrijden ORDER BY id ASC";
$uitslag_resultaat = sql_query($uitslag_mysqli_query) or die(mysqli_error());
while($uitslag = mysqli_fetch_array($uitslag_resultaat))
{
?>
Dan krijg ik 2 meldingen.
SCREAM: Error suppression ignored for
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\wamp\www\inloggen\uitslagen.php on line 35
En
SCREAM: Error suppression ignored for
Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\wamp\www\inloggen\uitslagen.php on line 40
Ps.
regel 35 is hier regel 6 en regel 40 is dan 11
Gewijzigd op 03/09/2013 02:37:46 door Niek Kasius