Controle op connectie met MySQLi

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3

Thomas van den Heuvel

Thomas van den Heuvel

17/03/2017 16:18:37
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<meta charset="utf-8">

Interessant. Hoe luidt de character encoding van je database-tabel? Je stelt niet expliciet in dat je middels "utf8" wilt communiceren met MySQL. Mogelijk neemt deze aan dat je data in "latin1" aanbiedt en aangeleverd wilt hebben. Dit zou dan tot gevolg hebben dat, indien je tabel utf8 is, data die wordt weggeschreven dubbel utf8 ge-encodeerd wordt en in het verkeerde formaat weergegeven wordt op webpagina's.

Dit zou dan pas aan het licht komen tijdens een export of wanneer je het maken van je verbinding repareert door expliciet een character encoding in te stellen via een aanroep van set_charset() direct na het maken van een verbinding.

Laat niets aan het toeval over, stel dit soort zaken expliciet in en zorg dat alle character encoderingen (een vorm van) UTF-8 zijn. Dit scheelt je later een hoop problemen.
 
PHP hulp

PHP hulp

01/11/2024 03:33:32
 
Bart V B

Bart V B

17/03/2017 16:23:30
Quote Anchor link
Laten we eerst even kijken of TS uit de code komt waar hij nu mee aan het stoeien is Thomas.
True, is een belangrijke, maar voor nu even te taaie stof denk ik. ;)
 
Rubensky PHP starter

Rubensky PHP starter

18/03/2017 10:43:36
Quote Anchor link
Oke mensen dank voor alle reparatie werkzaamheden.

Bart V B ik begrijp je code behalve deze regel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if(isset($username) && trim($username) == '')


Is het niet dubbel isset en leeg (=='')?

Tomas op jou vraag kom ik later terug.
 
- Ariën  -
Beheerder

- Ariën -

18/03/2017 11:08:31
Quote Anchor link
Nee, want eerst controleer met met isset() of de variabele bestaat. Misschien bestata deze wel niet eens door een typfout. En daarna ga je de variabele door trim() halen om onnodige witruimtes voor/na te strippen en dat vergelijk je met een lege string.

Die isset() is dus preventief.
 
Rubensky PHP starter

Rubensky PHP starter

21/04/2017 15:49:09
Quote Anchor link
Mensen ik kom vreselijk laat terug op dit topic daar ben ik mij van bewust. Maar misschien mag ik dan toch de vraag nog even stellen. De code van Bart V B klopt niet. Op lijn 33 krijg ik de fout
Parse error: syntax error, unexpected '.' ik heb zelf al wat geschoven maar kom er niet zo goed uit.

Toevoeging op 21/04/2017 15:49:09:

Mensen ik kom vreselijk laat terug op dit topic daar ben ik mij van bewust. Maar misschien mag ik dan toch de vraag nog even stellen. De code van Bart V B klopt niet. Op lijn 33 krijg ik de fout
Parse error: syntax error, unexpected '.' ik heb zelf al wat geschoven maar kom er niet zo goed uit.
 
Willem vp

Willem vp

21/04/2017 15:55:33
Quote Anchor link
Op die regel staat een puntkomma die er niet hoort.
 
Rubensky PHP starter

Rubensky PHP starter

25/04/2017 11:16:55
Quote Anchor link
Oke mensen, Ik heb een prachtige tut gevonden over checkboxes LEVEN dit FORUM!

Maar nu is de vaag hoe ga ik ervoor zorgen dat de boel in de database komt? Je moet ze dan eerst verzenden uitlezen en erin plaatsten.

Echter is de vraag hoe kan ik dat combineren met mijn huidige formulier?

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
<?php
    ini_set('display_errors', 1);
    error_reporting (E_ALL);

    // t (): plaats een aantal tabs en eventueel een newline
    // $n_tabs: hoeveel tabs je wilt
    // $newline: wel of geen nieuwe regel

    function t($n_tabs, $newline = false) {
        if ($newline) echo "\n";
        for ($i = 0; $i < $n_tabs; $i++) {
            echo "\t";
        }
    }


    // make_checkboxes (): maak een serie checkboxes met dezelfde name[]
    // $name: string met de naam van de checkboxen
    // $values: array met de values van de checkboxen
    // $selections: array met de geselecteerde checkboxen
    // $vertical: boolean voor horizontaal (false) of verticaal (true)

    function make_checkboxes ($name, $values, $selections, $vertical = false) {
        foreach ($values as $value) {
            if ($vertical) {
                t (3, true);
                echo '<p>';
            }

            t (3, true);
            echo '<input id="' . $value . '" name="' . $name . '[]" type="checkbox" value="' . $value . '"';
            if (in_array ($value, $selections)) {
                echo ' checked="checked"';
            }

            echo '>';
            t (3, true);
            echo '<label for ="' . $value . '">' . $value . '</label>';
            if ($vertical) {
                t (3, true);
                echo '</p>';
            }
        }
    }


    // initialisatie-arrays;
    // drie series checkboxen als voorbeeld

    $hobbies = array ('uitgaan', 'lezen', 'tuinieren', 'PHP', 'koken');
    $huisdieren = array ('kat', 'hond', 'dwerghamster', 'konijn', 'cavia', 'schildpad', 'goudvis');


    // als het formulier verzonden is vangen we de values op
    // LET OP: als geen één checkbox van een groep is aangevinkt
    // bestaat er géén array van in de POST variabelen. Vandaar dat
    // we hier moeten checken met isset ()

    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $hobbies_selections        = (isset ($_POST['hobbies'])) ? ($_POST['hobbies']) : (array ());
        $huisdieren_selections    = (isset ($_POST['huisdieren'])) ? ($_POST['huisdieren']) : (array ());

    }

    // formulier is nog niet gepost, dus hier een lege array maken
    // we zouden ook een array met standaardwaarden kunnen maken om
    // sommige of alle checkboxen alvast te selecteren

    else {
        $hobbies_selections        = array ();
        $huisdieren_selections    = array ();

    }

?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Selective Memory</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style type="text/css">
        h1 {
            font: 18px arial;
            color: #f99;
            border-bottom: 1px dashed #f99;
            padding-bottom: 5px;
        }
        p, label, select, option {
            font: 12px verdana;
            color: #66f;
        }
        label {
            cursor: pointer;
        }
    </style>
</head>

<body>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        <h1>Wat zijn je hobbies?</h1>
        <p><?php make_checkboxes ('hobbies', $hobbies, $hobbies_selections); ?></p>
        <h1>Welke huisdieren heb je?</h1>
        <?php make_checkboxes ('huisdieren', $huisdieren, $huisdieren_selections, true); ?>
        <p><input type="submit" value="verzenden"></p>
    </form>
</body>
</html>
 
- Ariën  -
Beheerder

- Ariën -

25/04/2017 11:59:04
Quote Anchor link
De $_POST-waardes uit je formulier in je INSERT-query gooien. En uiteraard deze netjes met mysqli_real_escape_string() escapen.

Om te kijken wat je $_POST array bevat, kan je dit scriptje als hulpmiddel gebruiken, op het moment dat je hebt gecontroleerd of je formulier verstuurd is.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "<pre>".print_r($_POST,1)."</pre>";
?>
Gewijzigd op 25/04/2017 12:06:05 door - Ariën -
 
Rubensky PHP starter

Rubensky PHP starter

25/04/2017 14:13:18
Quote Anchor link
mooi die begrijp ik alleen met de functions in dat formulier kan je ze toch niet even onder elkaar plakken neem ik aan. Ik begrijp wat er gebeurt. Echter begrijp ik niet hoe deze tot 1 te vermaken. Eigenlijk ben ik opzoek (op internet kan ik niet veel werkend vinden. Naar een formuliertje met veldjes (hebben we al) een checkbox en een radio button. Zodat ik ga begrijpen wat er gebeurt en deze in een DB kan opslaan. Echter vind ik ze wel los maar kan ze niet goed tot 1 vermaken.
 
- Ariën  -
Beheerder

- Ariën -

25/04/2017 14:22:20
Quote Anchor link
Ik snap je probleem niet echt zo. Je kan nu toch zien welke data je verstuurt? Die verwerkt je dan naar je database.
 
Rubensky PHP starter

Rubensky PHP starter

25/04/2017 14:28:07
Quote Anchor link
ik zal proberen het duidelijker te maken want ja, het is lastig. Wat ik wil is een formulier met een paar tekst velden een paar checkboxes en een paar radiobuttons. Dit alles in één formulier waarvan de informatie dan naar de database wordt verzonden.

Ik kan wel 3 losse formulieren vinden maar begrijp niet hoe ik die dan kan samenvoegen tot één formulier.
 
- Ariën  -
Beheerder

- Ariën -

25/04/2017 14:31:14
Quote Anchor link
Jouw script bestaat uit functies. Dit zijn enkele bouwstenen om je formulier op te bouwen en met name om je checkboxes samen te stellen op een eenvoudige wijze.

Die functies die je oproept (de bouwstenen dus) kan je overal in je formulier gebruiken.
Gewijzigd op 25/04/2017 14:31:28 door - Ariën -
 
Rubensky PHP starter

Rubensky PHP starter

25/04/2017 14:41:48
Quote Anchor link
Dank voor de hulp mensen laat verder maar zitten voor dit moment. Ik zal het wel niet begrijpen of niet uit kunnen leggen.
 
- Ariën  -
Beheerder

- Ariën -

25/04/2017 14:56:03
Quote Anchor link
Wat lukt er nu niet aan jouw script die je nu hebt?
 
Rubensky PHP starter

Rubensky PHP starter

25/04/2017 15:03:43
Quote Anchor link
Wat niet lukt is om aan mijn eerder gebouwde scriptje met de in te vullen velden naam en E-mail. een paar checkboxen toe te voegen. bijvoorbeeld oliebollen appelbignets en patat. 3 een radiobutton man/ vrouw. Om daar 1 formulier van te maken en dat in een database te proppen.
 
- Ariën  -
Beheerder

- Ariën -

25/04/2017 15:08:45
Quote Anchor link
Je weet hoe je in HTML een formulier moet samenstellen?
Gewijzigd op 25/04/2017 15:09:13 door - Ariën -
 
Rubensky PHP starter

Rubensky PHP starter

25/04/2017 16:02:26
Quote Anchor link
Dat weet ik.
 
Jan de Vrije

Jan de Vrije

17/09/2017 19:48:05
Quote Anchor link
Mijn code draaiend onder PHP 5.6 geeft GEEN foutboodschap vanwege het teken '@', maar onder PHP 7 wordt er TOCH ALTIJD een foutboodschap weergegeven.
Mijn code ziet er als volgt uit:

$dbs = @mysqli_connect($dbshst, $dbsusr, $dbspsw);
if($dbs === false){---mijn eigen foutboodschaproutine---}

HOE kan ik elke mysqli foutboodschappen ONDERDRUKKEN onder PHP 7?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/09/2017 19:56:33
Quote Anchor link
a) Waarom zou je dat willen? Lijkt me handiger om je code zo te schrijven dat er geen foutmeldingen voorkomen.
b) Tijdens ontwikkeling wil je zeker alle foutmeldingen zien. Als alles goed werkt en online staat kan ik me nog voorstellen dat je ALLE foutmeldingen wilt onderdrukken en niet alleen die van mysqli.
c) Alle foutmeldingen onderdrukken of juist tonen is gewoon een php.ini instelling:

Even van stackoverflow gekopieerd:


to Hide All Errors:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(0);
ini_set('display_errors', 0);
?>

to Show All Errors:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
 

Pagina: « vorige 1 2 3



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.