reCaptcha

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# .NET Software Ontwikkelaar

Functie omschrijving Gezocht: Software Developer C# .NET voor een dynamische organisatie! Ben je onlangs afgestudeerd of ben je toe aan de volgende stap in je professionele carrière? Lees dan verder! We zijn momenteel op zoek naar een Software Developer die klaar is voor een nieuwe uitdaging en die onze eindklant in de regio Arnhem kan versterken. In deze functie werk je aan verschillende projecten en bezoek je vaak klanten. Je kunt een rol verwachten met veel uitdaging, diversiteit en verantwoordelijkheid. Bedrijfsprofiel Binnen welke organisatie ga je aan de slag? Je gaat werken bij een organisatie die zich specialiseert in het

Bekijk vacature »

Webshop beheerder / Fullstack developer

Functie omschrijving Wij zijn op zoek naar een full stack developer die zich bezig gaat houden met het uitbreiden en verbeteren van de online webshop. Een onderdeel van jouw werkzaamheden is naast het beheren van de webshop ook om de processen en structuren te stroomlijnen. Ben jij een leergierige en ambitieuze junior developer met technische skills? Ben jij op zoek naar een werkgever die jouw de volledige vrijheid geeft om jezelf tot een volwaardige senior te ontwikkelen? Lees dan snel verder! Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator

Bekijk vacature »

Senior Node.js developer Digital Agency

Functie Door de groei van de organisatie zijn ze op zoek naar een Tech Lead. Als tech lead ben jij verantwoordelijk Als Back end Node.js developer kom je terecht in een van de 8 multidisciplinaire teams in het projectenhuis. Afhankelijk van jouw interesses, wensen en capaciteiten word je bij projecten en onderwerpen naar keuze betrokken. Als ervaren ontwikkelaar zul jij vaak leiding nemen in de projecten en in het team een aanvoerder zijn van technische discussies. Uiteindelijk wil jij natuurlijk de klantwensen zo goed mogelijk vertalen naar robuuste code. De projecten kunnen varieren van langlopende- tot kleinschalige trajecten. Voorheen werkte

Bekijk vacature »

Software Ontwikkelaar

Functie omschrijving Voor een echt familiebedrijf in de omgeving van 's-Hertogenbosch ben ik op zoek naar een Software Developer. Jij gaat in de functie van Software Developer werken met C# en .NET framework Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Deze organisatie is

Bekijk vacature »

PHP Laravel developer

Functie omschrijving Weet jij alles van Laravel en krijg je energie van het ontwikkelen van software hiermee? Laat snel wat van je horen want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch. Jouw taken zullen bestaan uit: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Documentatie schrijven over applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein softwarebedrijf. Er werken ongeveer 15 medewerkers, verdeeld in meerdere teams, zoals back-end en front-end development, projectmanagement

Bekijk vacature »

Java Ontwikkelaar

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

.net developer

Hoi! Wij zijn auto.nl en wij verkopen auto's online. je bestelt bij ons een auto net zo makkelijk als een spijkerbroek. En bevalt ie niet? Dan stuur je 'm gewoon weer terug. En dat we dat goed doen bewijst onze hoge klanttevredenheid van een 9,3. Nu maken we de volgende stap bij auto.nl. We starten met fysieke winkels. Online zoeken, offline bekijken. Maar nog altijd, geen gedoe! Gewoon eerlijk, transparant en zonder zorgen een auto kopen.. Maar om dat waar te blijven maken en nóg beter te worden, zoeken we uitbreiding van ons development team. Wat ga je precies doen?

Bekijk vacature »

Front end developer

Functie Jij als ervaren Front end developer bent een expert het gebied van Javascript en React. Je wordt onderdeel van een multidisciplinair team bestaande uit een PO, twee Front end developers, een DevOps/Back end developer, een UX/UI designer en een projectmanager. Verder is er iemand verantwoordelijk voor de HR en is de algemeen directeur nauw betrokken bij alle projecten. Dagelijks hou jij je bezig met de verschillende projecten die zijn opgenomen in de sprint. Daarnaast denk je mee over mogelijke oplossingen om de behoefte van de klant op de beste manier in te vullen. Verder spar jij intern met collega’s

Bekijk vacature »

Delphi Programmeur

Functie omschrijving Onze opdrachtgever is gespecialiseerd in kantoor-bedrijfssoftware en zit gevestigd in omgeving Numansdorp. Als programmeur ben jij bij dit bedrijf met het volgende bezig; Je vertaalt technische en functionele ontwerpen naar kwalitatieve software. Je ontwikkelt, ontwerpt en test software. Je maakt daarbij veel gebruik met de volgende tools & technologieën: Delphi 10.3 (Rio), QuickReport 6. Je krijgt in deze rol veel vrijheid en verantwoordelijkheid. Je levert projecten van A - Z op, en werkt daarbij projectmatig en gestructureerd. Bedrijfsprofiel Dit bedrijf richt zich op maatwerk software oplossingen. Deze software oplossingen worden ingezet in de financiële branche. Het betreft een

Bekijk vacature »

Medior/senior front end developer React Sportsoftw

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van onze stack; Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor

Bekijk vacature »

BizTalk/ Azure Developer

Dit ga je doen •Understanding the scope of required functionality, translate them within context of way of working of the team into developed solutions, whilst safeguarding documentation; •Planning based on assigned sprint tasks; •Acting as an expert in estimation techniques and planning; •Understanding your role in the agile process and act in this way; •Facilitating internal communication and effective collaboration; •Working closely with scrum master to handle backlogs and new requests; •Providing information to the third parties about activities and needs for compliance. Hier ga je werken Our client is a leading organization focusing on animal nutrition, offering solutions that

Bekijk vacature »

Software Ontwikkelaar

Functieomschrijving In deze uitdagende functie als Software Developer ga je de volgende taken uitvoeren: Maatwerk back-end software programmeren; API koppelingen bouwen; Software optimaliseren voor klanten; Bouwen maatwerk applicaties; Werken met Microsoft stack zoals C#, .NET (Core) en Entity framework; Bedrijfsprofiel Je gaat werken bij een klein softwareontwikkelingsbureau, die maatwerk software bouwt voor klanten door heel Nederland. Dit doen zij al meer dan 20 jaar. Het is van oorsprong een familiebedrijf, opgezet door de eigenaar, die er nog steeds werkt. Het team bestaat vooral uit back-end developers en één systeembeheerder. Je krijgt veel kans om jezelf te ontwikkelen en krijgt tevens

Bekijk vacature »

Senior Airport Developer ( System engineer)

De functie Nice to know (you) De nieuwe A-pier wordt de duurzaamste van Schiphol. Als deze af is ligt er 4000 vierkante meter zonnepanelen op het dak. En de toiletten? Die spoelen door met regenwater. we gaan ervoor: het creëren van de meest duurzame en hoogwaardige luchthavens ter wereld. een toekomstbestendig en duurzaam Schiphol. Daar werken we elke dag hard aan in team Development & Sustainability. Jij bent regisseur, expert én aanjager van de ontwikkeling van Schiphol. Connecting your world Hoe maak je de ambities en doelstellingen van Schiphol concreet in een project? De waarde voor Schiphol naar eisen die

Bekijk vacature »

Senior Front end developer

Functie Wij zijn op zoek naar een ambitieuze, zelfsturende Front-end Expert die ons (internationale) team komt versterken. Onze huidige software development afdeling bestaat uit 7 developers en designers. Wij zijn een écht softwarehuis, dus ervaring in software development is wel echt een must. Er wordt tegelijkertijd aan meerdere projecten gewerkt, voor mooie toonaangevende klanten. Je hebt dus regelmatig te maken met deadlines en opleveringen. Een deel van onze omgeving is in Angular.JS. Dit deel wordt langzamerhand omgebouwd naar de nieuwste versie van Angular. Jouw werkzaamheden zullen bestaan uit: Het aansturen en begeleiden van jouw collega’s Het implementeren van visuele elementen

Bekijk vacature »

SQL Database ontwikkelaar

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »
Sander Bakker

Sander Bakker

13/03/2016 14:12:46
Quote 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
if (!isset($_SESSION)) { session_start(); }

if (isset($_SESSION['login']) && $_SESSION['login'] === true && isset($_SESSION['userid']) && $_SESSION['userid'] != "") {
    header('location: loggedin.php');
    exit();
}


include "connect.php";
include "functions.php";

$error = "";

if (isset($_POST['login']) || isset($_POST['username']) || isset($_POST['password']) || isset($_POST['g-recaptcha-response'])) {

    $username = $_POST['username'];
    $password = $_POST['password'];
    $captcha=    $_POST['g-recaptcha-response'];
    if (checkUsername($username) === false) {
        $error = "Onjuiste inlogpoging";
    }

    if (checkPassword($password) === false) {
        $error = "Onjuiste inlogpoging";
    }

            if(!$captcha){
                  $error = "Please check the the captcha form.";
                  
                }


    $secure_username = bin2hex(htmlspecialchars($username));
    $secure_password = bin2hex(htmlspecialchars($password));

    $q_checklogin = mysqli_query($conn, "SELECT id FROM users WHERE username = UNHEX('$secure_username') AND password = UNHEX('$secure_password')");

    if (mysqli_num_rows($q_checklogin) === 1) {
        $r_checklogin = mysqli_fetch_assoc($q_checklogin);
        $_SESSION['userid'] = $r_checklogin['id'];
        $_SESSION['login'] = true;
        header('location: loggedin.php');
    }
else {
        $error = "Onjuiste inlogpoging";
    }

}

?>


Ik heb deze code geschreven maar iedere keer als ik wil inloggen logt de website in zonder dat de captcha geverifieerd is, dit niet mij bedoeling. De gebruikersnaam en het wachtwoord moeten kloppen hierna moet de captcha geverifieerd worden en dan pas mag er ingelogd zijn. Hoe krijg ik het voor mekaar om dit te doen?
 
PHP hulp

PHP hulp

19/05/2024 17:35:20
 
- SanThe -

- SanThe -

13/03/2016 14:51:56
Quote Anchor link
Je checked de captcha nergens.
En de query is niet beveiligd.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/03/2016 14:54:12
Quote Anchor link
a) als je het inlogformulier toont dan schrijf je de captha naar de sessie.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
session_start();
$_SESSION['captcha'] = $captcha;
?>


b) als het formulier verstuurd is dan vergelijk je de captcha uit de sessie met de captcha in de $_POST array.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
session_start();
if(!isset($_SESSION['captcha']) || trim(strtolower($_SESSION['captcha'])) != trim(strtolower($_POST['captcha'])))
    $error = 'Captcha is niet juist';
?>



Ik raad je sterk aan de wachtwoorden te versleutelen met bcrypt (bij example #2). Je moet hiervoor wel PHP versie 5.5 of hoger hebben draaien.
Gewijzigd op 13/03/2016 15:00:17 door Frank Nietbelangrijk
 
Sander Bakker

Sander Bakker

13/03/2016 15:04:30
Quote Anchor link
Waar zouden deze 2 voorbeelden dan in de code komen te staan. Ben een beginner met PHP net een maandje bezig & snap nog niet helemaal hoe & waar alles moet staan
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/03/2016 15:12:37
Quote Anchor link
session_start() zet je helemaal boven in je script.
voorbeeld a zet je boven de html van je form
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
session_start();

$capthca = 'AB123';

$_SESSION['captcha'] = $captcha;
?>

<form>
   Hier je formfields
</form>


het tweede voorbeeld zet je in de code die je boven toont
Gewijzigd op 13/03/2016 15:17:45 door Frank Nietbelangrijk
 
Sander Bakker

Sander Bakker

13/03/2016 15:15:52
Quote Anchor link
Jaa maar hoe ziet mijn code er dan uit waar moet ik dat deel van jou in mijn code vragen (dat is de vraag nu)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/03/2016 15:44:31
Quote Anchor link
een werkend voorbeeldje dan maar
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
<?php
// een functie die een willekeurige reeks letters en cijfers maakt
function generateRandomString($length = 10) {
    $characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }

    return $randomString;
}


session_start();

$error = '';

// als het formulier verstuurd wordt dan is de request in de POST methode.
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    // validatie van de captcha
    if(!isset($_SESSION['captcha']) || trim(strtolower($_SESSION['captcha'])) != trim(strtolower($_POST['captcha']))) {
        $error = 'Captcha is niet juist';
    }

    
    // HIER KAN NOG MEER VALIDATIE PLAATSVINDEN
    
    
    // als de validatie geslaagd is sturen we de gebuiker door naar een andere pagina

    if($error == '') {
        header('Location: homepage.php');
        exit;
    }
}


// maak een nieuwe captcha code
$_SESSION['captcha'] = generateRandomString(5);

// PAS HIERONDER STARTEN WE MET DE OUTPUT. session_start() en header() zouden anders niet werken!

// DISCLAIMER: GEBRUIK GEEN SVG OF TEXT OM DE CAPTCHA WEER TE GEVEN MAAR GENEREER EEN AFBEELDING.
// HIER IS DE CAPTCHA WEL GEWOON TEKST MAAR DIT IS SLECHTS EEN KORT VOORBEELD!

?>

<!DOCTYPE html>
<html>
    <head>
        <title>Captcha!</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <?php
            if(strlen($error))
                echo '<p>' . $error . '</p>';
        ?>

        <svg height="30" width="200">
            <text x="0" y="15" fill="red"><?php echo $_SESSION['captcha']; ?></text>
        </svg>
        <form action method="post">
            <input type="text" name="captcha" placeholder="vul de captcha code in">
            <button>Test!</button>
        </form>
    </body>
</html>
 
Sander Bakker

Sander Bakker

13/03/2016 15:49:39
Quote Anchor link
Wat jij me nu geeft is een zelf gemaakte captcha maar ik wil die van google gebruiken zoals die in mijn code boven in het topic ????
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/03/2016 15:52:04
Quote Anchor link
Waar? geef eens een linkje?
 
Sander Bakker

Sander Bakker

13/03/2016 15:56:35
Quote 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
if (!isset($_SESSION)) { session_start(); }

if (isset($_SESSION['login']) && $_SESSION['login'] === true && isset($_SESSION['userid']) && $_SESSION['userid'] != "") {
    header('location: loggedin.php');
    exit();
}


include "connect.php";
include "functions.php";

$error = "";

if (isset($_POST['login']) || isset($_POST['username']) || isset($_POST['password']) || isset($_POST['g-recaptcha-response'])) {

    $username = $_POST['username'];
    $password = $_POST['password'];
    $captcha=    $_POST['g-recaptcha-response'];
    if (checkUsername($username) === false) {
        $error = "Onjuiste inlogpoging";
    }

    if (checkPassword($password) === false) {
        $error = "Onjuiste inlogpoging";
    }

            if(!$captcha){
                  $error = "Please check the the captcha form.";
                  
                }


    $secure_username = bin2hex(htmlspecialchars($username));
    $secure_password = bin2hex(htmlspecialchars($password));

    $q_checklogin = mysqli_query($conn, "SELECT id FROM users WHERE username = UNHEX('$secure_username') AND password = UNHEX('$secure_password')");

    if (mysqli_num_rows($q_checklogin) === 1) {
        $r_checklogin = mysqli_fetch_assoc($q_checklogin);
        $_SESSION['userid'] = $r_checklogin['id'];
        $_SESSION['login'] = true;
        header('location: loggedin.php');
    }
else {
        $error = "Onjuiste inlogpoging";
    }

}

?>


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
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<!DOCTYPE html>
<html lang="en">
  <head>
  <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" type="text/css">
  <link rel="stylesheet" href="css/stylesheet.css" type="text/css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    <script src='https://www.google.com/recaptcha/api.js'></script>
  <script src="js/java.js"></script>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Login</title>
  <style>
  .error {
    color: darkred;
    font-weight: bold;
  }
  </style>
  </head>
  <body>
    <nav class="navbar navbar-default">
    <div class="container-fluid">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="index.php">SBRM National Bank</a>
      </div>
      <div class="collapse navbar-collapse" id="myNavbar">
        <ul class="nav navbar-nav">
          <li><a href="index.php">Home</a></li>
          <li><a href="#">Particulier</a></li>
          <li><a href="#">Persoonlijk</a></li>
          <li><a href="#">Priv</a></li>
          <li><a href="#">Zakelijk</a></li>

        </ul>
        <ul class="nav navbar-nav navbar-right">
          <li><a href="register.php"><span class="glyphicon glyphicon-user"></span> Registeren</a></li>
          <li class="active"><a href="login.php"><span class="glyphicon glyphicon-log-in"></span>  Inloggen</a></li>
        </ul>
      </div>
    </div>
    </nav>
    <div class="container-fluid hero-slide">
      <div class="row">
    <div id="myCarousel" class="carousel slide " data-ride="carousel">



      <div class="carousel-inner" role="listbox">
        <div class="item active">
          <img src="images/login.jpg" alt="Ad">
    <div class="carousel-caption">
          <h3 class="caption">Inloggen</h3>

        </div>
      </div>
      </div>
    </div>
    </div>
  </div>

<div class="container padding-top-10">
  <div class="panel col-md-6">
    <div class="panel-heading "><h5>Inloggen</h5></div>
    <div class="panel-body">
      <form action="login.php" method="post">
<label for="username" class="control-label">Gebruikersnaam:</label>
        <div class="row ">
          <div class="col-md-12">
            <input type="text" class="form-control" id="username" placeholder="Gebruikersnaam" name="username" value="<?php if (isset($_POST['username'])) { echo $_POST['username']; } ?>" required/>
          </div>
        </div>
<label for="password" class="control-label">Wachtwoord:</label>
        <div class="row ">
          <div class="col-md-12">
            <input type="password" class="form-control" id="password" placeholder="Wachtwoord" name="password" value="<?php if (isset($_POST['password'])) { echo $_POST['password']; } ?>" required/>
          </div>
          <!-- Alleen nodig bij registratie, maar je kan hier wel een pincode als extra beveiliging van maken gezien het normaal om geld gaat
          <div class="col-md-6">
            <input type="password" class="form-control" id="password" placeholder="Herhaal Wachtwoord" name="rpassword" required/>
          </div>
          -->
                <div class="row">
                    <div class="col-md-8 padding-top-10 ">
                        <div class="g-recaptcha" data-sitekey="6LcCsBoTAAAAAK72uzyJSrgWwD8xuF6jFIfgFaHX"></div>
                    </div>
                </div>
        </div>
        <div class="row">
          <div class="col-md-2 padding-top-10">
            <input type="submit" name="login" class="btn btn-succes" value="Login">
          </div>
        </div>
        <?php if ($error !== "") { ?>
        <div class="row ">
          <div class="col-md-12 error">
            <?php echo $error; ?>
          </div>
        </div>
        <?php } ?>
        <div class="row">
          <div class="col-md-12 padding-top-10">
            <p class="pleft">Door op <b>login</b> te klikken, gaat u akkoord met de <a class="algemeen" href="#" data-toggle="modal" data-target="#t_and_c_m">Algemene Voorwaarden</a> opgesteld door deze site.</p>
          </div>
        </div>
      </form>
    </div>
</div>
</div>


  <div class="modal fade" id="t_and_c_m" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
                <h4 class="modal-title" id="myModalLabel">Algemene Voorwaarden</h4>
            </div>
            <div class="modal-body">
        <p>Deze algemene voorwaarden zijn tot stand gekomen in overleg
tussen de Nederlandse Vereniging van Banken en de Consumentenbond
in het kader van de Cordinatiegroep Zelfreguleringsoverleg
van de Sociaal-Economische Raad en treden in werking
per 1 november 2009. Over overige (product)voorwaarden die
van toepassing kunnen zijn heeft geen overleg plaatsgevonden.
De Consumentenbond behoudt zich het recht tot collectieve
actie voor met betrekking tot dergelijke voorwaarden.</p>
      </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-primary" data-dismiss="modal">Ik ga akkoord</button>
            </div>
        </div>
    </div>
</div>

</div>

<footer>
  <div class="container">
    <div class="row">
      <div class="col-sm-3">
        <h6>Copyright &copy; 2016</h6>
        <ul class="list-unstyled">
          <li class="boss">Sander Bakker</li>
          <li class="unstyled">Bob Lansbergen</li>
          <li class="unstyled">Ronald van den Heuvel</li>
          <li class="unstyled">Max Donck</li>
        </ul>
      </div>
      <div class="col-sm-3">
        <h6>Over Ons</h6>
        <p id="pfont">Dit is een website ontworpen om een banksysteem te simuleren met PHP en mySQL</p>
      </div>

      <div class="col-sm-2">
        <h6>Navigatie</h6>
        <ul class="list-unstyled">
          <li class="unstyled"><a href="#">Home</a></li>
          <li class="unstyled"><a href="#">Particulier</a></li>
          <li class="unstyled"><a href="#">Persoonlijk</a></li>
          <li class="unstyled"><a href="#">Priv</a></li>
          <li class="unstyled"><a href="#">Zakelijk</a></li>
        </uL>
      </div>
      <div class="col-sm-2">
        <h6>Contact</h6>
        <ul class="list-unstyled">
          <li class="unstyled"><a href="#">Google +</a></li>
          <li class="unstyled"><a href="#">Facebook</a></li>
          <li class="unstyled"><a href="#">Twitter</a></li>
          <li class="unstyled"><a href="#">YouTube</a></li>
        </uL>
      </div>
    </div>
  </div>
</footer>
  </body>
  </head>
  </html>


Dit is de volledige code die ik gebruik. Hierin is de google reCaptcha terug te vinden binnen een div onder de form class :)
Gewijzigd op 13/03/2016 16:09:08 door Sander Bakker
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/03/2016 15:59:00
Quote Anchor link
zet het even tussen [ c o d e ] en [ / c o d e ] maar dan zonder al die spaties. Dan kunnen we het beter lezen.
 
Sander Bakker

Sander Bakker

13/03/2016 16:09:25
Quote Anchor link
Gedaan
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/03/2016 16:12:58
Quote Anchor link
ik heb het gezien. google recaptcha.. i ll be back.

Toevoeging op 13/03/2016 16:42:39:

Oke voorbeeld aangepast met Recaptcha van google.

- zelf even je eigen site-key en secret-key er in zetten
- werkt alleen met gebruik van een domeinnaam dus niet met 127.0.0.1 of localhost.

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
<?php
function checkCaptcha($secret, $captcha) {
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify');
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,
            'secret=' . $secret . '&response=' . $captcha);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = curl_exec($ch);

    curl_close ($ch);
    
    $response = json_decode($response, TRUE);
    
    if(isset($response['success']) && $response['success'] == 'true')
        return true;
    
    return false;
}


session_start();

$key = 'jouw eigen site-key';
$secret = 'jouw eigen secret-key';
$error = '';

// als het formulier verstuurd wordt dan is de request in de POST methode.
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    if(!checkCaptcha($secret, $_POST['g-recaptcha-response']))
            $error = 'Ongeldige captcha';
    
    // HIER KAN NOG MEER VALIDATIE PLAATSVINDEN
    
    
    // als de validatie geslaagd is sturen we de gebuiker door naar een andere pagina

    if($error == '') {
    // DOE HIER WAT JE MOET DOEN VOOR DE AFHANDELING VAN JE FORMULIER

        header('Location: homepage.php');
        exit;
    }
}

// PAS HIERONDER STARTEN WE MET DE OUTPUT. session_start() en header() zouden anders niet werken!
?>

<!DOCTYPE html>
<html>
    <head>
        <title>Captcha!</title>
        <meta charset="UTF-8">
        <script src='https://www.google.com/recaptcha/api.js'></script>
    </head>
    <body>
        <?php
            if(strlen($error))
                echo '<p>' . $error . '</p>';
        ?>

        <form action method="post">
            <div class="g-recaptcha" data-sitekey="<?php echo $key; ?>"></div>
            <button>Test!</button>
        </form>
    </body>
</html>
Gewijzigd op 13/03/2016 16:58:08 door Frank Nietbelangrijk
 
Thomas van den Heuvel

Thomas van den Heuvel

14/03/2016 13:22:31
Quote Anchor link
Sander Bakker op 13/03/2016 15:04:30:
Ben een beginner met PHP net een maandje bezig & snap nog niet helemaal hoe & waar alles moet staan

Wellicht is een loginsysteem waarbij je communiceert met een externe dienst ter verificatie niet de beste plaats om te starten met PHP. Da's toch een beetje binnenkomen via de zijdeur.
 
- Ariën  -
Beheerder

- Ariën -

14/03/2016 13:27:22
Quote Anchor link
@Thomas, maar het kan geen kwaad om te profiteren van een goed algoritme van Google.
 
Thomas van den Heuvel

Thomas van den Heuvel

14/03/2016 13:33:22
Quote Anchor link
@Ariën toch alleen als je kunt doorgronden wat er gebeurt, anders is het niets meer dan een "googeltruuk".

Indien je je eigen loginmechanisme schrijft -zelfs, en mogelijk te meer, wanneer je gebruik maakt van hulpstukken- is het zaak dat je snapt wat je doet.
 



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.