inlog en registratie systeem php

Overzicht

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 4 5 volgende »

Melissa Heijligers

Melissa Heijligers

09/07/2013 12:47:49
Anchor link
Hallo,

ik heb een script gemaakt voor mijn website.
Hierin staat dus regisrtatiesysteem en inlogsysteem.
maar voordat ik verder typ, zeg ik dit: ALLEEN TIPS EN HULP OVER HET INLOG EN REGISTRATIE SYSTEEM!!.

Maar nu heb ik een probleem, het script werkt niet, ik dacht zelf dat het aan dit lag:

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
    $fouten = array();
    
    if(empty($_POST['gebruikersnaam'])) {
        $fouten[] = 'Er is geen gebruikersnaam opgegeven.';
    } elseif(strlen($_POST['gebruikersnaam']) > 50) {
        $fouten[] = 'De gebruikersnaam mag niet langer dan 50 tekens zijn.';
    } elseif(geregistreerd($_POST['gebruikersnaam'], 'gebruikersnaam')) {
        $fouten[] = 'De gebruikersnaam is reeds geregistreerd.';
    }
    
    
    if(empty($_POST['stalnaam'])) {
        $fouten[] = 'Er is geen stalnaam opgegeven.';
    }  elseif(strlen($_POST['stalnaam'])  > 50)  {
        $fouten[] = 'De stalnaam mag niet langer dan 50 tekens zijn.';
    }  elseif(geregistreerd($_POST['stalnaam'], 'stalnaam')) {
        $fouten[] = 'De stalnaam is reeds geregistreerd.';
    }    
    
    
    if(empty($_POST['wachtwoord'])) {
        $fouten[]    = 'Er is geen wachtwoord opgegeven.';
    } elseif($_POST['wachtwoord'] != $_POST['wachtwoord_herh']) {
        $fouten[] = 'De wachtwoorden komen niet overeen.';
    }
    
    
    if(!is_email($_POST['email'])) {
        $fouten[] = 'Er is geen geldig e-mailadres opgegeven.';
    } elseif(geregistreerd($_POST['email'], 'email')) {
        $fouten[] = 'Dit e-mailadres is reeds geregistreerd.';
    }
    



Het systeem bestaat uit:

een stuk in index.html
registratie.php
activatie.php
controlepaneel.php
uitloggen.php
login.php

ik heb me dus geprobeerd in te registreren, maar ik krijg geen melding als ik iets fouts doe of niet invul, verder als ik alles invul dan gebeurt er ook niks, dan wordt zeg maar de pagina gewoon gerefresht en ik krijg geen activatiemail niks.

ik heb geprobeerd te kijken of er een fout inzit, maar ik kan niks vinden.

dus mijn vraag: waar zit de fout?

voor degene die meer script willen zien mogen het even zeggen.

Alvast heel erg veel bedankt!!
 
PHP hulp

PHP hulp

25/11/2024 03:12:17
 
- SanThe -

- SanThe -

09/07/2013 12:53:55
Anchor link
Het enige dat je met deze code doet is het array $fouten vullen met teksten als er iets niet zou kloppen. Dus als je iets op het scherm wilt zien moet je dat eerst in een echo zetten.
Gewijzigd op 09/07/2013 12:54:22 door - SanThe -
 
Melissa Heijligers

Melissa Heijligers

09/07/2013 13:02:53
Anchor link
owja.. klopt.. ik zal het aanpassen.
Maar hoe kan het dan dat ik geen mail krijg?

hier is een stuk code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
        define('EOL', "\n");
        // Je kan deze mail uit uitbreiden, evt HTML mail,...
        $mail   = 'Bedankt voor je registratie, activeer hier je acount:'.EOL;
        $mail  .= 'http://www.horselife.net84.net/activeer.php?gebruiker='.$gebruikers_id.'&sleutel='.$activatiecode.EOL;
        $mail  .= 'Bedankt voor het registreren.';
        
        $header = '"Horselife.net84.net Account" <[email protected]>';
        
        mail($_POST['email'], 'Je account activeren', $mail, $header);
        ?>

Er is een e-mail gestuurd met activatiedetails.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$mail?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
        // Formulier verbergen
        $verberg_form = true;
    }

  
 
- Ariën  -
Beheerder

- Ariën -

09/07/2013 13:05:16
Anchor link
Door met een if-statement te controleren op je mail()? Ik raad het wel altijd aan...

En wat is je intentie om $mail te echo'en (via
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?= ?>
), die code die in de mail staat lijkt me voor de logica in een mail te horen, of wou je de gebruikers soms direct na het registreren zich laten bevestigen via de website?
Gewijzigd op 09/07/2013 13:07:49 door - Ariën -
 
DavY -

DavY -

09/07/2013 13:07:49
Anchor link
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
<?php

function fouten($fout){
if (!empty($fout))
{

  $i = 0;
  while ($i < count($fout)){
    echo "<p><span class="fout">".$fout[$i]."</span></p>";
  $i++;
}

}


if (isset($_POST['submit']))
{


// Jouw code...........
// Voorbeeld:


$gebruikersnaam = trim($_POST['gebruikersnaam']);
if (strlen($gebruikersnaam) < 3) {
  $fout[] = 'Gebruikersnaam moet minimaal 3 karakters bevatten';
}



// etc etc etc....
?>
Gewijzigd op 09/07/2013 13:08:20 door DavY -
 
- SanThe -

- SanThe -

09/07/2013 13:08:33
Anchor link
Zet dit bovenin je script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest
?>


En zet mail() in een if:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if(mail(.....))
{

    // vestuurd
}
else
{
    // error
}
?>
 
- Ariën  -
Beheerder

- Ariën -

09/07/2013 13:09:16
Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if (isset($_POST['submit']))

kan je beter aanpassen naar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if($_SERVER['REQUEST_METHOD']=="POST") {

Je wilt immers weten of je formulier verstuurd is, en niet of een knop ingedrukt is.
 
DavY -

DavY -

09/07/2013 13:11:07
Anchor link
- Aar - op 09/07/2013 13:09:16:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if (isset($_POST['submit']))

kan je beter aanpassen naar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if($_SERVER['REQUEST_METHOD']=="POST") {

Je wilt immers weten of je formulier verstuurd is, en niet of een knop ingedrukt is.


Yep, i agree with you!
 
Melissa Heijligers

Melissa Heijligers

09/07/2013 13:14:37
Anchor link
dankje :)
ik zal het uitproberen zodra totalcommander ftp-verbinding maakt.. hij luisterd niet
 
- Ariën  -
Beheerder

- Ariën -

09/07/2013 13:14:53
Anchor link
En die while kan net zo goed een foreach worden :P
 
Melissa Heijligers

Melissa Heijligers

09/07/2013 13:27:37
Anchor link
dankje :)

Toevoeging op 09/07/2013 13:33:07:

ik heb denk ik de echo verkeerd gemaakt..

hij werkt namelijk nog steeds niet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
  if(empty($_POST['gebruikersnaam'])) {
     echo 'Er is geen gebruikersnaam opgegeven.';
        $fouten[] = 'Er is geen gebruikersnaam opgegeven.';
    } elseif(strlen($_POST['gebruikersnaam']) > 50) {
     echo 'De gebruikersnaam mag niet langer dan 50 tekens zijn.';
        $fouten[] = 'De gebruikersnaam mag niet langer dan 50 tekens zijn.';    
    } elseif(geregistreerd($_POST['gebruikersnaam'], 'gebruikersnaam')) {
     echo 'De gebruikersnaam is reeds geregistreerd.';
        $fouten[] = 'De gebruikersnaam is reeds geregistreerd.';
    }


Toevoeging op 09/07/2013 13:33:30:

hij moet er volgens mij onder..
 
- SanThe -

- SanThe -

09/07/2013 13:37:46
Anchor link
Die echo zet je daar niet zo tussen.

Na alle controles doe je de echo.
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
<?php
$fouten
= array();
 if(empty($_POST['gebruikersnaam'])) {
        $fouten[] = 'Er is geen gebruikersnaam opgegeven.';
    }
elseif(strlen($_POST['gebruikersnaam']) > 50) {
        $fouten[] = 'De gebruikersnaam mag niet langer dan 50 tekens zijn.';    
    }
elseif(geregistreerd($_POST['gebruikersnaam'], 'gebruikersnaam')) {
        $fouten[] = 'De gebruikersnaam is reeds geregistreerd.';
    }


if(count($fouten) > 0)
{

    foreach($fouten as $value)
    {

        echo $value . '<br/>';
    }
}

?>
Gewijzigd op 09/07/2013 13:38:39 door - SanThe -
 
Melissa Heijligers

Melissa Heijligers

09/07/2013 13:43:42
Anchor link
dankje


Toevoeging op 09/07/2013 13:51:39:

hij werkt niet?

dit heb ik toch goed of niet?

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
    function fouten($fout){
    if (!empty($fout))
    {
     $i = 0;
  foreach ($i < count($fout)){
    echo "<p><span class="fout">".$fout[$i]."</span></p>";
  $i++;
}

}

if ($_SERVER['REQUEST_METHOD']=="POST")
{
    
    if(empty($_POST['gebruikersnaam'])) {  
        $fouten[] = 'Er is geen gebruikersnaam opgegeven.';
    } elseif(strlen($_POST['gebruikersnaam']) > 50) {  
        $fouten[] = 'De gebruikersnaam mag niet langer dan 50 tekens zijn.';    
    } elseif(geregistreerd($_POST['gebruikersnaam'], 'gebruikersnaam')) {
        $fouten[] = 'De gebruikersnaam is reeds geregistreerd.';
    }
    
if (count($fout) > 0)
   {  
     foreach($fout as $value)
     {
          echo $value . '<br/>';
    }
  }  
  
 
- SanThe -

- SanThe -

09/07/2013 14:02:51
Anchor link
Als je het met een function wilt doen, doe je het zo:
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
<?php
function fouten($fout)
{

    if (!empty($fout))
    {

        foreach($fout as $value)
        {

            echo '<p><span class="fout">' . $value . '</span></p>';
        }
    }
}


$fouten = array();

if ($_SERVER['REQUEST_METHOD']=="POST")
{

    if(empty($_POST['gebruikersnaam'])) {  
        $fouten[] = 'Er is geen gebruikersnaam opgegeven.';
    }
elseif(strlen($_POST['gebruikersnaam']) > 50) {  
        $fouten[] = 'De gebruikersnaam mag niet langer dan 50 tekens zijn.';    
    }
elseif(geregistreerd($_POST['gebruikersnaam'], 'gebruikersnaam')) {
        $fouten[] = 'De gebruikersnaam is reeds geregistreerd.';
    }
}


fouten($fouten);
?>
Gewijzigd op 09/07/2013 14:03:44 door - SanThe -
 
Kitty N

kitty N

09/07/2013 14:03:04
Anchor link
Waarom neem je het stukje van SanThe maar half over?

Dit geeft SanThe aan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if(count($fouten) > 0)
{

    foreach($fouten as $value)
    {

        echo $value . '<br/>';
    }
}

?>


Maar jij maakt van $fouten --> $fout

Als je het stukje code van SanThe gebruikt heb je ook de function fouten niet nodig.


EDIT: SanThe was me net voor.
Gewijzigd op 09/07/2013 14:03:47 door kitty N
 
Melissa Heijligers

Melissa Heijligers

09/07/2013 14:17:29
Anchor link
o oke

Toevoeging op 09/07/2013 14:25:27:

het wilt nog steeds niet werken..

ik heb het precies overgenomen..

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
     function fouten($fout)    
{
if (count($fout) > 0)
   {  
     foreach($fout as $value)
     {
          echo '<p><span class="fouten">' . $value . '</span></p>';
    }
  }
}

}
$fouten = array();
if ($_SERVER['REQUEST_METHOD']=="POST")
{
    
    if(empty($_POST['gebruikersnaam'])) {  
        $fouten[] = 'Er is geen gebruikersnaam opgegeven.';
    } elseif(strlen($_POST['gebruikersnaam']) > 50) {  
        $fouten[] = 'De gebruikersnaam mag niet langer dan 50 tekens zijn.';    
    } elseif(geregistreerd($_POST['gebruikersnaam'], 'gebruikersnaam')) {
        $fouten[] = 'De gebruikersnaam is reeds geregistreerd.';
    }
fouten($fouten);
 
 if (count($fout) > 0)
   {  
     foreach($fout as $value)
     {
          echo $value . '<br/>';
    }
  }


Toevoeging op 09/07/2013 15:25:26:

overgenomen van SanThe trouwens..

Toevoeging op 09/07/2013 16:12:48:

weten jullie wat er fout is..?
 
DavY -

DavY -

09/07/2013 16:53:01
Anchor link
Melissa Heijligers op 09/07/2013 14:17:29:
o oke

Toevoeging op 09/07/2013 14:25:27:

het wilt nog steeds niet werken..

ik heb het precies overgenomen..

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
     function fouten($fout)    
{
if (count($fout) > 0)
   {  
     foreach($fout as $value)
     {
          echo '<p><span class="fouten">' . $value . '</span></p>';
    }
  }
}

}
$fouten = array();
if ($_SERVER['REQUEST_METHOD']=="POST")
{
    
    if(empty($_POST['gebruikersnaam'])) {  
        $fouten[] = 'Er is geen gebruikersnaam opgegeven.';
    } elseif(strlen($_POST['gebruikersnaam']) > 50) {  
        $fouten[] = 'De gebruikersnaam mag niet langer dan 50 tekens zijn.';    
    } elseif(geregistreerd($_POST['gebruikersnaam'], 'gebruikersnaam')) {
        $fouten[] = 'De gebruikersnaam is reeds geregistreerd.';
    }
fouten($fouten);
 
 if (count($fout) > 0)
   {  
     foreach($fout as $value)
     {
          echo $value . '<br/>';
    }
  }


Toevoeging op 09/07/2013 15:25:26:

overgenomen van SanThe trouwens..

Toevoeging op 09/07/2013 16:12:48:

weten jullie wat er fout is..?


Je hebt function 2x instaan en kun je aangeven wat er fout is gegaan dan?

Anyway, dit slaat nergens op:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $fouten = array(); ?>
- Verwijder die eens

En
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php fouten[] = ?>
klopt van geen meter, verander die eens naar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php fout[] =  ?>


En
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php fouten(fout); ?>
op laatste regel van het pagina.



Toevoeging op 09/07/2013 17:27:16:

Misschien maak ik het je wel gemakkelijk, maar probeer dit eens:

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
<?php

function fouten($fout){
if (!empty($fout))
{

  $i = 0;
  while ($i < count($fout)){
    echo "<p><span class='fout'>".$fout[$i]."</span></p>";
  $i++;}
}
}

 

if ($_SERVER['REQUEST_METHOD']=="POST")
{



$Gebruikersnaam = trim($_POST['Gebruikersnaam']);
 
if (strlen($Gebruikersnaam) < 3) {
  $fout[] = 'Gebruikersnaam moet minimaal 3 karakters bevatten.';
}

 
if (strlen($Gebruikersnaam) > 20) {
  $fout[] = 'Gebruikersnaam moet maximaal 20 karakters bevatten.';
}


if (!get_magic_quotes_gpc()) {
  $_POST[] = addslashes($_POST['Gebruikersnaam']);
}

 
$ControleerGebruiker = $_POST['Gebruikersnaam'];
$Controleer = mysql_query("SELECT gebruikersnaam FROM gebruikers WHERE gebruikersnaam='$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);

$Uitvoeren = "INSERT INTO gebruikers (gebruikersnaam, Je, kunt, meer, toevoegen.....) VALUES ('$gebruikersnaam',  Je, kunt, meer, toevoegen.....)";
$Resultaat1 = mysql_query($Uitvoeren) or die('Whoops, er is een fout opgetreden: ' . mysql_error());
 
$Naar = "$email";
$Onderwerp = "Je hebt met succes op Website.nl geregistreerd!";
$Emailveld = "Hallo $gebruikersnaam, Welcome bij Website.nl en heel veel plezier toegewenst.. blaah blaah, wees een lieve member en voer geen aanvallen op onze website uit! :P";
$ExtraHeaders = "Van: <[email protected]>";
$ExtraHeaders .= "Antwoorden: [email protected]";
if(mail($Naar, $Onderwerp, $Emailveld, $ExtraHeaders)){}
 
}
}


fouten($fout);

?>


Let wel op querys, verander die, zoals je hem wilt hebben en de rest voor wachtwoord, email, etc moet je zelf maar toevoegen. Is vrij simpel om te doen.
Gewijzigd op 09/07/2013 17:28:35 door DavY -
 
Melissa Heijligers

Melissa Heijligers

09/07/2013 17:44:20
Anchor link
dankje :)
ik zal het proberen, is dit het overzicht voor heel registratie.php of alleen dat deel wat ik stuurde?

Toevoeging op 09/07/2013 17:45:26:

ik zie het al


Toevoeging op 09/07/2013 18:08:49:

mag ik vragen wat $uitvoeren doet?
doet deze dus alles onthouden of zijn dit alleen de dingen die je nodig hebt om in te loggen want ras en geslacht en naam van het paard heb ik voor het inloggen niet nodig, wel voor registreren en dan de stal maken
 
DavY -

DavY -

09/07/2013 19:20:16
Anchor link
$uitvoeren voert query uit van je gegevens dat je opgegeven hebt tijdens het registreren, mits alles goed is gegaan en je kunt dit als registratiescript gebruiken. ALs je meer wil toevoegen, zoals emailadres, leeftijd, etc, dan kun je dat er gewoon zelf bij zetten, is al niet moeilijk te doen, anders is er altijd wel iemand hier die je ermee op weg helpt, als je er niet uitkomt.
 
- Ariën  -
Beheerder

- Ariën -

09/07/2013 19:22:10
Anchor link
Ik snap eigenlijk het nut van die fouten() functie niet?
Je kan toch net zo makkelijk gewoon bij elke foutmelding iets als dit plaatsen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
// voorbeeld foutmelding...
$fout[] = "Gebruikersnaam moet minimaal 3 karakters bevatten.";
?>


En dan aan het einde een count() doen, en als deze > 0 een foreach laten tonen?
Functies zijn leuk als iets steeds herhaald, wordt, maar in dit geval wordt het maar 1 keer gebruikt in het script.

Misschien een leuke tip voor Melissa. Op de functiesnamen in een php-blok op het forum kan je ook klikken, dan wordt je doorverwezen naar de handleiding ervan op php.net waar ziet hoe de functie werkt, hoe deze opgebouwd moet worden en wat deze voor input nodig heeft (denk aan variabelen, array's etc..).

Al blijf ik erbij dat de
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo "Hallo world" ;?>
de eerste beste stap zal zijn.
Maar daar ga ik niet meer verder over uitwijden.
Gewijzigd op 09/07/2013 19:24:51 door - Ariën -
 
Melissa Heijligers

Melissa Heijligers

09/07/2013 19:41:11
Anchor link
dankje DavyBlaat

Toevoeging op 10/07/2013 10:16:29:

onder fouten($fout);

hoort toch niks meer of moet dit eronder:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
if (count($fout) > 0)
   {  
     foreach($fout as $value)
     {
          echo $value . '<br/>';
    }
  }  
Gewijzigd op 10/07/2013 10:16:49 door Melissa Heijligers
 

Pagina: 1 2 3 4 5 volgende »

 

Dit topic is gesloten.



Overzicht

 
 

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.