inlog en registratie systeem php
Melissa Heijligers op 12/07/2013 14:12:22:
maar dan verwacht ik dat ik in latere stappen ook leer over hoe je iets met het wachtwoord en email doet.
Ik snap nog steeds niet wat je hier mee bedoelt? (Wat wil je met het wachtwoord en e-mail?)
Als je bij het begin begint, verruim je je kennis, en kan je uiteindelijk doen wat je wilt bereiken. Alle geleerde kennis kan je dan goed toepassen.
Je kan natuurlijk ook voor je verjaardag een boekenbon/geld vragen, als je het niet mag kopen. Of je downloadt ergens een e-book.
Gewijzigd op 12/07/2013 14:17:31 door - Ariën -
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
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
if ($_SERVER['REQUEST_METHOD']=="POST")
{
$Gebruikersnaam = trim($_POST['Gebruikersnaam']);
if (strlen($Gebruikersnaam) < 3) {
$fout[] = 'Gebruikersnaam moet minimaal 3 karakters bevatten.';
}
if (strlen($Gebruikersnaam) >30) {
$fout[] = 'Gebruikersnaam moet maximaal 30 karakters bevatten.';
}
if (!get_magic_quotes_gpc()) {
$_POST[] = addslashes($_POST['Gebruikersnaam']);
}
$ControleerGebruiker = $_POST['Gebruikersnaam'];
$Controleer = mysql_query("SELECT gebruikersnaam FROM gebruikers WHERE gerbuikersnaam='$ControleerGebruiker'")or die (mysql_error());
$Controleer2 = mysql_num_rows($Controleer);
if ($Controleer2 != 0) {
$fout[] = "Sorry, de gebruikersnaam <strong>'.$_POST['Gebruikersnaam'].'</strong> is al in gebruik.";
}
if (!$fout ) {
$Gebruikersnaam = mysql_real_escape_string($Gebruikersnaam);
$Gebruikersnaam = strip_tags($Gebruikersnaam);
}
{
$Gebruikersnaam = trim($_POST['Gebruikersnaam']);
if (strlen($Gebruikersnaam) < 3) {
$fout[] = 'Gebruikersnaam moet minimaal 3 karakters bevatten.';
}
if (strlen($Gebruikersnaam) >30) {
$fout[] = 'Gebruikersnaam moet maximaal 30 karakters bevatten.';
}
if (!get_magic_quotes_gpc()) {
$_POST[] = addslashes($_POST['Gebruikersnaam']);
}
$ControleerGebruiker = $_POST['Gebruikersnaam'];
$Controleer = mysql_query("SELECT gebruikersnaam FROM gebruikers WHERE gerbuikersnaam='$ControleerGebruiker'")or die (mysql_error());
$Controleer2 = mysql_num_rows($Controleer);
if ($Controleer2 != 0) {
$fout[] = "Sorry, de gebruikersnaam <strong>'.$_POST['Gebruikersnaam'].'</strong> is al in gebruik.";
}
if (!$fout ) {
$Gebruikersnaam = mysql_real_escape_string($Gebruikersnaam);
$Gebruikersnaam = strip_tags($Gebruikersnaam);
}
maar met wachtwoord en email weet ik niet hoe dat op die manier moet, ik weet wel hoe het op deze manier moet zoals er staat:
Code (php)
1
2
3
4
5
2
3
4
5
if(empty($_POST['Wachtwoord'])) {
$fout[] = 'Er is geen wachtwoord opgegeven.';
} elseif($_POST['wachtwoord'] != $_POST['wachtwoord_herh']) {
$fout[] = 'De wachtwoorden komen niet overeen.';
}
$fout[] = 'Er is geen wachtwoord opgegeven.';
} elseif($_POST['wachtwoord'] != $_POST['wachtwoord_herh']) {
$fout[] = 'De wachtwoorden komen niet overeen.';
}
hier zit ik vast:
Dit schiet gewoon niet op....
Begin nou gewoon bij het begin, dat advies is je al vaker gegeven.
Leer PHP en bouw eens wat zelf, dan heb je meer controle over het script.
Gewijzigd op 12/07/2013 14:30:06 door - Ariën -
dus ik begon met $Wachtwoord = trim($_POST['Wachtwoord']);
net als derest dus dit is het begin van wachtwoord, dit moet ook bij mail, maar ik begin met wachtwoord, het systeem moet kijken of het wachtwoord hetzelfde is, maar dit stuk kan ik niet veranderen, ik weet niet hoe ik dat verander in script zoals ik derest heb, want ik heb het zo geleerd met $fout [] erin.
Dus vroeg ik me af of ook dit onderdeel te leren valt ergens, maar ik vind het nergens toen ik het doorlas, want dat is de reden waarom ik eerst doorlees en dan pas ga leren.
Tuurlijk wil ik bij het begin beginnen, maar ik wil wel goed beginnen, dus niet dat ik straks iets leer wat ik niet kan toepassen aan mijn php scripts.
Quote:
maar ik vind het nergens toen ik het doorlas...
Alleen doorlezen, daar heb je niks aan.
In dit topic zijn nu wel genoeg handgrepen, tips en know-how's genoemd om de basis van PHP te leren.
Neem de tijd, en over een maand ofzo kan je wel de eerste stappen met MySQL maken, en een eigen registratieformulier maken.
Gewijzigd op 12/07/2013 15:00:52 door - Ariën -
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
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
<?php
$Wachtwoord = trim($_POST['Wachtwoord']);
if (strlen($Wachtwoord) < 3) {
$fout[] = 'Wachtwoord moet minimaal 3 karakters bevatten.';
}
if (strlen($Wachtwoord) > 20) {
$fout[] = 'Wachtwoord moet maximaal 20 karakters bevatten.';
}
$Wachtwoord2 = trim($_POST['Wachtwoord2']);
if (strlen($Wachtwoord2) < 3) {
$fout[] = 'Wachtwoord moet minimaal 3 karakters bevatten.';
}
if (strlen($Wachtwoord2) > 20) {
$fout[] = 'Wachtwoord moet maximaal 20 karakters bevatten.';
}
if ($_POST['Wachtwoord'] != $_POST['Wachtwoord2']) {
$fout[] = 'Wachtwoord komen niet overeen.';
}
$Wachtwoord = $_POST['Wachtwoord'};
$Wachtwoord = addslashes($Wachtwoord);
$Wachtwoord = mysql_real_escape_string($Wachtwoord);
$Wachtwoord = strip_tags($Wachtwoord);
?>
$Wachtwoord = trim($_POST['Wachtwoord']);
if (strlen($Wachtwoord) < 3) {
$fout[] = 'Wachtwoord moet minimaal 3 karakters bevatten.';
}
if (strlen($Wachtwoord) > 20) {
$fout[] = 'Wachtwoord moet maximaal 20 karakters bevatten.';
}
$Wachtwoord2 = trim($_POST['Wachtwoord2']);
if (strlen($Wachtwoord2) < 3) {
$fout[] = 'Wachtwoord moet minimaal 3 karakters bevatten.';
}
if (strlen($Wachtwoord2) > 20) {
$fout[] = 'Wachtwoord moet maximaal 20 karakters bevatten.';
}
if ($_POST['Wachtwoord'] != $_POST['Wachtwoord2']) {
$fout[] = 'Wachtwoord komen niet overeen.';
}
$Wachtwoord = $_POST['Wachtwoord'};
$Wachtwoord = addslashes($Wachtwoord);
$Wachtwoord = mysql_real_escape_string($Wachtwoord);
$Wachtwoord = strip_tags($Wachtwoord);
?>
Puzzel hier maar mee Melissa.. Probeer het te begrijpen hoe if() werkt en waar je dit allemaal precies moet plaatsen. Een tipje, als je sommige karakters niet in wachtwoord wilt toestaan (Geldt overigens ook voor gebruikersnaam) kun je preg_match gebruiken of een class daarvoor, ook mogelijk.
Note: Dit is normaliter niet hoe ik het zou doen, maar ik hou het liever simpel voor melissa, zodat ze basis php kan leren.
Gewijzigd op 12/07/2013 17:29:00 door DavY -
Als je gewoon eerst test of de twee wachtwoorden gelijk aan elkaar zijn, dan is de helft van je checks niet meer nodig.... je begrijpt neem ik aan wel wat ik dan bedoel.
Slim (lees: efficient) programmeren is ook een onderdeel van goed programmeren.
DavY Blaat op 12/07/2013 17:28:08:
Note: Dit is normaliter niet hoe ik het zou doen, maar ik hou het liever simpel voor melissa, zodat ze basis php kan leren.
Maar op deze manier gaat iemand zich dus dingen fout aanleren :(
Begin met stap 1 die Erwin H aangeeft: vergelijk of ze gelijk zijn.
Ten aanzien van de code:
Geen controle of $_POST waarde bestaat.
Waarom variabele kopiëren (regel 3)?
Waarom trim bij een wachtwoord?
Regel 26 kopieer je nogmaals de $_POST waarde (nu zonder trim).
Daarna laat je er drie bewerkingen op los. mysql_real_escape_string gebruik je in een query en laat je niet los op een variabele. De beide andere bewerkingen zijn niet nodig (bij gebruik van mysql_real_escape_string).
Niet onbelangrijkste om te vermelden: een wachtwoord nooit onbeveiligd opslaan!
en zowiezo Davy blaat, bedankt nu snap ik hem, nu kan ik email ook beter maken, maar eerst ga ik eens de stappen leren en dan ga ik jouw script stukje voor stukje toepassen, dan snap ik het nog beter :D
Toevoeging op 12/07/2013 21:38:32:
wat gebruik je trouwens voor email dus dat ie controleerd of het bestaat
Toevoeging op 12/07/2013 21:58:34:
hier ben ik gebleven, ik weet niet hoe die moet zoeken hoe die kijkt of het mail adres al in gebruik is:
Gooi dit script in de ijskast, en begin bij het begin zoals de rest al heeft uitgelegd.
Jij wilt nu dus in een Ferrari Testarossa rijden, terwijl je nog geen enig idee hebt hoe je ermee weg moet rijden. Reguliere expressies zoals dat heten waarmee je mail wordt gevalideerd, komen pas in hoofdstuk 8 voor of iets dergelijks, en daar ben je nog lange na niet.
Wederom wordt er weer advies in de wind geslagen en genegeerd dus beëindig ik maar weer het topic.
Jammer, maar helaas.
Laat nou eens gewoon zien dat je iets met onze adviezen doet, dan blijft het topic gewoon open.
Lukt dat niet, besteed je opdracht dan uit ofzo.....