Registreer pagina maken website
Kan iemand mij helpen?
de code is als volgt:
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
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
<?php
//functie om wachtwoorden te genereren
include_once('genereer_wachtwoord.fct.php');
//controleer of formulier verzonden
if (!empty($_POST)) {
//genereer nieuw wachtwoord
$wachtwoord = genereer_wachtwoord(8);
//stel afzender en bericht op
$afzender = 'From: [email protected]' . $_SERVER['SERVER_NAME'] . ' <[email protected]' . $_SERVER['SERVER_NAME'] . '>';
$onderwerp = 'Nieuw account';
$bericht = 'Je gebruikersnaam is:
' . $_POST['gebruikersnaam'] . '
Je wachtwoord is:
' . $wachtwoord;
//genereer hash
$wachtwoord = hash('sha256', $wachtwoord);
//query om nieuwe gebruiker in te voegen
//als gebruikersnaam al bestaat zal query vanzelf mislukken, omdat `gebruikersnaam` een unieke sleutel is
$sql = "INSERT INTO `gebruikers`
SET
`gebruikersnaam` = '" . mysqli_real_escape_string($link, $_POST['gebruikersnaam']) . "',
`wachtwoord` = '" . mysqli_real_escape_string($link, $wachtwoord) . "',
`email` = '" . mysqli_real_escape_string($link, $_POST['email']) . "' ";
//voer query uit
if (mysqli_query($link, $sql)) {
//stuur email
$verzonden = mail($_POST['email'], $onderwerp, $bericht, $afzender);
}
else {
//er is geen gebruiker
$gebruikersnaam_fout = TRUE;
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Nieuwe gebruiker</title>
</head>
<body>
<h1>Nieuwe gebruiker</h1>
<?php
if ($gebruikersnaam_fout === TRUE) {
echo '<p class="error">De ingevulde gebruikersnaam bestaat al.</p>';
}
if ($verzonden === TRUE) {
echo '<p class="succes">Er is een nieuw account gemaakt en de gegevens zijn naar het opgegeven e-mailadres gestuurd.</p>';
}
?>
<form method="post">
<table>
<tr><td>Gebruikersnaam:</td><td><input type="text" name="gebruikersnaam"></td></tr>
<tr><td>E-mailadres:</td><td><input type="text" name="email"></td></tr>
<tr><td></td><td><input type="submit" value="Maak account"></td></tr>
</table>
</form>
</body>
</html>
//functie om wachtwoorden te genereren
include_once('genereer_wachtwoord.fct.php');
//controleer of formulier verzonden
if (!empty($_POST)) {
//genereer nieuw wachtwoord
$wachtwoord = genereer_wachtwoord(8);
//stel afzender en bericht op
$afzender = 'From: [email protected]' . $_SERVER['SERVER_NAME'] . ' <[email protected]' . $_SERVER['SERVER_NAME'] . '>';
$onderwerp = 'Nieuw account';
$bericht = 'Je gebruikersnaam is:
' . $_POST['gebruikersnaam'] . '
Je wachtwoord is:
' . $wachtwoord;
//genereer hash
$wachtwoord = hash('sha256', $wachtwoord);
//query om nieuwe gebruiker in te voegen
//als gebruikersnaam al bestaat zal query vanzelf mislukken, omdat `gebruikersnaam` een unieke sleutel is
$sql = "INSERT INTO `gebruikers`
SET
`gebruikersnaam` = '" . mysqli_real_escape_string($link, $_POST['gebruikersnaam']) . "',
`wachtwoord` = '" . mysqli_real_escape_string($link, $wachtwoord) . "',
`email` = '" . mysqli_real_escape_string($link, $_POST['email']) . "' ";
//voer query uit
if (mysqli_query($link, $sql)) {
//stuur email
$verzonden = mail($_POST['email'], $onderwerp, $bericht, $afzender);
}
else {
//er is geen gebruiker
$gebruikersnaam_fout = TRUE;
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Nieuwe gebruiker</title>
</head>
<body>
<h1>Nieuwe gebruiker</h1>
<?php
if ($gebruikersnaam_fout === TRUE) {
echo '<p class="error">De ingevulde gebruikersnaam bestaat al.</p>';
}
if ($verzonden === TRUE) {
echo '<p class="succes">Er is een nieuw account gemaakt en de gegevens zijn naar het opgegeven e-mailadres gestuurd.</p>';
}
?>
<form method="post">
<table>
<tr><td>Gebruikersnaam:</td><td><input type="text" name="gebruikersnaam"></td></tr>
<tr><td>E-mailadres:</td><td><input type="text" name="email"></td></tr>
<tr><td></td><td><input type="submit" value="Maak account"></td></tr>
</table>
</form>
</body>
</html>
alvast bedankt!
Gewijzigd op 20/03/2017 16:58:43 door - Ariën -
Verder heb ik je code tussen [code] en [/code] tags gezet, zodat het beter leesbaarder is.
ZOu je dit in het vervolg willen doen? Alvast bedankt.
het gaat om de fout meldingen
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /home/u255455051/public_html/register.php on line 23
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /home/u255455051/public_html/register.php on line 24
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /home/u255455051/public_html/register.php on line 25
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /home/u255455051/public_html/register.php on line 27
Waar is je connectie met MySQL/MariaDB en je database?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
//bestand met databasegegevens
$db['server'] = 'mysql.hostinger.nl';
$db['user'] = '*******';
$db['password'] = '****';
$db['database'] = 'u255455051_*';
?>
//bestand met databasegegevens
$db['server'] = 'mysql.hostinger.nl';
$db['user'] = '*******';
$db['password'] = '****';
$db['database'] = 'u255455051_*';
?>
Gewijzigd op 20/03/2017 17:12:00 door - Ariën -
ow. is dat de fout... hoe zou ik dit er in kunnen verwerken?
Klik op de link, en zie.... ;)
alleen krijg nog steeds dezelfde foutmeldingen
Hoe heb je die mysqli_connect toegepast?
Code (php)
1
2
3
4
2
3
4
//include database gegevens en array met beheerder-id's
include('config.inc.php');
//verbind met server
$link = mysqli_connect($db['server'], $db['user'], $db['password'], $db['database']);
include('config.inc.php');
//verbind met server
$link = mysqli_connect($db['server'], $db['user'], $db['password'], $db['database']);
verder werkt het nu wel om een gebruiker toetevoegen
alleen nu lukt het nog niet om een mail te sturen
Toevoeging op 20/03/2017 17:28:42:
- Ariën - op 20/03/2017 17:23:30:
Hoe heb je die mysqli_connect toegepast?
ik had een foutje gemaakt in de php daarom wilde hij niet connecten. maar nu werkt alleen het mailen nog niet
Toevoeging op 20/03/2017 17:31:15:
ik heb het voor elkaar gekregen. bedankt voor uw hulp
http://wiki.phpbeginners.nl/index.php?title=De_juiste_mailheaders
Verder is $headers een betere naam voor de huidige variabele $afzender. Want headers zijn immers meer dan een afzender. Zorg ook dat je controleert of $verzonden true is. (if en else).
Nog even een puntje: Let er ook op dat als je query niet uitgevoerd wordt dat dit niet betekent dat er geen gebruiker gevonden is. Eigenlijk zou je op dit punt een mysqli_error moeten tonen. (lijn 32)
Controlere of een record (een user bijv.) bestaat doe je met mysqli_num_rows.
Gewijzigd op 20/03/2017 17:33:34 door - Ariën -