reCaptcha

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Technisch Applicatie ontwikkelaar

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! In deze functie werk jij voornamelijk aan: Het onderhouden en ontwikkelen van de IT systemen; Het opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werk je aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkel en implementeren je MS PowerApps en Power BI. Bedrijfsprofiel Je komt terecht bij een familiair

Bekijk vacature »

Java Developer

Dit ga je doen Als Java Developer ben je verantwoordelijk voor: Het ontwikkelen van nieuwe en bestaande webservices; Het uitbreiden van functionaliteiten binnen de producten- en dienstenportefeuille; Het werken aan gegevensuitwisseling met bijvoorbeeld SOAP; Testen van frameworks met gebruik van UNIT en Selenium. Hier ga je werken De organisatie waar je komt te werken is een semi-overheidsinstelling, gesitueerd in Utrecht en zorgt voor een goede samenwerking tussen verschillende overheidsinstanties. Het is een familiaire club die gaat voor kwaliteit en langdurige relaties. Zo zorgen zij ervoor dat er op grote schaal vertrouwelijke informatie tussen verschillende overheidsinstellingen wordt uitgewisseld. Hun werk zorgt

Bekijk vacature »

Medior C# Developer

You'll build modern applications for Coolblue's back office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become a Medior C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. Want to become C# Developer at Coolblue? Read below if the job suits you. You enjoy doing this Working with various types of

Bekijk vacature »

Back End Developer .NET

Dit ga je doen Ontwikkelen in C# .NET en werken aan nieuwbouw, uitbouw en onderhoud van de software (die communiceren met 68.000 sensoren, waardoor er meerdere miljoenen berichten per uur verwerkt worden); Samenwerken in Scrum Teams; Meewerken aan verschillende, uitdagende projecten; Werken met nieuwe technologieën en vrijheid krijgen om jezelf te ontwikkelen en door te groeien. Hier ga je werken Je komt als Developer te werken bij een organisatie die gespecialiseerd is in software die real-time wordt gebruikt. De software constateert waar werk moet worden uitgevoerd en de chauffeurs worden met een andere applicatie hierop geattendeerd. Ook wordt er direct

Bekijk vacature »

PHP Developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het development team. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met

Bekijk vacature »

Medior/senior Fullstack developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

High level C++ QT Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13486 Introductie Would you like to be involved in every aspect of software development for our exceptional products, from specification and design to testing and integration? If you're passionate about software development and eager to apply your programming skills to create customer-focused deliverables, then this is the perfect chance for you to expand your expertise. You can become a member of our Machine Control department's data-driven development team, where you'll design and build software solutions that optimize machine productivity. As a senior software design engineer, you'll participate in all phases

Bekijk vacature »

Full Stack Java ontwikkelaar

Functieomschrijving Voor de politie zijn wij op zoek naar een Full stack Java ontwikkelaar. Als ervaren full stack Java ontwikkelaar binnen de gewenste deadlines meewerken aan de totstandkoming van de gewenste werkzaamheden. Taken Upgraden van GeoServer, SOLR, Oracle Spatial database, Tomcat Migreren Oracle Spatial naar PostgreSQL/PostGIS Migreren SOLR naar ElasticSearch Geografische gegevens op het interne netwerk beschikbaar maken Doorontwikkelen en actualiseren van de geografische services Het up to date brengen van de CI/CD pipeline, samen met medewerkers die verantwoordelijk zijn voor de CI/CD tooling Aanspreekbaar op de solution architectuur en stemt die met collega's in het cluster Geo De opdracht

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij recent jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een erkende werkgever in regio Waalwijk zijn wij op zoek naar een back-end developer. Kennis of ervaring met C# & SQL is een must! Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in kaart, om ze

Bekijk vacature »

Java Developer / Sociaal domein

Dit ga je doen Nieuwbouw en doorontwikkeling; Beheer en wanneer nodig onderhoud; Bijdrage leveren in het functioneel- en technisch ontwerptraject; Analyseren van productie verstoringen; Meedenken over vernieuwingen en verbeteringen. Hier ga je werken De organisatie waar jij komt te werken focust zich op software development met een maatschappelijk tintje. De afdeling software ontwikkeling bestaat uit vijf verschillende scrum teams, met allen hun eigen focus gebied. Zo zijn er een aantal teams die zich focussen op specifieke applicaties, maar is er ook een team gericht op projecten. Binnen de organisatie staat innovatie en kwaliteit voorop. Een aantal applicaties draait nog op

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Front-end Developer

Functie omschrijving Wij zijn op zoek naar een Front-end Developer! Als Front-end Developer binnen dit softwarebedrijf ga je de frontends voor zowel je eigen interne projecten als die voor klanten opzetten, onderhouden en uitbreiden. Je zet ideeën om naar mooie successen voor de klanten. Dat is in een notendop wat je gaat doen! Wat kun je verwachten? Je werkt aan de doorontwikkeling van bestaande maatwerkapplicaties. Bijvoorbeeld wanneer de klant de applicatie wil uitbreiden met een nieuwe feature; Samen met het team van backenders en desginers zet je nieuwe ideeën van klanten om naar mooie oplossingen; Je werkt met verschillende frameworks.

Bekijk vacature »

Belastingdienst - Freelance Senior Cobol Applicati

Startdatum: 01.06.2023 Richttarief: €65,00 - €75,00 Duur van de opdracht: 7 maanden Uren per week: 36 Taal: Nederlands vereist! Gelieve in het Nederlands te solliciteren. Functieomschrijving: In de applicatie ETM zijn nu de inningsvoorzieningen voor ongeveer 25 aangifte- en aanslagmiddelen opgenomen. ETM is een extern aangeschafte service en het huidige contract met leverancier Oracle loopt af op 31-12-2022. Het programma uitfaseren ETM heeft als doel om vervanging te realiseren waarmee alle nu in gebruik zijnde ETM ondersteuning wordt overgenomen in nieuwe Inningsvoorzieningen om de continuïteit van de inningsprocessen te waarborgen. Eén van de inningsvoorzieningen die voor het einde van 31-12-2022

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

22/12/2024 18:24:36
 
- 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.