anti bot

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 volgende »

- Ariën  -
Beheerder

- Ariën -

10/11/2015 21:02:35
Quote Anchor link
En die wil je niet vertellen? ;-)
Laat ook even zien wat je aan code hebt.
Dat helpt wat makkelijker.
Gewijzigd op 10/11/2015 21:19:43 door - Ariën -
 
PHP hulp

PHP hulp

28/04/2024 23:26:05
 
Marcel Groot

Marcel Groot

10/11/2015 21:20:41
Quote Anchor link
Wat ik heb geprobeerd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
    }else{// Captcha verification is Correct. Final Code Execute here!        
        $msg="<span style='color:green'>The Validation code has been matched.</span>";        
    }
}
    
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
        $msg
= $sql;    
        $msg= "INSERT INTO students (name, _email, city)
                 VALUES ('"
.$_POST["name"]."','".$_POST["email"]."','".$_POST["city"]."')";    
?>



Dit ondere is dan wat ik daarboven bij $msg heb ingevuld.
Gewijzigd op 10/11/2015 21:21:12 door Marcel Groot
 
- Ariën  -
Beheerder

- Ariën -

10/11/2015 21:32:43
Quote Anchor link
Waarom zet je die in $msg?
$msg is niets meer dan een container waar het bericht wordt geplaatst of de captcha goed/fout is.

Je kan na die $msg regel prima je queries uitvoeren.
Let wel op SQL-injection, als je $_POST, $_GET en en/of $_COOKIE variabelen gaat gebruiken.
Je kan het beste mysqli_real_escape_string() gebruiken in combinatie met de MySQLi-functies
 
Bart V B

Bart V B

10/11/2015 21:42:06
Quote Anchor link
Wat ben je allemaal aan het toveren Marcel :)
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
<?php

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

    // hier je controles formulier validatie e.d.

    // hier je CAPTCHA dingetje als alles klopt

          

    if($captcha === true)
    {

       // dit kan.
       $msg= "<span style='color:green'>The Validation code has been matched.</span>";  

       // nu kunnen we alles veilig doen.. hier alleen nog wel wat tegen SQL injection doen, want ander is dit lek
       $sql = "INSERT INTO students (name, _email, city)
                 VALUES ('"
.$_POST["name"]."','".$_POST["email"]."','".$_POST["city"]."')";

       // query uitvoeren

    }
}

?>


Als je $sql in $msg zet, dan kan je uren turen naar je scherm, maar dat doet ie niet.
 
Marcel Groot

Marcel Groot

12/11/2015 17:13:59
Quote Anchor link
(dubbel)


Toevoeging op 12/11/2015 17:15:50:

Dus ik kan al mijn php hier gewoon in zetten

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php session_start();

if(isset($_POST['Submit'])){
    // code for check server side validation
    if(empty($_SESSION['captcha_code'] ) || strcasecmp($_SESSION['captcha_code'], $_POST['captcha_code']) != 0){  
        $msg="<span style='color:red'>The Validation code does not match!</span>";// Captcha verification is incorrect.        
    }else{// Captcha verification is Correct. Final Code Execute here!        
HIER        
    }
}
    
?>
Gewijzigd op 12/11/2015 17:14:42 door Marcel Groot
 
- Ariën  -
Beheerder

- Ariën -

12/11/2015 18:10:10
Quote Anchor link
Probeer het eens, en je weet het ;-)
 
Marcel Groot

Marcel Groot

12/11/2015 19:19:40
Quote Anchor link
Undefinded index student....

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
<?php session_start();

if(isset($_POST['Submit'])){
    // code for check server side validation
    if(empty($_SESSION['captcha_code'] ) || strcasecmp($_SESSION['captcha_code'], $_POST['captcha_code']) != 0){  
        $msg="<span style='color:red'>The Validation code does not match!</span>";// Captcha verification is incorrect.        
    }else{// Captcha verification is Correct. Final Code Execute here!        
        $msg="<span style='color:green'>The Validation code has been matched.</span>";    
$servername = "";
$username = "";
$password = "";
$dbname = "";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}


$sql = "INSERT INTO students (student_name, student_email, student_city)
VALUES ('"
.$_POST["student_name"]."','".$_POST["student_email"]."','".$_POST["student_city"]."')";

if ($conn->query($sql) === TRUE) {
echo "<script type= 'text/javascript'>alert('New record created successfully');</script>";
}
else {
echo "<script type= 'text/javascript'>alert('Error: " . $sql . "<br>" . $conn->error."');</script>";
}


$collection= array('orange', 'apple', 'grapefruit', 'banana', 'watermelon');
$fruit = array('orange', 'apple', 'grapefruit', 'banana', 'watermelon');
if(isset($_POST['submit']))
{
   $fruit = $_POST['fruit'];
   $values = array($collection);
    foreach($collection as $selection )
    {
     if(in_array($selection, $fruit))
            {
$values[ $selection ] = 1;  }
        else
            { $values[ $selection ] = 0;  }
   }
// end of foreach.
 
    // MySQL statement.    

$insert = "INSERT INTO table_fruit (orange, apple, grapefruit, banana, watermelon)
          VALUES ({$values['orange']}, {$values['apple']}, {$values['grapefruit']}, {$values['banana']}, {$values['watermelon']})"
;
// MySQL statement to execute the INSERT statement above.          
mysqli_query($conn, $insert) or die('<br/>Error reading database: '.mysqli_error($dbconnect));
mysqli_close($conn);
}
  // End of, if statement from the button check
;
}    
    }
    
?>
 
- Ariën  -
Beheerder

- Ariën -

12/11/2015 19:28:55
Quote Anchor link
Je bedoelt student_name, student_email of student_city, ik zie geen index met de naam Students.

In dat geval bestaan die $_POST variabelen niet, omdat die formuliervelden niet bestaan.
Verder mis er beveiliging tegen SQL-injection en ben je nu behoorlijk goed hackbaar:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$sql
= "INSERT INTO students (student_name, student_email, student_city)
    VALUES(
        '"
.$conn->real_escape_string($_POST["student_name"])."',
        '"
.$conn->real_escape_string($_POST["student_email"])."',
        '"
.$conn->real_escape_string($_POST["student_city"])."'
    )"
;
?>
Gewijzigd op 12/11/2015 19:31:48 door - Ariën -
 
Marcel Groot

Marcel Groot

12/11/2015 19:39:19
Quote Anchor link
Ik krijg nu nog steeds undefinded index voor students. (het $sql heb ik veranderd naar die van jou)
 
- Ariën  -
Beheerder

- Ariën -

12/11/2015 19:41:46
Quote Anchor link
Laat eens zien welke regel dat is? Die geeft PHP ook altijd door in foutmeldingen.
 
Marcel Groot

Marcel Groot

12/11/2015 19:53:26
Quote Anchor link
Notice: Undefined index: student_name on line 23
Notice: Undefined index: student_email on line 24
Notice: Undefined index: student_city on line 25

Toevoeging op 12/11/2015 19:54:07:

Marcel Groot op 12/11/2015 19:53:26:
Notice: Undefined index: student_name on line 23
Notice: Undefined index: student_email on line 24
Notice: Undefined index: student_city on line 25

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
<?php session_start();

if(isset($_POST['Submit'])){
    // code for check server side validation
    if(empty($_SESSION['captcha_code'] ) || strcasecmp($_SESSION['captcha_code'], $_POST['captcha_code']) != 0){  
        $msg="<span style='color:red'>The Validation code does not match!</span>";// Captcha verification is incorrect.        
    }else{// Captcha verification is Correct. Final Code Execute here!        
        $msg="<span style='color:green'>The Validation code has been matched.</span>";    
$servername = "";
$username = "";
$password = "";
$dbname = "";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}


$sql = "INSERT INTO students (student_name, student_email, student_city)
    VALUES(
        '"
.$conn->real_escape_string($_POST["student_name"])."',
        '"
.$conn->real_escape_string($_POST["student_email"])."',
        '"
.$conn->real_escape_string($_POST["student_city"])."'
    )"
;

if ($conn->query($sql) === TRUE) {
echo "<script type= 'text/javascript'>alert('New record created successfully');</script>";
}
else {
echo "<script type= 'text/javascript'>alert('Error: " . $sql . "<br>" . $conn->error."');</script>";
}


$collection= array('orange', 'apple', 'grapefruit', 'banana', 'watermelon');
$fruit = array('orange', 'apple', 'grapefruit', 'banana', 'watermelon');
if(isset($_POST['submit']))
{
   $fruit = $_POST['fruit'];
   $values = array($collection);
    foreach($collection as $selection )
    {
     if(in_array($selection, $fruit))
            {
$values[ $selection ] = 1;  }
        else
            { $values[ $selection ] = 0;  }
   }
// end of foreach.
 
    // MySQL statement.    

$insert = "INSERT INTO table_fruit (orange, apple, grapefruit, banana, watermelon)
          VALUES ({$values['orange']}, {$values['apple']}, {$values['grapefruit']}, {$values['banana']}, {$values['watermelon']})"
;
// MySQL statement to execute the INSERT statement above.          
mysqli_query($conn, $insert) or die('<br/>Error reading database: '.mysqli_error($dbconnect));
mysqli_close($conn);
}
  // End of, if statement from the button check
;
}    
    }
    
?>
 
- Ariën  -
Beheerder

- Ariën -

12/11/2015 19:59:30
Quote Anchor link
Die formuliervelden bestaan dan niet, zoals ik al zei.
Laat je formulier eens zien.
 
Marcel Groot

Marcel Groot

12/11/2015 20:04:59
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
<html>
    <
head>

         <
meta charset="utf-8">
<
title>PHP Secure Professional Captcha.</title>
<
link href="./css/style.css" rel="stylesheet">
<
script type='text/javascript'>
function
refreshCaptcha(){
    var
img = document.images['captchaimg'];
    img.src = img.src.substring(0,img.src.lastIndexOf("?"))+"?rand="+Math.random()*1000;
}

</script>

    </head>
    <body>
<div>
<form action="" method="post" name="form1" id="form1" >
           <input type="checkbox" name="fruit[Orange]" value="orange"> Orange
           <input type="checkbox" name="fruit[Apple]" value="apple"> Apple
           <input type="checkbox" name="fruit[Grapefruit]" value="grapefruit"> Grapefruit
           <input type="checkbox" name="fruit[Banana]" value="banana"> Banana
           <input type="checkbox" name="fruit[Watermelon]" value="watermelon"> Watermelon
<label>Student Name :</label>
<input type="text" name="student_name" id="name" required="required" placeholder="Please Enter Name"/><br /><br />
<label>Student Email :</label>
<input type="email" name="student_email" id="email" required="required" placeholder="[email protected]"/><br/><br />
<label>Student City :</label>
<input type="text" name="student_city" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
</form>
</div>

<meta charset="utf-8">
<script type='text/javascript'>
function refreshCaptcha(){
    var img = document.images['captchaimg'];
    img.src = img.src.substring(0,img.src.lastIndexOf("?"))+"?rand="+Math.random()*1000;
}
</script>
<form action="" method="post" name="form1" id="form1" >
  <table width="400" border="0" align="center" cellpadding="5" cellspacing="1" class="table">
    <?php if(isset($msg)){?>
    <tr>
      <td colspan="2" align="center" valign="top"><?php echo $msg;?></td>
    </tr>
    <?php } ?>
    <tr>
      <td align="right" valign="top"> Validation code:</td>
      <td><img src="captcha.php?rand=<?php echo rand();?>" id='captchaimg'><br>
        <label for='message'>Enter the code above here :</label>
        <br>
        <input id="captcha_code" name="captcha_code" type="text">
        <br>
        Can't read the image? click <a href='javascript: refreshCaptcha();'>here</a> to refresh.</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input name="Submit" type="submit" value="Submit" class="button1"></td>
    </tr>
  </table>
</form>
</body>
</html>
?>
 
- SanThe -

- SanThe -

12/11/2015 20:09:18
Quote Anchor link
Je hebt 2 <form>ulieren.
Je stuurt nu waarschijnlijk alleen het tweede.

Maak er 1 van.
 
Marcel Groot

Marcel Groot

12/11/2015 20:15:47
Quote Anchor link
:o het werkt nu thanks moet ik nu alleen nog sql beveiliging toevoegen?

Toevoeging op 12/11/2015 20:34:23:

Daarnaast is dit niet een beetje een rommeltje? (al wel wat kan ik weg halen over verbeteren?)

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

         <
meta charset="utf-8">
<
title>Testwebsite</title>
<
script type='text/javascript'>
function
refreshCaptcha(){
    var
img = document.images['captchaimg'];
    img.src = img.src.substring(0,img.src.lastIndexOf("?"))+"?rand="+Math.random()*1000;
}

</script>

    </head>
    <body>
<div>
<form action="" method="post" name="form1" id="form1" >
           <input type="checkbox" name="fruit[Orange]" value="orange"> Orange
           <input type="checkbox" name="fruit[Apple]" value="apple"> Apple
           <input type="checkbox" name="fruit[Grapefruit]" value="grapefruit"> Grapefruit
           <input type="checkbox" name="fruit[Banana]" value="banana"> Banana
           <input type="checkbox" name="fruit[Watermelon]" value="watermelon"> Watermelon
           <br>
<label>Student Name :</label>
<input type="text" name="student_name" id="name" required="required" placeholder="Please Enter Name"/><br /><br />
<label>Student Email :</label>
<input type="email" name="student_email" id="email" required="required" placeholder="[email protected]"/><br/><br />
<label>Student City :</label>
<input type="text" name="student_city" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
</div>
  
<meta charset="utf-8">
<script type='text/javascript'>
function refreshCaptcha(){
    var img = document.images['captchaimg'];
    img.src = img.src.substring(0,img.src.lastIndexOf("?"))+"?rand="+Math.random()*1000;
}
</script>
    <?php if(isset($msg)){?>
<?php echo $msg;?></td>
    <?php } ?>
Validation code:
<img src="captcha.php?rand=<?php echo rand();?>" id='captchaimg'><br>
<label for='message'>Enter the code above here :</label>
<br>
        <input id="captcha_code" name="captcha_code" type="text">
        <br>
        Can't read the image? click <a href='javascript: refreshCaptcha();'>here</a> to refresh.</td>
<input name="Submit" type="submit" value="Submit">
</form>
</body>
</html>
?>
 
- Ariën  -
Beheerder

- Ariën -

12/11/2015 23:10:26
Quote Anchor link
Klopt, je moet je queries ook nog beveiligen.
 
Marcel Groot

Marcel Groot

13/11/2015 16:05:02
Quote Anchor link
Let wel op SQL-injection, als je $_POST, $_GET en en/of $_COOKIE variabelen gaat gebruiken.
Je kan het beste mysqli_real_escape_string() gebruiken in combinatie met de MySQLi-functies

Hoe kan ik dat dan beveiligen?
 
- Ariën  -
Beheerder

- Ariën -

13/11/2015 16:10:05
Quote Anchor link
Zie hier....
Let er wel op dat dit Object Oriënted is.
Als je procedureel gebruikt (mysqli_query() etc..), dan is het
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysqli_real_escape_string($conn, $_POST['student_city'])
Gewijzigd op 13/11/2015 16:12:49 door - Ariën -
 
Obelix Idefix

Obelix Idefix

13/11/2015 16:12:22
Quote Anchor link
Marcel Groot op 13/11/2015 16:05:02:
Hoe kan ik dat dan beveiligen?

Door:
Marcel Groot op 13/11/2015 16:05:02:
Je kan het beste mysqli_real_escape_string() gebruiken in combinatie met de MySQLi-functies


Volg eens een tut, gebruik Google. Er is heel veel te vinden aan informatie hierover. Ook topics op dit forum.

Wat betreft je code: op regel 38, 39 en 40 open je PHP en sluit je af. Waarom?
Wat is de reden van regel 31?
Ik zou javascript niet midden in een pagina zetten. De javascript functie lijkt er overigens 2x in te staan.
 
- Ariën  -
Beheerder

- Ariën -

13/11/2015 16:20:14
Quote Anchor link
En gebruik bij voorkeur procedurele code, óf object-georienteerde. Het door elkaar gebruiken van elkaar leidt tot fouten in je script.
 

Pagina: « vorige 1 2 3 volgende »



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.