mysqli_real_escape_string gaat niet goed

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

George van Baasbank

George van Baasbank

26/08/2014 16:22:52
Quote Anchor link
Hallo allemaal,

Op aangeven van 'deskundigen' heb ik de input van mijn invulformulier afgevangen met een mysqli_real_escape_string. Het probleem was eerder dat een record niet werd opgeslagen door o.a. de aanwezigheid een een single-quote. Dat probleem is nu opgelost maar nu zie ik in de opgeslagen info drie keer een backslash verschijnen. Dat is natuurlijk niet de bedoeling.
Wellicht staat er ergens een instelling (nog) niet goed.

Mijn html-code

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
<form action="index.php?naamgegevens=samenvatting" method="POST">
        <article class="kolom_links">
            <table>
                <tr>
                    <td><label>Geslacht: </label><sup>*</sup></td>
                    <td>
                        <?php
                            while($rowGeslacht = mysqli_fetch_array($cResultGeslacht)) {
                        ?>

                        <input type="radio" name="geslacht" value="<?php echo $rowGeslacht['waarde'] ; ?>" /><span class="tekst"><?php echo $rowGeslacht['inhoud'] ; ?></span>
                        <?php  } ?>
                    </td>
                </tr>
                <tr>
                    <td><label>Voorletter(s): </label><sup>*</sup></td>
                    <td><input id="verplicht" type="text" name="voorletters" class="upper" placeholder="Uw voorletters" required="" /></td>
                </tr>
                <tr>
                    <td><label>Evt. tussenvoeging:</label></td>
                    <td><input id="verplicht" type="text" name="tussenvoeg" placeholder="Eventuele tussenvoeging" /></td>
                </tr>
                <tr>
                    <td><label>Achternaam: </label><sup>*</sup></td>
                    <td><input id="verplicht" type="text" name="achternaam" placeholder="Uw familienaam" required="" /></td>
                </tr>
   </article>
</form>


De gebruikte php-code:

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
<?php
if($cAkkoord == "Ja" ) {
   include "include/connectie.inc.php";
   $_SESSION['voorletters'] = mysqli_real_escape_string($verbinding,$_POST['voorletters']);
   $_SESSION['tussenvoeg'] = mysqli_real_escape_string($verbinding,$_POST['tussenvoeg']);
   $_SESSION['achternaam'] = mysqli_real_escape_string($verbinding,$_POST['achternaam']);
  
   $cClassHoogte = "hoogte500";
   $lTest = 3;
}
else {
   $lTest = 1;
}


?>


Er wordt nu getoond/opgeslagen: Geachte heer Van \\\'t Baasbank,
Gewijzigd op 26/08/2014 16:24:01 door George van Baasbank
 
PHP hulp

PHP hulp

20/04/2024 02:15:30
 
Goto Learn

Goto Learn

26/08/2014 16:52:26
Quote Anchor link
Waarom zo lastig?

Het zou makkelijker gaan als je gewoon class aanriep.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$db
= new mysqli("localhost", "gebruiker", "wachtwoord", "database");

// En dan real_escape_string zo doen
$db->real_escape_string($var);
?>


Post ook even foutmeldingen, dat zou namelijk makkelijker maken om je te helpen..
Gewijzigd op 26/08/2014 16:54:12 door Goto Learn
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

26/08/2014 16:59:24
Quote Anchor link
Ik denk eerder dat je dubbel escaped, bij het opslaan in de sessie én bij het opslaan in de db?
 



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.