Submit en Opslaan gaat niet met succes!
Ik heb met behulp van mijn andere register die ik met behulp van jullie heb gemaakt en andere register gemaakt.
Op de register van de eerste werkt gewoon goed. Maar met de andere niet.
Als ik dus op register submit knop druk gaat ie naar index.php maar dan zonder de content en menu enz. alleen de background. en hij slaat hem niet op!
register.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
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
<?php
include 'config.php';
if($_SERVER['REQUEST_METHOD'] == "POST"){
if(trim($_POST['reg_username']) == "" || trim($_POST['reg_password']) == "" || trim($_POST['reg_email']) == ""){
echo 'Please fill in all fields!';
}else{
if (!preg_match("/^[a-z, 0-9 ]+$/i", $_POST['reg_username']) || strlen(trim($_POST['reg_username'])) < 1) {
$errors[] = 'Username is empty or incorrect. Only letters and spaces allowed';
}else{
$checkusernameisfree = mysqli_query($connection, "SELECT username FROM users WHERE username = '".$_POST['reg_username']."'");
if(mysqli_num_rows($checkusernameisfree) > 0){
echo 'Username already exist!';
}else{
if($_POST['reg_username'] == $_POST['reg_password']){
echo 'Password can not be the same as your username!';
}else{
$query = mysqli_query($connection, "
INSERT INTO users (
username,
password,
email
) VALUES (
'". mysqli_real_escape_string($connection, $_POST['reg_username']) ."',
'". password_hash($_POST['reg_password'], PASSWORD_BCRYPT) ."',
'". mysqli_real_escape_string($connection, $_POST['reg_email']) ."'
)
");
header('Location: index.php');
}
}
}
}
}
?>
include 'config.php';
if($_SERVER['REQUEST_METHOD'] == "POST"){
if(trim($_POST['reg_username']) == "" || trim($_POST['reg_password']) == "" || trim($_POST['reg_email']) == ""){
echo 'Please fill in all fields!';
}else{
if (!preg_match("/^[a-z, 0-9 ]+$/i", $_POST['reg_username']) || strlen(trim($_POST['reg_username'])) < 1) {
$errors[] = 'Username is empty or incorrect. Only letters and spaces allowed';
}else{
$checkusernameisfree = mysqli_query($connection, "SELECT username FROM users WHERE username = '".$_POST['reg_username']."'");
if(mysqli_num_rows($checkusernameisfree) > 0){
echo 'Username already exist!';
}else{
if($_POST['reg_username'] == $_POST['reg_password']){
echo 'Password can not be the same as your username!';
}else{
$query = mysqli_query($connection, "
INSERT INTO users (
username,
password,
) VALUES (
'". mysqli_real_escape_string($connection, $_POST['reg_username']) ."',
'". password_hash($_POST['reg_password'], PASSWORD_BCRYPT) ."',
'". mysqli_real_escape_string($connection, $_POST['reg_email']) ."'
)
");
header('Location: index.php');
}
}
}
}
}
?>
Gewijzigd op 13/03/2014 09:16:48 door Mathieu Posthumus
Wat gaat er mis? Wat heb je al geprobeerd? Bouw foutafhandeling in en kijk of je query wel goed gaat.
en kijken bij welke het fout gaat?
En check even mijn eerste reactie dan zie je wat er fout gaat!
Gewijzigd op 13/03/2014 09:15:37 door Mathieu Posthumus
Als je code overneemt van anderen, ga er niet meteen vanuit dat iets goed is, maar loop de code ook goed na, en zorg dat je het ook begrijpt.
Ja Aar ik heb het echt goed door genomen en een paar x overnieuw gemaat
- Zorg ervoor dat je query netjes een foutmelding kan geven als deze mislukt met een nette if-else statement (dus geen die()!!)
Verder is voor ons onduidelijk wat er volgens jouw niet werkt. Wat gebeurt er wel? Wat doe je zoal?
hier al eens aangegeven hoe je die queries correct moet afhandelen. Dat je dat nog steeds niet doet verbaast me en ik begin me inmiddels erg af te vragen of het nog wel zin heeft om je te helpen. Lijkt allemaal voor de kat zijn viool.
Ik heb je Wat er gebeurd: Hij gaat naar index.php maar geeft alleen de background kleur mee!
Erwin H op 13/03/2014 09:19:21:
Ik heb je hier al eens aangegeven hoe je die queries correct moet afhandelen. Dat je dat nog steeds niet doet verbaast me en ik begin me inmiddels erg af te vragen of het nog wel zin heeft om je te helpen. Lijkt allemaal voor de kat zijn viool.
Ik heb toch gewoon elke keer met if / else gewerkt en als het goed gaat gaat ie gewoon verder en als het fout gaat, geeft ie een foutmelding aan!
Over error reporting hebben we ook al vaker gehad..
Staat er überhaupt meer op index.php? En wat staat er dan? Je kunt niet zomaar variabelen overhevelen hé.
Gewijzigd op 13/03/2014 09:23:26 door Michael -
overhevelen?
Waarom eigenlijk? Het zijn wel dingen die steeds maar aangehaald worden in je topics, dus doe er alsjeblieft gewoon wat mee.
Wat Micheal bedoelt is dat je variabelen uit dit script niet zomaar in een PHP-script kan gebruiken waarnaar je doorgestuurd wordt met een location-header.
Gewijzigd op 13/03/2014 09:26:31 door - Ariën -
Werkend en waneer ik dan op submit druk dit: Niet werkend
wat er normaal staat op index.php: Ja ik weet niet wat je wilt op index? Niet dat je verwacht dat je daar de zelfde variabelen zomaar kan gebruiken. Ik heb gok maar wat. Zonder informatie van jou komen we niet ver.
Maar voor we verder gaan. Bouw eerst foutafhandeling in, error_reporting aan, en nieuwe code posten.
(Waarschijnlijk krijg je de error 'headers already sent' en die kun je weer prima opzoeken. Daar komt elke week wel een topic over)
- Aar - op 13/03/2014 09:24:50:
Tja, ik zie dat er SQL-injection mogelijk is en dat je totaal niet op $query een controle doet of iets gelukt is.
Waarom eigenlijk? Het zijn wel dingen die steeds maar aangehaald worden in je topics, dus doe er alsjeblieft gewoon wat mee.
Wat Micheal bedoelt is dat je variabelen uit dit script niet zomaar in een PHP-script kan gebruiken waarnaar je doorgestuurd wordt met een location-header.
Waarom eigenlijk? Het zijn wel dingen die steeds maar aangehaald worden in je topics, dus doe er alsjeblieft gewoon wat mee.
Wat Micheal bedoelt is dat je variabelen uit dit script niet zomaar in een PHP-script kan gebruiken waarnaar je doorgestuurd wordt met een location-header.
Sorry ik was daar vergeten er een te zetten.
Toevoeging op 13/03/2014 09:31:34:
Sorry mensen het was weer vanwege dat password_hash ik was vergeten de password.php in mijn dir te zetten.
Sorry voor mijn stomme fout
We willen je graag helpen, maar doe er dan ook wat mee ;)
Gewijzigd op 13/03/2014 09:43:15 door Mathieu Posthumus
Gewijzigd op 13/03/2014 09:45:51 door - Ariën -
Gewijzigd op 13/03/2014 09:46:07 door Mathieu Posthumus