$vraagje[s]
ik ben nieuw met php en heb nu een code geschreven waarmee gebruikers zich kunnen registreren maar ik heb er wat vraagjes over.
(de form wordt naar zijn eigen pagina gepost)
1) Als ik met de database wil connecten dan werkt dat mbv de volgende waarden; (regel 55)
$User = 'root';
$Pass = 'mysql';
Waar kan ik deze veranderen zodat ik iets anders dan 'root' en 'mysql' kan gebruiken?
2)
Die mysql_query's heb ik gekopieerd uit phpMyAdmin.
Maar wat zijn dat voor vreemde quootjes die daar in staan? Heb ik die wel nodig en zo ja, hoe krijg ik die uit mijn toetsenbord?
3)
Als de gebruikers gegevens zijn toegevoegd aan de database dan wil ik (voorlopig) dat er een mailtje verstuurd wordt naar het Email adres onder de variabele $to (regel 74) maar het werkt niet. Wat moet ik doen?
4)
Kan ik het ook zonder javascript maken maar dat het wel hetzelfde werkt?
5)
Hoe kan ik het beter doen dan?
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<html>
<head>
<title>Registreren</title>
<script type="text/javascript">
function rood(idee) {
document.getElementById(idee).style.backgroundColor='#ff8888';
};
function wit(idee) {
document.getElementById(idee).style.backgroundColor='#ffffff';
};
function checkENsubmit()
{
wit('gebruikersnaam');
wit('wachtwoord');
wit('email');
var gnLength = document.getElementById('gebruikersnaam').value.length;
var wwLength = document.getElementById('wachtwoord').value.length;
var emLength = document.getElementById('email').value.length;
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var address = document.getElementById('email').value;
var goedAdres = reg.test(address);
if (gnLength<=1 || wwLength<=5 || emLength<=5) {
if (emLength<=5) {rood('email'); message('ongeldig E-mail adres'); };
if (wwLength<=5) {rood('wachtwoord'); message('wachtwoord moet minimaal 6 tekens bevatten'); };
if (gnLength<=1) {rood('gebruikersnaam'); message('gebruikersnaam moet minimaal 2 tekens bevatten'); };
};
else if (goedAdres == false) {rood('email'); message('ongeldig E-mail adres'); };
else {document.getElementById('formID').submit();};
};
function message(tekst) {
document.getElementById('messagePOST').innerHTML=tekst;
};
</script>
</head>
<body onload="document.getElementById('messagePOST').innerHTML=document.getElementById('messageGET').innerHTML;">
<?php
echo "<div id=\"messageGET\" style=\"display:none;\">";
if(!empty($_POST['gebruikersnaam']) && !empty($_POST['wachtwoord']) && !empty($_POST['email']))
{
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$Server = 'localhost';
$User = 'root';
$Pass = 'mysql';
$database = "database";
$connectie = mysql_connect( $Server, $User, $Pass );
if(!$connectie)
{
die (mysql_error());
}
$db_select = mysql_select_db($database,$connectie);
if(!$db_select)
{
die ( "database niet gevonden ". mysql_error());
}
mysql_query('CREATE TABLE IF NOT EXISTS `logintabel` (`gebruikersnaam` text NOT NULL, `wachtwoord` text NOT NULL, `email` text NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;');
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$to = 'myEmail';
$subject = 'Testbericht';
$message = '<b>Testbericht</b>, up?';
$headers = "From: [email protected]\r\n" .
'X-Mailer: PHP/' . phpversion() . "\r\n" .
"MIME-Version: 1.0\r\n" .
"Content-Type: text/html; charset=utf-8\r\n" .
"Content-Transfer-Encoding: 8bit\r\r\n";
$gebruikersnaam = $_POST['gebruikersnaam'];
$wachtwoord = $_POST['wachtwoord'];
$email = $_POST['email'];
$gebruikerBestaatAl = mysql_query('SELECT `gebruikersnaam` FROM `logintabel` WHERE `gebruikersnaam` = \''.$gebruikersnaam.'\' LIMIT 1 ');
$emailBestaatAl = mysql_query('SELECT `gebruikersnaam` FROM `logintabel` WHERE `email` = \''.$email.'\' LIMIT 1 ');
if(mysql_num_rows($gebruikerBestaatAl)!=0)
{echo "gebruikersnaam bestaat al";}
elseif(mysql_num_rows($emailBestaatAl)!=0)
{echo "dit E-mail adres is al geregistreerd";}
elseif(mysql_num_rows($gebruikerBestaatAl)==0 && mysql_num_rows($emailBestaatAl)==0)
{
$db_insert = mysql_query('INSERT INTO `database`.`logintabel` (`gebruikersnaam`, `wachtwoord`, `email`) VALUES (\''.$gebruikersnaam.'\', \''.$wachtwoord.'\', \''.$email.'\');');
echo "gebruiker toegevoegd";
mail($to, $subject, $message, $headers);
}
}
else {$gebruikersnaam = ""; $wachtwoord = ""; $email = "";}
echo "</div>";
echo "<form id=\"formID\" action=\"connect.php\" method=\"post\">";
echo "<table><tr>";
echo "<td>gebruikersnaam:</td>";
echo "<td><input name=\"gebruikersnaam\" id=\"gebruikersnaam\" type=\"text\" value=\"".$gebruikersnaam."\" /></td>";
echo "<td>(min. 2 tekens)</td>";
echo "</tr><tr>";
echo "<td>wachtwoord:</td>";
echo "<td><input name=\"wachtwoord\" id=\"wachtwoord\" type=\"text\" value=\"".$wachtwoord."\" /></td>";
echo "<td>(min. 6 tekens)</td>";
echo "</tr><tr>";
echo "<td>E-mail adres:</td>";
echo "<td><input name=\"email\" id=\"email\" type=\"text\" value=\"".$email."\" /></td>";
echo "<td></td>";
echo "</tr><tr>";
echo "<td></td>";
echo "<td><input type=\"button\" value=\"aanmelden\" onclick=\"message('_'); checkENsubmit();\" /></td>";
echo "<td id=\"messagePOST\" style=\"color:#ff0000;\"></td>";
echo "</tr></table>";
echo "</form>";
?>
</body>
</html>
<head>
<title>Registreren</title>
<script type="text/javascript">
function rood(idee) {
document.getElementById(idee).style.backgroundColor='#ff8888';
};
function wit(idee) {
document.getElementById(idee).style.backgroundColor='#ffffff';
};
function checkENsubmit()
{
wit('gebruikersnaam');
wit('wachtwoord');
wit('email');
var gnLength = document.getElementById('gebruikersnaam').value.length;
var wwLength = document.getElementById('wachtwoord').value.length;
var emLength = document.getElementById('email').value.length;
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var address = document.getElementById('email').value;
var goedAdres = reg.test(address);
if (gnLength<=1 || wwLength<=5 || emLength<=5) {
if (emLength<=5) {rood('email'); message('ongeldig E-mail adres'); };
if (wwLength<=5) {rood('wachtwoord'); message('wachtwoord moet minimaal 6 tekens bevatten'); };
if (gnLength<=1) {rood('gebruikersnaam'); message('gebruikersnaam moet minimaal 2 tekens bevatten'); };
};
else if (goedAdres == false) {rood('email'); message('ongeldig E-mail adres'); };
else {document.getElementById('formID').submit();};
};
function message(tekst) {
document.getElementById('messagePOST').innerHTML=tekst;
};
</script>
</head>
<body onload="document.getElementById('messagePOST').innerHTML=document.getElementById('messageGET').innerHTML;">
<?php
echo "<div id=\"messageGET\" style=\"display:none;\">";
if(!empty($_POST['gebruikersnaam']) && !empty($_POST['wachtwoord']) && !empty($_POST['email']))
{
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$Server = 'localhost';
$User = 'root';
$Pass = 'mysql';
$database = "database";
$connectie = mysql_connect( $Server, $User, $Pass );
if(!$connectie)
{
die (mysql_error());
}
$db_select = mysql_select_db($database,$connectie);
if(!$db_select)
{
die ( "database niet gevonden ". mysql_error());
}
mysql_query('CREATE TABLE IF NOT EXISTS `logintabel` (`gebruikersnaam` text NOT NULL, `wachtwoord` text NOT NULL, `email` text NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;');
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$to = 'myEmail';
$subject = 'Testbericht';
$message = '<b>Testbericht</b>, up?';
$headers = "From: [email protected]\r\n" .
'X-Mailer: PHP/' . phpversion() . "\r\n" .
"MIME-Version: 1.0\r\n" .
"Content-Type: text/html; charset=utf-8\r\n" .
"Content-Transfer-Encoding: 8bit\r\r\n";
$gebruikersnaam = $_POST['gebruikersnaam'];
$wachtwoord = $_POST['wachtwoord'];
$email = $_POST['email'];
$gebruikerBestaatAl = mysql_query('SELECT `gebruikersnaam` FROM `logintabel` WHERE `gebruikersnaam` = \''.$gebruikersnaam.'\' LIMIT 1 ');
$emailBestaatAl = mysql_query('SELECT `gebruikersnaam` FROM `logintabel` WHERE `email` = \''.$email.'\' LIMIT 1 ');
if(mysql_num_rows($gebruikerBestaatAl)!=0)
{echo "gebruikersnaam bestaat al";}
elseif(mysql_num_rows($emailBestaatAl)!=0)
{echo "dit E-mail adres is al geregistreerd";}
elseif(mysql_num_rows($gebruikerBestaatAl)==0 && mysql_num_rows($emailBestaatAl)==0)
{
$db_insert = mysql_query('INSERT INTO `database`.`logintabel` (`gebruikersnaam`, `wachtwoord`, `email`) VALUES (\''.$gebruikersnaam.'\', \''.$wachtwoord.'\', \''.$email.'\');');
echo "gebruiker toegevoegd";
mail($to, $subject, $message, $headers);
}
}
else {$gebruikersnaam = ""; $wachtwoord = ""; $email = "";}
echo "</div>";
echo "<form id=\"formID\" action=\"connect.php\" method=\"post\">";
echo "<table><tr>";
echo "<td>gebruikersnaam:</td>";
echo "<td><input name=\"gebruikersnaam\" id=\"gebruikersnaam\" type=\"text\" value=\"".$gebruikersnaam."\" /></td>";
echo "<td>(min. 2 tekens)</td>";
echo "</tr><tr>";
echo "<td>wachtwoord:</td>";
echo "<td><input name=\"wachtwoord\" id=\"wachtwoord\" type=\"text\" value=\"".$wachtwoord."\" /></td>";
echo "<td>(min. 6 tekens)</td>";
echo "</tr><tr>";
echo "<td>E-mail adres:</td>";
echo "<td><input name=\"email\" id=\"email\" type=\"text\" value=\"".$email."\" /></td>";
echo "<td></td>";
echo "</tr><tr>";
echo "<td></td>";
echo "<td><input type=\"button\" value=\"aanmelden\" onclick=\"message('_'); checkENsubmit();\" /></td>";
echo "<td id=\"messagePOST\" style=\"color:#ff0000;\"></td>";
echo "</tr></table>";
echo "</form>";
?>
</body>
</html>
Alvast bedankt, jullie worden beloond in het hiernamaals!
Gewijzigd op 01/01/1970 01:00:00 door Repelsteeltje
$Server = 'localhost';
$User = 'repelsteeltje';
$Pass = 'mijnwachtwoord';
$database = "database";
2) Die kunnen er gewoon blijven staan.
3) Gebruik de mail() functie -> klik
Gewijzigd op 01/01/1970 01:00:00 door Yearupie Achternaamloos
repelsteeltje schreef op 27.09.2009 19:38:
1) Als ik met de database wil connecten dan werkt dat mbv de volgende waarden; Waar kan ik deze veranderen zodat ik iets anders dan 'root' en 'mysql' kan gebruiken?
Als ik een database aanmaak worden deze automatisch toegewezen. Geen idee of je ze kunt wijzigen. Zou ze alleen niet zomaar in je script plaatsen, beter in een aparte file achter .htaccess.
repelsteeltje schreef op 27.09.2009 19:38:
2) Maar wat zijn dat voor vreemde quootjes die daar in staan? Heb ik die wel nodig en zo ja, hoe krijg ik die uit mijn toetsenbord?
Met een tandenborstel? Dat zit natuurlijk niet in je toetsenbord he? Welke quotes bedoel je nou precies?
repelsteeltje schreef op 27.09.2009 19:38:
3) Als de gebruikers gegevens zijn toegevoegd aan de database dan wil ik (voorlopig) dat er een mailtje verstuurd wordt naar het Email adres
Kijk eens naar swift-mailer.
repelsteeltje schreef op 27.09.2009 19:38:
function checkENsubmit()
Dit kan beter: checkANDsubmit()
Yearupie schreef op 27.09.2009 19:58:
2) Die kunnen er gewoon blijven staan.
Niet dus. Gewoon weghalen want dat zijn backtics.
Bart schreef op 27.09.2009 20:00:
Met een tandenborstel? Dat zit natuurlijk niet in je toetsenbord he? Welke quotes bedoel je nou precies?
repelsteeltje schreef op 27.09.2009 19:38:
2) Maar wat zijn dat voor vreemde quootjes die daar in staan? Heb ik die wel nodig en zo ja, hoe krijg ik die uit mijn toetsenbord?
Met een tandenborstel? Dat zit natuurlijk niet in je toetsenbord he? Welke quotes bedoel je nou precies?
De backtics. De toets links naast de 1 en dan een spatie.
Niet gebruiken is het juiste gebruik.
Yearupie schreef op 27.09.2009 19:58:
1) gewoon veranderen?
$Server = 'localhost';
$User = 'repelsteeltje';
$Pass = 'mijnwachtwoord';
$database = "database";
2) Die kunnen er gewoon blijven staan.
3) Gebruik de mail() functie -> klik
$Server = 'localhost';
$User = 'repelsteeltje';
$Pass = 'mijnwachtwoord';
$database = "database";
2) Die kunnen er gewoon blijven staan.
3) Gebruik de mail() functie -> klik
1) vreemd genooeg kan ik ze nu wel veranderen. Je hebt gelijk! Maar waar is dat dan voor die gebruikersnaam en wachtwoord?
3)op regel 99 doe ik een poging. Maar ik krijg geen mailtje (met mijn adres natuurlijk)
Gewijzigd op 01/01/1970 01:00:00 door repelsteeltje
SanThe schreef op 27.09.2009 20:11:
backticks
Oké .. 1) en 2) zijn dan opgelost
Thanx!
Gelieve Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door repelsteeltje
2) Dit zijn 'backticks', deze kun je vinden onder de tilde-toets ( ~ ), dit wordt toegepast om reserved SQL woorden te kunnen gebruiken, persoonlijk zou ik ze nooit gebruiken en goede tabel / procedure / view namen hanteren
3) Probeer eens PHPMailer, of Google eens, je kunt niet verwachten dat wij alles voor je doen
4) Kan wel met AJAX, maar wenselijk lijkt het mij niet.
5) Geen reactie.
Twan van der Poel schreef op 27.09.2009 20:19:
1) In jouw geval zou ik in PHPmyadmin in de welkomspagina op gebruikers klikken.
2) Dit zijn 'backticks', deze kun je vinden onder de tilde-toets ( ~ ), dit wordt toegepast om reserved SQL woorden te kunnen gebruiken, persoonlijk zou ik ze nooit gebruiken en goede tabel / procedure / view namen hanteren
3) Probeer eens PHPMailer, of Google eens, je kunt niet verwachten dat wij alles voor je doen
4) Kan wel met AJAX, maar wenselijk lijkt het mij niet.
5) Geen reactie.
2) Dit zijn 'backticks', deze kun je vinden onder de tilde-toets ( ~ ), dit wordt toegepast om reserved SQL woorden te kunnen gebruiken, persoonlijk zou ik ze nooit gebruiken en goede tabel / procedure / view namen hanteren
3) Probeer eens PHPMailer, of Google eens, je kunt niet verwachten dat wij alles voor je doen
4) Kan wel met AJAX, maar wenselijk lijkt het mij niet.
5) Geen reactie.
1) dit is mijn welkomsscherm van phpMyAdmin;
http://127.0.0.1/mysql/index.php?db=database&server=1&target=db_sql.php&token=8cb2b6d57ce98e3d2388898dc963078a
Ik vind daar geen gebruikers om op te klikken?
3) ik doe mijn best!
5)thanx
Ik kan natuuurlijk niet op jouw lokale server kijken.
[email protected]' een mailtje??
of niet?
Als ik die code uitvoer krijg ik de volgende melding;
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\EasyPHP 3.0\www\mailen.php on line 16
dus als je dan het volgende voorbeeld uit zou laten voeren dan krijgt 'of niet?
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$to = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
$to = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
Als ik die code uitvoer krijg ik de volgende melding;
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\EasyPHP 3.0\www\mailen.php on line 16
Gewijzigd op 01/01/1970 01:00:00 door repelsteeltje
Dus php.ini voorzien van het smtp server adres en nu geeft hij de volgende melding;
Quote:
Warning: mail() [function.mail]: SMTP server response: 550-Verification failed for <[email protected]> 550-Unrouteable address 550 B002 Sender e-mail address invalid / Afzender e-mail adres bestaat niet in C:\Program Files\EasyPHP 3.0\www\registreer.php on line 99
Dan moet er toch ergens [email protected] staan wat ik kan veranderen in mijn eigen adres?
Maar waar?
Gelieve Niet Bumpen: Herhaling:
Gewijzigd op 01/01/1970 01:00:00 door repelsteeltje
Dat komt omdat je lokaal werkt, online zal die echter wel gaan werken :)
Jaron schreef op 28.09.2009 11:37:
Dat komt omdat je lokaal werkt, online zal die echter wel gaan werken :)
En als ik dan via mijn IPadres die pagina open. Dan issie toch niet meer lokaal, of wel?
De melding blijft iig wel hetzelfde
>> http://82.101.226.171/registreer.php
Een gebruikersnaam van minimaal 2 tekens, is dat niet een beetje weinig? Als ik jou was zou ik een minimum van 4 of 5 tekens instellen.
Yearupie schreef op 28.09.2009 21:40:
Een gebruikersnaam van minimaal 2 tekens, is dat niet een beetje weinig? Als ik jou was zou ik een minimum van 4 of 5 tekens instellen.
2 tekens maar een zee aan mogelijkheden. Moet genoeg zijn volgens mij?
dat mail() probleempje is nu ook opgelost. Blijkt dat de mail verstuurt wordt naar het adres wat in $headers vermeld staat.
enniewee bedankt voor de reacties!