Hoe moet het wel??

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kalle P

Kalle P

16/03/2005 10:55:00
Quote Anchor link
Ik ben bezig met een loginsysteem en nu met de pagina aanmelden. Nu ben ik het een en ander aan het uitproberen, alleen geeft een error. Ik weet wel waarom die een error geeft, maar ik weet het niet goed te laten werken. Dus mijn vraag: zou iemand mij kunnen helpen met het wel correct maken van dit script?
Hier wat ik nu heb:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
ob_start();

include_once("config.php");

$select = "SELECT * FROM members WHERE gebruikersnaam='" . $_POST[gebruikersnaam] . "'";
$query = mysql_query($select);
$bestaatgebruikersnaam = mysql_num_rows($query);


if($_POST[aanmelden])
    {

$error = array();
    if(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST[email])) {
        $error[] = 'Er is geen geldig e-mailadres ingevuld.';
    }

    if($_POST[gebruikersnaam] == "") {
        $error[] = 'Er is geen gebruikersnaam ingevuld.';
    }

    if($_POST[naam] == "") {
        $error[] = 'Er is geen naam ingevuld.';
    }

    if(!eregi("[A-Za-z0-9-]", $_POST[gebruikersnaam])) {
        $error[] = 'Een gebruikersnaam mag slechts alfanummerieke tekens bevatten (a-z, 0-9), underscore (_) of liggend streepje (-).';
    }

    if($_POST[wachtwoord] == "" ) {
        $error[] = 'Er is geen wachtwoord ingevuld.';
    }

    if($bestaatgebruikersnaam == 1) {
        $error[] = 'De gebruikersnaam die jij wilt is al in gebruik.';
    }

    $fouten = sizeof($error);
    if($fouten != 0) {
        echo 'Er kon geen account worden aangemaakt door (een van) de volgende reden(en):';
        echo '<ul>';
            for($i = 0; $i < $fouten; $i++) {
                echo '<li>'.$error[$i].'</li>';
            }

        echo '</ul>';
        echo 'Klik <a href="#" onclick="history.go(-1)">hier</a> om weer terug te gaan naar de registratie.';

function
Activatie($lengte=10) {  
   $tekens = array(a, b, c, d, e, f, g, h, i, j, l, k, j, h, g, f, d, s, s, a, m, n, n, m, w, r, t, y, u, p);  
   $random = '';  
      
   for($i = 1; $i <= $lengte; $i++)  
      $random .= $tekens[rand(0,10)];  

   return strtoupper($random);  
                                }  
}

else {
$activatiecode = Activatie();

        $headers  = "MIME-Version: 1.0\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\n";
        $headers  .= "From: ".$website." <".emailadres.">\n";

mysql_query("INSERT INTO members (id, ondertitel, geslacht, avatar, gebruikersnaam, naam, wachtwoord, status, email, ip, activatie, datum) Values ('', 'Nieuw Lid', '".$_POST['geslacht']."', 'Geen', '".$_POST['gebruikersnaam']."', '".$_POST['naam']."', '".$_POST['wachtwoord']."', 'Lid', '" . $_POST['email'] . "', '" . $_POST['ip'] . "', '".$activatiecode."', '".$_POST['datum']."')") or die(mysql_error());
mail("".$_POST['email']."", "Profiel Activeren", "
Beste "
.$_POST['naam'].",
Je hebt je zojuist aangemeld op "
.$website.". <BR>
Om te kunnen inloggen op je Profiel moet je je Profiel activeren via de volgende link: <BR>
"
.$map."/activeren.php?activatie=".$activatiecode."&user=".$_POST['gebruikersnaam']." <BR>
Gebruikersnaam: "
.$_POST['gebruikersnaam'].".<BR>
Wachtwoord: "
.$_POST['wachtwoord'].".<BR>
Veel plezier op de website.
"
,$headers);
echo "Je bent succesvol aangemeld er word een email naar je gestuurd om je profiel te activeren.<BR>
<BR> Klik <a href=index.php>hier</a> om naar de index toe te gaan."
;
}
}

else {
$date = date("d-m-Y H:i:s");
$ipadres = $_SERVER['REMOTE_ADDR'];
echo "<center><table><form method=POST action=aanmelden.php>
<td>Gebruikersnaam: <TD><input type=text name=gebruikersnaam value='"
.$_POST['gebruikersnaam']."' maxlength=12><tr>
<td>Naam:<TD><input type=text name=naam value='"
.$_POST['naam']."'><input type=hidden name=datum value='".$date."'><tr>
<td>Wachtwoord: <TD><input type=password name=wachtwoord value='"
.$_POST['wachtwoord']."'><input type=hidden name=ip value='".$ipadres."'><tr>
<td>Email:<TD><input type=text name=email value='"
.$_POST['email']."'><tr>
<td>Geslacht<TD><select name=geslacht><option value=Man>Man</option><option value=Vrouw>Vrouw</option></select><tr>
<td><td><input type=submit name=aanmelden value=Aanmelden></form>
</table>"
;
}


ob_end_flush();
?>


Kalle
 
PHP hulp

PHP hulp

19/09/2019 15:43:06
 
Bas Kreleger
Beheerder

Bas Kreleger

16/03/2005 12:08:00
Quote Anchor link
wat voor error? wat is het probleem etc. ?
 
Jordi

Jordi

16/03/2005 13:01:00
Quote Anchor link
Ik weet niet of dit überhaupt een error op kan leveren, maar volgens mij vindt PHP het wat fijner als je de keys van een array tussen aanhalingstekens zet (tenzij het een int is).

Dus:
$_POST['gebruikersnaam']
$_POST['email']
enz.

Dit zal je probleem vast niet oplossen, maar wat dat betreft sluit ik me bij Bas aan en zul je denk ik iets specefieker moeten zijn.
 
Kalle P

Kalle P

16/03/2005 14:03:00
Quote Anchor link
Het script corrigeerd perfect als er een fout bij de aanmelding is, maar het maakt een fout als je nu juist alles goed invult... Het geeft dan de error. En de error heeft te maken met de if en else die ik gebruik. En daar kom ik niet uit....l
 
Jordi

Jordi

16/03/2005 16:08:00
Quote Anchor link
Wat is de error precies?

Graag in deze vorm:
Parse error: syntax error, unexpected '{' in test.php on line 7

(en als de regelnummers van je echte pagina niet overeenkomen met wat je hier hebt gepost, dan kun je misschien ook nog even zeggen om welke if en else het gaat)

Edit:
Ik heb er even goed naar gekeken en volgens mij heb ik het redelijk werkend gekregen.

Om te beginnen zou ik graag willen voorstellen dat je deze functie boven je php-scripts zet:
ini_set('error_reporting', E_ALL);

Verder moet je even goed uitkijken met alle accolades enzo.
Die Activatie-functie van jou, die stond helemaal verkeerd. Hij stond nu in de if-tak van een vergelijking, terwijl hij in de else-tak moet worden gebruikt. Dat kan natuurlijk niet. (ik zet functies gewoon altijd buiten if-statements).

Volgens mij was dat wel ongeveer de fout, maar als je error_reporting aan zet, zul je zien dat je echt nog veel meer fouten hebt, alleen dat die je vergeven worden, omdat PHP zo slim is.

Dit is wat ik er van gemaakt heb. (je moet bepaalde dingen natuurlijk wel weer uit comments halen, maar dat had ik even gedaan, omdat ik jouw SQL-tabellen niet heb).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
ob_start();

//include_once("config.php");

//$select = "SELECT * FROM members WHERE gebruikersnaam='" . $_POST[gebruikersnaam] . "'";
//$query = mysql_query($select);

$bestaatgebruikersnaam = false;

function
Activatie($lengte=10) {  
   $tekens = array(a, b, c, d, e, f, g, h, i, j, l, k, j, h, g, f, d, s, s, a, m, n, n, m, w, r, t, y, u, p);  
   $random = '';  
      
   for($i = 1; $i <= $lengte; $i++)  
      $random .= $tekens[rand(0,10)];  

   return strtoupper($random);  
                                }
  

if($_POST[aanmelden])
    {

$error = array();
    if(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST[email])) {
        $error[] = 'Er is geen geldig e-mailadres ingevuld.';
    }

    if($_POST[gebruikersnaam] == "") {
        $error[] = 'Er is geen gebruikersnaam ingevuld.';
    }

    if($_POST[naam] == "") {
        $error[] = 'Er is geen naam ingevuld.';
    }

    if(!eregi("[A-Za-z0-9-]", $_POST[gebruikersnaam])) {
        $error[] = 'Een gebruikersnaam mag slechts alfanummerieke tekens bevatten (a-z, 0-9), underscore (_) of liggend streepje (-).';
    }

    if($_POST[wachtwoord] == "" ) {
        $error[] = 'Er is geen wachtwoord ingevuld.';
    }

    if($bestaatgebruikersnaam == 1) {
        $error[] = 'De gebruikersnaam die jij wilt is al in gebruik.';
    }

    $fouten = sizeof($error);
    if($fouten != 0) {
        echo 'Er kon geen account worden aangemaakt door (een van) de volgende reden(en):';
        echo '<ul>';
            for($i = 0; $i < $fouten; $i++) {
                echo '<li>'.$error[$i].'</li>';
            }

        echo '</ul>';
        echo 'Klik <a href="#" onclick="history.go(-1)">hier</a> om weer terug te gaan naar de registratie.';
}



    else {
    $activatiecode = Activatie();
    
            $headers  = "MIME-Version: 1.0\n";
            $headers .= "Content-type: text/html; charset=iso-8859-1\n";
            $headers  .= "From: ".$website." <".emailadres.">\n";
    
    //mysql_query("INSERT INTO members (id, ondertitel, geslacht, avatar, gebruikersnaam, naam, wachtwoord, status, email, ip, activatie, datum) Values ('', 'Nieuw Lid', '".$_POST['geslacht']."', 'Geen', '".$_POST['gebruikersnaam']."', '".$_POST['naam']."', '".$_POST['wachtwoord']."', 'Lid', '" . $_POST['email'] . "', '" . $_POST['ip'] . "', '".$activatiecode."', '".$_POST['datum']."')") or die(mysql_error());
    mail("".$_POST['email']."", "Profiel Activeren", "
    Beste "
.$_POST['naam'].",
    Je hebt je zojuist aangemeld op "
.$website.". <BR>
    Om te kunnen inloggen op je Profiel moet je je Profiel activeren via de volgende link: <BR>
    "
.$map."/activeren.php?activatie=".$activatiecode."&user=".$_POST['gebruikersnaam']." <BR>
    Gebruikersnaam: "
.$_POST['gebruikersnaam'].".<BR>
    Wachtwoord: "
.$_POST['wachtwoord'].".<BR>
    Veel plezier op de website.
    "
,$headers);
    echo "Je bent succesvol aangemeld er word een email naar je gestuurd om je profiel te activeren.<BR>
    <BR> Klik <a href=index.php>hier</a> om naar de index toe te gaan."
;
    }
}

else {
$date = date("d-m-Y H:i:s");
$ipadres = $_SERVER['REMOTE_ADDR'];
echo "<center><table><form method=POST action=test.php>
<td>Gebruikersnaam: <TD><input type=text name=gebruikersnaam value='"
.$_POST['gebruikersnaam']."' maxlength=12><tr>
<td>Naam:<TD><input type=text name=naam value='"
.$_POST['naam']."'><input type=hidden name=datum value='".$date."'><tr>
<td>Wachtwoord: <TD><input type=password name=wachtwoord value='"
.$_POST['wachtwoord']."'><input type=hidden name=ip value='".$ipadres."'><tr>
<td>Email:<TD><input type=text name=email value='"
.$_POST['email']."'><tr>
<td>Geslacht<TD><select name=geslacht><option value=Man>Man</option><option value=Vrouw>Vrouw</option></select><tr>
<td><td><input type=submit name=aanmelden value=Aanmelden></form>
</table>"
;
}


ob_end_flush();
?>


En dit is de output die ik kreeg:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
Notice: Use of undefined constant aanmelden - assumed 'aanmelden' in test.php on line 25

Notice: Use of undefined constant email - assumed 'email' in test.php on line 28

Notice: Use of undefined constant gebruikersnaam - assumed 'gebruikersnaam' in test.php on line 31

Notice: Use of undefined constant naam - assumed 'naam' in test.php on line 34

Notice: Use of undefined constant gebruikersnaam - assumed 'gebruikersnaam' in test.php on line 37

Notice: Use of undefined constant wachtwoord - assumed 'wachtwoord' in test.php on line 40

Notice: Use of undefined constant a - assumed 'a' in test.php on line 16

Notice: Use of undefined constant b - assumed 'b' in test.php on line 16

Notice: Use of undefined constant c - assumed 'c' in test.php on line 16

Notice: Use of undefined constant d - assumed 'd' in test.php on line 16

Notice: Use of undefined constant e - assumed 'e' in test.php on line 16

Notice: Use of undefined constant f - assumed 'f' in test.php on line 16

Notice: Use of undefined constant g - assumed 'g' in test.php on line 16

Notice: Use of undefined constant h - assumed 'h' in test.php on line 16

Notice: Use of undefined constant i - assumed 'i' in test.php on line 16

Notice: Use of undefined constant j - assumed 'j' in test.php on line 16

Notice: Use of undefined constant l - assumed 'l' in test.php on line 16

Notice: Use of undefined constant k - assumed 'k' in test.php on line 16

Notice: Use of undefined constant j - assumed 'j' in test.php on line 16

Notice: Use of undefined constant h - assumed 'h' in test.php on line 16

Notice: Use of undefined constant g - assumed 'g' in test.php on line 16

Notice: Use of undefined constant f - assumed 'f' in test.php on line 16

Notice: Use of undefined constant d - assumed 'd' in test.php on line 16

Notice: Use of undefined constant s - assumed 's' in test.php on line 16

Notice: Use of undefined constant s - assumed 's' in test.php on line 16

Notice: Use of undefined constant a - assumed 'a' in test.php on line 16

Notice: Use of undefined constant m - assumed 'm' in test.php on line 16

Notice: Use of undefined constant n - assumed 'n' in test.php on line 16

Notice: Use of undefined constant n - assumed 'n' in test.php on line 16

Notice: Use of undefined constant m - assumed 'm' in test.php on line 16

Notice: Use of undefined constant w - assumed 'w' in test.php on line 16

Notice: Use of undefined constant r - assumed 'r' in test.php on line 16

Notice: Use of undefined constant t - assumed 't' in test.php on line 16

Notice: Use of undefined constant y - assumed 'y' in test.php on line 16

Notice: Use of undefined constant u - assumed 'u' in test.php on line 16

Notice: Use of undefined constant p - assumed 'p' in test.php on line 16

Notice: Undefined variable: website in test.php on line 63

Notice: Use of undefined constant emailadres - assumed 'emailadres' in test.php on line 63

Notice: Undefined variable: website in test.php on line 68

Notice: Undefined variable: map in test.php on line 70

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 test.php on line 74
Je bent succesvol aangemeld er word een email naar je gestuurd om je profiel te activeren.

Klik hier om naar de index toe te gaan.
Gewijzigd op 16/03/2005 16:14:00 door Jordi
 
Kalle P

Kalle P

17/03/2005 09:50:00
Quote Anchor link
Damn... Dit script werkend is precies waar ik 5 uur lang naar heb gezocht. Echt ontzettend bedankt. Nog ff één vraag. Door
ini_set('error_reporting', E_ALL);
boven je script te zetten krijg je dus al je errors te zien....

Kalle
 
Elwin - Fratsloos

Elwin - Fratsloos

17/03/2005 10:05:00
Quote Anchor link
Hee Kalle... dan ben je zeker vroeg begonnen? Om 9.50 uur al vijf uur hebben lopen zoeken.. :)

Elwin
 
Kalle P

Kalle P

17/03/2005 20:33:00
Quote Anchor link
nee flippie. ik had de vraag al gister gepost en daarvoor had ik intotaal al sowieso 5 uur naar gezocht nja om het in elkaar te zetten zeg maar, als newb heb je nou eenmaal veel tijd nodig....
Alleen nee ik heb nog wel een leven dan was ik om 4.50 begonne damn...

Laters
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.