klein fout classje
$this->error->foutjeis("bladiebla");
Code (php)
Zo wordt ie aangeroepen
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
session_start();
include_once "foutbestandje.class.php"; //fout probleempje class
if(!empty($_POST["submit"])){
$username=$_POST["gebruikersnaam"];
$wachtwoord=$_POST["password"];
$foutje = new Foutje();
}
?>
session_start();
include_once "foutbestandje.class.php"; //fout probleempje class
if(!empty($_POST["submit"])){
$username=$_POST["gebruikersnaam"];
$wachtwoord=$_POST["password"];
$foutje = new Foutje();
}
?>
Ergens in de html staat dit:
Code (php)
Waarom werkt dit niet en laat het de fout niet zien?
Alvast bedankt.
Arnold
[code]-tags toegevoegd, graag in het vervolg alle code tussen [code] en [/code] zetten. Alvast bedankt![/modedit]
Gewijzigd op 30/03/2014 21:03:49 door Wouter J
Welke tekst?5
Dat heb ik als tekst wat alleen getoond wordt als er niks ingevoerd is.
Bij het aanroepen wordt daaronder een loginclass aangeroepen die de fout aanmaakt.
Toevoeging op 30/03/2014 21:30:04:
class bestandje 1:
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
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
Verkleind login clasje 2
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
include_once "foutje.class.php"; //error fout probleem class
class Login{
public $error;
function __construct(){
$this->error = new Foutje();
$this->error->foutjeis("Foute gebruikersnaam of wachtwoord");
}
}
?>
include_once "foutje.class.php"; //error fout probleem class
class Login{
public $error;
function __construct(){
$this->error = new Foutje();
$this->error->foutjeis("Foute gebruikersnaam of wachtwoord");
}
}
?>
Het PHP/HTML loginbestandje 3
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
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
<?php
session_start();
include_once "login.class.php"; //implementeerd het bestand login.class.php in deze pagina
include_once "foutje.class.php"; //fout probleempje class
if(!empty($_POST["submit"])){ //als er op Login gedrukt wordt voer dit uit
$foutje = new Foutje();
$login= new Login();
}
?>
<table width="325" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="bladiebla" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr><td colspan="3"><font size="2"><i>Na deze site wordt er gebruik gemaakt van <a target="_blank" href="sessievspermanent.html">sessie cookies </a></i></font></td></tr>
<tr>
<td colspan="3"><strong>Login </strong> </td></tr>
<!-- waar het getoond dient te worden -->
<tr><td colspan="3"><font color="red"> <?php if (!empty($_POST["submit"])){ $foutje->geeffout(); } ?> </font> </td> </tr>
<tr>
<td width="78">Gebruikersnaam</td>
<td width="6">:</td>
<td width="294"><input name="loos" type="text" id="geenpaspoort"></td>
</tr>
<tr>
<td>Wachtwoord</td>
<td>:</td>
<td><input name="less" type="password" id="andersdanpaspoort"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="submit" value="Login"></td>
</tr>
<tr>
<td><a href="klik/klikker.php">Registreer</a></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
session_start();
include_once "login.class.php"; //implementeerd het bestand login.class.php in deze pagina
include_once "foutje.class.php"; //fout probleempje class
if(!empty($_POST["submit"])){ //als er op Login gedrukt wordt voer dit uit
$foutje = new Foutje();
$login= new Login();
}
?>
<table width="325" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="bladiebla" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr><td colspan="3"><font size="2"><i>Na deze site wordt er gebruik gemaakt van <a target="_blank" href="sessievspermanent.html">sessie cookies </a></i></font></td></tr>
<tr>
<td colspan="3"><strong>Login </strong> </td></tr>
<!-- waar het getoond dient te worden -->
<tr><td colspan="3"><font color="red"> <?php if (!empty($_POST["submit"])){ $foutje->geeffout(); } ?> </font> </td> </tr>
<tr>
<td width="78">Gebruikersnaam</td>
<td width="6">:</td>
<td width="294"><input name="loos" type="text" id="geenpaspoort"></td>
</tr>
<tr>
<td>Wachtwoord</td>
<td>:</td>
<td><input name="less" type="password" id="andersdanpaspoort"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="submit" value="Login"></td>
</tr>
<tr>
<td><a href="klik/klikker.php">Registreer</a></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
Vandaar mijn vraag "welke tekst" als in "welke tekst zou moeten verschijnen, aangezien je niets meegeeft".
En zoals ik het nu zie, doe je dat nog steeds niet.
in clasje2 vraag je de tekst niet op.
in loginbestandje3 set je geen tekst om te tonen. (ok, er zou nog Hoi moeten verschijnen?)
En verder:
ik zou de foutje-class niet zelf laten echo-en, maar een tekst (html) later retourneren.
Dan wordt het dus iets als
Voordeel is dan, dat je die tekst ook kunt mailen, loggen of iets anders leuks mee doen.
dit maakt een NIEUWE instantie van de class Foutje.
Ik kom dit een paar keer tegen in je snippets. Een aantal dingen vallen me op.
Als eerste zorg dat je goed gaat inspringen.
Dan je benamingen. Wat dacht je van:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
class Error
{
private $error; // gebruik private voor je properties!
public function setError($error)
{
$this->error = $error;
return $this; // geef ons eigen object terug bij setters dat is makkelijk voor later
}
public function getError()
{
return $this->error; // nooit geen echo gebruiken in methods. in plaats daarvan gewoon de tekst teruggeven!
}
}
$error = new Error();
$error->setError('Wat een enorme fouten!');
echo $error->getError();
?>
class Error
{
private $error; // gebruik private voor je properties!
public function setError($error)
{
$this->error = $error;
return $this; // geef ons eigen object terug bij setters dat is makkelijk voor later
}
public function getError()
{
return $this->error; // nooit geen echo gebruiken in methods. in plaats daarvan gewoon de tekst teruggeven!
}
}
$error = new Error();
$error->setError('Wat een enorme fouten!');
echo $error->getError();
?>
@Frank Nietbelangrijk bedankt voor de reactie maar het werkt helaas niet.
Het was ook niet mijn bedoeling om het uiteindelijk te echoën en heb het alleen maar gedaan om de fout te zoeken.
Nu heb ik dit als Error class
error.class.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
class Error
{
private $error; // gebruik private voor je properties!
public function setError($error)
{
$this->error = $error;
return $this; // geef ons eigen object terug bij setters dat is makkelijk voor later
}
public function getError()
{
return $this->error; // nooit geen echo gebruiken in methods. in plaats daarvan gewoon de tekst teruggeven!
}
}
?>
class Error
{
private $error; // gebruik private voor je properties!
public function setError($error)
{
$this->error = $error;
return $this; // geef ons eigen object terug bij setters dat is makkelijk voor later
}
public function getError()
{
return $this->error; // nooit geen echo gebruiken in methods. in plaats daarvan gewoon de tekst teruggeven!
}
}
?>
login.class.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
include_once "error.class.php"; //error fout probleem class
class Login{
public $error;
function __construct(){
$this->error = new Error();
$this->error->setError("Foute gebruikersnaam of wachtwoord");
}
}
?>
include_once "error.class.php"; //error fout probleem class
class Login{
public $error;
function __construct(){
$this->error = new Error();
$this->error->setError("Foute gebruikersnaam of wachtwoord");
}
}
?>
login.php
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
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
<?php
session_start();
include_once "login.class.php"; //implementeerd het bestand login.class.php in deze pagina
include_once "error.class.php"; //fout probleempje class
if(!empty($_POST["submit"])){ //als er op Login gedrukt wordt voer dit uit
$foutje = new Error();
$login= new Login();
}
?>
<table width="325" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="bladiebla" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr><td colspan="3"><font size="2"><i>Na deze site wordt er gebruik gemaakt van <a target="_blank" href="sessievspermanent.html">sessie cookies </a></i></font></td></tr>
<tr>
<td colspan="3"><strong>Login </strong> </td></tr>
<!-- waar het getoond dient te worden -->
<tr><td colspan="3"><font color="red"> <?php if (!empty($_POST["submit"])){ $foutje->getError(); } ?> </font> </td> </tr>
<tr>
<td width="78">Gebruikersnaam</td>
<td width="6">:</td>
<td width="294"><input name="loos" type="text" id="geenpaspoort"></td>
</tr>
<tr>
<td>Wachtwoord</td>
<td>:</td>
<td><input name="less" type="password" id="andersdanpaspoort"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="submit" value="Login"></td>
</tr>
<tr>
<td><a href="klik/klikker.php">Registreer</a></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
session_start();
include_once "login.class.php"; //implementeerd het bestand login.class.php in deze pagina
include_once "error.class.php"; //fout probleempje class
if(!empty($_POST["submit"])){ //als er op Login gedrukt wordt voer dit uit
$foutje = new Error();
$login= new Login();
}
?>
<table width="325" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="bladiebla" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr><td colspan="3"><font size="2"><i>Na deze site wordt er gebruik gemaakt van <a target="_blank" href="sessievspermanent.html">sessie cookies </a></i></font></td></tr>
<tr>
<td colspan="3"><strong>Login </strong> </td></tr>
<!-- waar het getoond dient te worden -->
<tr><td colspan="3"><font color="red"> <?php if (!empty($_POST["submit"])){ $foutje->getError(); } ?> </font> </td> </tr>
<tr>
<td width="78">Gebruikersnaam</td>
<td width="6">:</td>
<td width="294"><input name="loos" type="text" id="geenpaspoort"></td>
</tr>
<tr>
<td>Wachtwoord</td>
<td>:</td>
<td><input name="less" type="password" id="andersdanpaspoort"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="submit" value="Login"></td>
</tr>
<tr>
<td><a href="klik/klikker.php">Registreer</a></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
krijg je dan wel wat te zien?
Toevoeging op 30/03/2014 23:57:19:
in je login class maak je een instantie van de Error class.
Maar in je login.php maak je weer een andere instantie van de Error class.
Regel 11 van login.php kan dus weg.
en op Regel 26 moet je dan dit doen:
$login->error->getError();
Hetgeen geen nette oplossing is in mijn ogen. Je hebt namelijk de $error property public gemaakt in plaats van private waardoor mijn bovenstaande code werkt. ik vind dat je ook deze property private zou moeten maken maar dan werkt $login->error->getError(); niet meer. Dat kun je weer oplossen door aan de Login class een method getError() toe te voegen die dan netjes de $error property teruggeeft. inplaats van:
$login->error->getError();
schrijf je dan:
$login->getError()->getError();
Toevoeging op 31/03/2014 00:10:34:
nog even te term instantie of instantiëren verduidelijken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
// twee exact dezelfde strings:
$a = 'appel';
$b = 'appel';
$a = 'peer'; // nu zijn ze niet meer hetzelfde. toch?
// nu met classes:
$a = new Error();
$b = new Error();
$a->setError('dom foutje');
$b->setError('dom foutje');
$a->setError('een ander foutje'); // $a is veranderd. $b niet, dus verschillend.
?>
// twee exact dezelfde strings:
$a = 'appel';
$b = 'appel';
$a = 'peer'; // nu zijn ze niet meer hetzelfde. toch?
// nu met classes:
$a = new Error();
$b = new Error();
$a->setError('dom foutje');
$b->setError('dom foutje');
$a->setError('een ander foutje'); // $a is veranderd. $b niet, dus verschillend.
?>
Gewijzigd op 30/03/2014 23:58:12 door Frank Nietbelangrijk
Frank Nietbelangrijk op 30/03/2014 23:45:08:
$login->getError()->getError();
Sorry dat ik het zeg, maar deze regel code vind ik een gedrocht. Dit moet je als programmeur niet uit je vingers willen krijgen. Ik vind dat nog erger dan een opmerking als "nooit geen echo gebruiken" (en dat vind ik al onacceptabel taalgebruik voor een programmeur; het betekent dat je niets hebt begrepen van booleaanse algebra).
Nu snap ik in dit geval uberhaupt het toegevoegde nut van een Error-class niet, maar als je die per se wilt gebruiken, maak dan een method $login->getError() en laat die vervolgens $this->error->getError() teruggeven.
In de ene class:
Op de andere plek
Want uiteindelijk lijkt het vooral een schil om een 'bewaar een tekstje' script en is het niet echt een oo ding waar je een object voor nodig hebt
Toevoeging op 31/03/2014 03:27:54:
Nergens is oo voor nodig, maar als je eenmaal hebt besloten oo voor deze applicatie te gebruiken moet je ook alles in oo doen.
Wouter J op 31/03/2014 08:59:18:
als je eenmaal hebt besloten oo voor deze applicatie te gebruiken moet je ook alles in oo doen.
Op dit punt verschillen we duidelijk van mening. ;-)
Waarschijnlijk heb jij in je gereedschapskoffer geen schroevendraaiers, tangen, vijlen, inbussleutels en boren, maar alleen een hamer. Want als je eenmaal een hamer hebt gebruikt, moet je hem blijven gebruiken.
OO is niets meer of minder dan een stuk gereedschap. Voor bepaalde toepassingen kun je het prima gebruiken, voor andere toepassingen is het minder of zelfs ongeschikt. Software bestaat vaak uit meerdere componenten. Sommige van die componenten passen goed in een OO-jasje, en andere weer niet. Als je alleen maar OO't om te OO'en, ben je mijns inziens verkeerd bezig.
Dat zeg ik ook niet en ben ik het ook helemaal mee eens. Ik zeg alleen dat als je eenmaal voor je project hebt gekozen om OO te gebruiken, je het ook overal in dat project moet gaan gebruiken. Ik moet er niet aan denken om 1 project met een beetje OO, beetje procedureel en een beetje functioneel aan te pakken. Be consistent :)
Dan zou je daar een singleton van moeten maken, met alle gezeur van dien.
Static is denk ik het handigste voor dit doel. Zeker aangezien dit functioneel niet zo heel veel meer lijkt te doen dat een string onthouden om later te kunnen weergeven / loggen.
Wouter J op 31/03/2014 11:54:03:
>> Als je alleen maar OO't om te OO'en, ben je mijns inziens verkeerd bezig.
Dat zeg ik ook niet en ben ik het ook helemaal mee eens. Ik zeg alleen dat als je eenmaal voor je project hebt gekozen om OO te gebruiken, je het ook overal in dat project moet gaan gebruiken. Ik moet er niet aan denken om 1 project met een beetje OO, beetje procedureel en een beetje functioneel aan te pakken. Be consistent :)
Dat zeg ik ook niet en ben ik het ook helemaal mee eens. Ik zeg alleen dat als je eenmaal voor je project hebt gekozen om OO te gebruiken, je het ook overal in dat project moet gaan gebruiken. Ik moet er niet aan denken om 1 project met een beetje OO, beetje procedureel en een beetje functioneel aan te pakken. Be consistent :)
Dat ga je dus situaties krijgen waarbij je bepaalde functionaliteit in je project geforceerd in OO gaat implementeren, terwijl OO daar helemaal niet voor geschikt is. Het is helemaal geen probleem om dan ook wat procedurele code te gebruiken. Dat heeft niets met consistentie te maken. Het wordt pas inconsistent als je soortgelijke situaties de ene keer OO oplost en de andere keer procedureel.
Als jij denkt dat ik er helemaal niets van begrijp dan denk je verkeerd. Ik verplaats mezelf echter in de situatie van de TS die waarschijnlijk echt voor het eerst probeert met classes te werken. OOP wil ik het nog helemaal niet noemen.
Jouw opmerking over geen echo in functies plaatsen is ook erg kort door de bocht. Ik weet wel dat er omstandigheden zijn waarin je het wel zou kunnen maar dat komt vanzelf wel goed tegen die tijd. (uiteindelijk zul je toch ergens je output kwijt moeten).
Ik vind het jammer, en dat is dan in het algemeen en niet persoonlijk gericht aan willem, dat iedereen hier vooral zijn eigen stem wil laten klinken. Mijn gevoel zegt dat we beginners en hobbyisten hier niet mee helpen.
Goed speciaal voor Willem: Jij bent echt de aller aller beste programmer van het board! (dat is toch wat je graag wilt horen?) Ik zou zeggen succes er mee :-)
Frank Nietbelangrijk op 31/03/2014 12:47:17:
Als jij denkt dat ik er helemaal niets van begrijp dan denk je verkeerd. Ik verplaats mezelf echter in de situatie van de TS die waarschijnlijk echt voor het eerst probeert met classes te werken. OOP wil ik het nog helemaal niet noemen.
Je hebt mij niet horen zeggen dat je er niets van begrijpt (in ieder geval niet in de context die jij bedoelt). Ik heb alleen gezegd dat ik die ene coderegel een gedrocht vind.
Als iemand voor het eerst probeert met classes te werken en het niet goed doet, moet je daar bovendien niet in meegaan. Het is over het algemeen gemakkelijker iets meteen goed aan te leren dan iets wat fout aangeleerd is later weer af te leren.
Quote:
Jouw opmerking over geen echo in functies plaatsen is ook erg kort door de bocht. Ik weet wel dat er omstandigheden zijn waarin je het wel zou kunnen maar dat komt vanzelf wel goed tegen die tijd. (uiteindelijk zul je toch ergens je output kwijt moeten).
Ook hier heb je me verkeerd begrepen. Ik had het niet over het gebruik van een echo in functies, maar over het affreuze gebruik van een dubbele ontkenning in het bijgevoegde commentaar. Als je een beetje bekend met met booleaanse algebra, dan zou je moeten weten dat "nooit geen" hetzelfde betekent als "altijd". In feite zei je dus: "altijd echo gebruiken in methods" en dát vind ik nou niet direct het meest waardevolle advies.
Quote:
Goed speciaal voor Willem: Jij bent echt de aller aller beste programmer van het board!
Fijn dat we het in ieder geval over één ding eens kunnen zijn. ;-)
Jullie zijn allemaal goede programmeurs en in ieder geval beter dan mij.
Helaas lukt het mij nog steeds niet.
Statische methoden zijn bij mij geheel onbekend.
Dit heb ik nu in het bestandje error.class.php staan
Code (php)
Dit in login.class.php
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
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
<?php
include_once "error.class.php"; //error fout probleem class
class Login{
public $bla;
function __construct(){
$this->bla = new Error();
$this->bla::set_error("Foute gebruikersnaam of wachtwoord");
}
[/code]
Dit in login.php
[code]<?php session_start();
include_once "login.class.php"; //implementeerd het bestand login.class.php in deze pagina
include_once "error.class.php"; //fout probleempje class
if(!empty($_POST["submit"])){ //als er op Login gedrukt wordt voer dit uit
$foutje = new Error();
$login= new Login();
}
?>
<table width="325" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="bladiebla" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr><td colspan="3"><font size="2"><i>Na deze site wordt er gebruik gemaakt van <a target="_blank" href="sessievspermanent.html">sessie cookies </a></i></font></td></tr>
<tr>
<td colspan="3"><strong>Login </strong> </td></tr>
<!-- waar het getoond dient te worden -->
<tr><td colspan="3"><font color="red"> <?php if (!empty($_POST["submit"])){ echo $foutje::get_error(); } ?> </font> </td> </tr>
<tr>
<td width="78">Gebruikersnaam</td>
<td width="6">:</td>
<td width="294"><input name="loos" type="text" id="geenpaspoort"></td>
</tr>
<tr>
<td>Wachtwoord</td>
<td>:</td>
<td><input name="less" type="password" id="andersdanpaspoort"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="submit" value="Login"></td>
</tr>
<tr>
<td><a href="klik/klikker.php">Registreer</a></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
include_once "error.class.php"; //error fout probleem class
class Login{
public $bla;
function __construct(){
$this->bla = new Error();
$this->bla::set_error("Foute gebruikersnaam of wachtwoord");
}
[/code]
Dit in login.php
[code]<?php session_start();
include_once "login.class.php"; //implementeerd het bestand login.class.php in deze pagina
include_once "error.class.php"; //fout probleempje class
if(!empty($_POST["submit"])){ //als er op Login gedrukt wordt voer dit uit
$foutje = new Error();
$login= new Login();
}
?>
<table width="325" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="bladiebla" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr><td colspan="3"><font size="2"><i>Na deze site wordt er gebruik gemaakt van <a target="_blank" href="sessievspermanent.html">sessie cookies </a></i></font></td></tr>
<tr>
<td colspan="3"><strong>Login </strong> </td></tr>
<!-- waar het getoond dient te worden -->
<tr><td colspan="3"><font color="red"> <?php if (!empty($_POST["submit"])){ echo $foutje::get_error(); } ?> </font> </td> </tr>
<tr>
<td width="78">Gebruikersnaam</td>
<td width="6">:</td>
<td width="294"><input name="loos" type="text" id="geenpaspoort"></td>
</tr>
<tr>
<td>Wachtwoord</td>
<td>:</td>
<td><input name="less" type="password" id="andersdanpaspoort"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="submit" value="Login"></td>
</tr>
<tr>
<td><a href="klik/klikker.php">Registreer</a></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
Gewijzigd op 31/03/2014 22:47:57 door unthinking majority
Arnold van der Meulen op 31/03/2014 21:54:02:
Iedereen bedankt voor de reacties.
Jullie zijn allemaal goede programmeurs en in ieder geval beter dan mij.
Helaas lukt het mij nog steeds niet.
Statische methoden zijn bij mij geheel onbekend.
Jullie zijn allemaal goede programmeurs en in ieder geval beter dan mij.
Helaas lukt het mij nog steeds niet.
Statische methoden zijn bij mij geheel onbekend.
Kijk dat bedoel ik nou. Arnold probeert het principe van classes te gebruiken, komt daarmee met een vraag op dit board en de termen vliegen om zijn oren!
- Statische methods
- Singletons
- OOP
- Scope
Ik zou als ik jou was de bovenste twee vergeten voorlopig.
De moed om je te helpen is ontnomen door ene Willem WijsNeus.
Gewijzigd op 31/03/2014 23:36:52 door Frank Nietbelangrijk
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
function __construct(){
error::set_error("Foute gebruikersnaam of wachtwoord");
}
?>
function __construct(){
error::set_error("Foute gebruikersnaam of wachtwoord");
}
?>
En op regel 29 niet en op 49 wordt het
modmelding
Heren, laten we de druk hier niet te hoog gaan opvoeren. Willen jullie, Frank en Willem, nog verder discussiëren over elkaars reactiewijzes, dan kan dat via een PM
Heren, laten we de druk hier niet te hoog gaan opvoeren. Willen jullie, Frank en Willem, nog verder discussiëren over elkaars reactiewijzes, dan kan dat via een PM
Gewijzigd op 01/04/2014 00:46:51 door Wouter J
Het werkt nu.
Iedereen onwijs erg bedankt voor alle reacties en hulp.
Statische methoden en singletons staan bij mij in een boek ook onder het
hoofdstuk OO-programmeren, geavanceerd