id fout

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Niek Kasius

Niek Kasius

24/06/2012 09:08:24
Quote Anchor link
In dit script gaat iets fout dat eigelijk zou mogen gebeuren.
er zit een fout afhandeling in die niet goed werkt, het moet volgens mij de invoer tegen houden als ik iets niet invul, maar dat doet die niet het verzend de id wel naar de database en stuurt me wel terug naar de invoer.

Quote:
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
<?php
include("../includes/header.php");
include("../includes/db_adreslijst.php");
$mysql_id=mysql_connect("$dbhost","$dbuser","$dbpass");
if(isset($_POST[invoeren])) {
    $Naam=$_POST[Naam];
    $Voornaam=$_POST[Voornaam];
    $Geb_datum=$_POST[Geb_datum];
    $Straat=$_POST[Straat];
    $Nr=$_POST[Nr];
    $Postcode=$_POST[Postcode];
    $Plaats=$_POST[Plaats];
    $Land=$_POST[Land];
    $Telefoon=$_POST[Telefoon];
    $Gsm=$_POST[Gsm];
    $Email=$_POST[$Email];
$sql=" INSERT into adressen (Naam,Voornaam,Geb_datum,Straat,Nr,Postcode,Plaats,Land,Telefoon,Gsm,Email) VALUES ('$Naam','$Voornaam','$Geb_datum','$Straat','$Nr','$Postcode','$Plaats','$Land','$Telefoon','$Gsm','$Email')";
$res=mysql_db_query("$db","$sql",$mysql_id);

            $fout=mysql_errno($mysql_id);
            if ($fout != 0) {
            $fout=mysql_error($mysql_id);
            echo '<font color="#FF2306">$fout</font>';
            mysql_close($mysql_id);
            echo '</body></html>';
            exit;
            }

            else {
                echo '<div align="left"><h3>De gegevens werden in de database aangepast</h4>
                <p>Je wordt over 2 seconden naar je pagina gestuurd.</p>'
;
            echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=invoeren.php\">";
                mysql_close($mysql_id);
                exit;
            }    
}
    
?>
Gewijzigd op 24/06/2012 09:09:29 door Niek Kasius
 
PHP hulp

PHP hulp

29/03/2024 16:26:27
 
Crispijn -

Crispijn -

24/06/2012 09:36:06
Quote Anchor link
Ik ben er even door heen gegaan en heb het wat opgeschoond maar niet getest. Let op hoe je je post afhandelt en je dan met je array om moet gaan.

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
<?php
include("../includes/header.php");
include("../includes/db_adreslijst.php");
$mysql_id=mysql_connect("$dbhost","$dbuser","$dbpass");
if($_SERVER['REQUEST_METHOD'] == 'post') {

// Moet je hier niet wat formulier controle inbakken? Mogen velden leeg blijven? Wil je niet op emailadres controleren? Oke, we gaan invoeren...

$sql=" INSERT into adressen (Naam,Voornaam,Geb_datum,Straat,Nr,Postcode,Plaats,Land,Telefoon,Gsm,Email) VALUES ('".mysql_real_escape_string($POST['Naam']."','".mysql_real_escape_string($POST['Voornaam']."','".mysql_real_escape_string($POST['Geb_datum']."','".mysql_real_escape_string($POST['Straat']."','".mysql_real_escape_string($POST['Nr']."','".mysql_real_escape_string($POST['Postcode']."','".mysql_real_escape_string($POST['Plaats']."','".mysql_real_escape_string($POST['Land']."','".mysql_real_escape_string($POST['Telefoon']."','".mysql_real_escape_string($POST['Gsm']."','".mysql_real_escape_string($POST['Email']."')";
$res=mysql_db_query("$db","$sql",$mysql_id);

            $fout=mysql_errno($mysql_id);
            if ($fout != 0) {
            $fout=mysql_error($mysql_id);
            echo '<font color="#FF2306">$fout</font>';
            mysql_close($mysql_id);
            echo '</body></html>';
            exit;
            }

            else {
                echo '<div align="left"><h3>De gegevens werden in de database aangepast</h4>
                <p>Je wordt over 2 seconden naar je pagina gestuurd.</p>'
;
            echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=invoeren.php\">";
                mysql_close($mysql_id);
                exit;
            }    
}
    
?>



Toevoeging op 24/06/2012 09:47:03:

Ik heb niet goed gelezen, je controle of er iets is ingevuld kan je op diverse manieren doen. Ik hou van een flexibele oplossing, de controle functies kan je in een apart bestand opnemen bijvoorbeeld:

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
<?php
$formErrors
= array ();

function
showError()
{

    global $formErrors;
    
    echo '<ul>';
    foreach ($formErrors as $key => $value)
    {

        echo '<li>'.$value.'</li>';
    }

    echo '</ul>';
}

function
addError($e)
{

    global $formErrors;
    array_push($formErrors, $e);
}


// als $e bestaat een boolean teruggeven
function hasError()
{

    global $formErrors;
    if(count($formErrors))
    {

        return true;
    }

    else
    {
        return false;
    }
}

function
checkNotEmpty($var)
{

    if(!empty($var))
    {

        return true;
    }
else{
        return false;
    }
}

function
checkStrlen($var,$length)
{

    if(strlen($var) >= (int) $length)
    {

        return true;
    }
else{
        return false;
    }
}


/**
 * En dan op je formulier pagina
*/

if($_SERVER['REQUEST_METHOD'] == 'POST'){
    if(isset($_POST['Naam'])){
        if(!checkNotEmpty($_POST['Naam']) || !checkStrlen($_POST['Naam'], 2)){
            addError('Voer een naam in van minstens 2 karakters');
        }
    }
}


/**
 * En dan nu gaan invoeren
*/

/**
 * Bijvoorbeeld boven je formulier weergeven:
*/

showError();
?>
Gewijzigd op 24/06/2012 09:54:27 door Crispijn -
 
Obelix Idefix

Obelix Idefix

24/06/2012 10:02:32
Quote Anchor link
In je script controleer je nergens of alle velden zijn ingevoerd. Je controleert alleen (op een foutieve wijze) of het formulier verzonden is.

Crispijn doet die controle goed, kopieert niet een hele serie variabelen (zinloos) en zorgt voor beveiliging in zijn query.

Nog wat andere puntjes:
variabelen buiten quotes. (bv op regel 4).
Gebruik bij PHP (echo, print, etc) bij voorkeur ' en in HTML " en wees daarin consequent. Op regel 29 begin je je echo nu met ' en op regel 31 met " Daarna/Daardoor moet je verder op die regel gaan escapen.
 
Niek Kasius

Niek Kasius

25/06/2012 06:03:24
Quote Anchor link
Obelix en Idefix

ik weet niet wie van de twee gereageerd heeft maar je hebt gelijk.
Ik had die twee echoos ook in en keer kunnen doen.
Maar wat ik niet snap is dat die wel aangeeft dat die iets blokkeer en je dan terug stuurt.
maar eigelijk niks doet want het id nummer word wel geplaatst in de database.

Maar ik heb het al opgelost met dit.
Quote:


$mysql_id=mysql_connect("$dbhost","$dbuser","$dbpass");
if(isset($_POST[invoeren])) {
$Naam=$_POST[Naam];
$Voornaam=$_POST[Voornaam];
$Geb_datum=$_POST[Geb_datum];
$Straat=$_POST[Straat];
$Postcode=$_POST[Postcode];
$Plaats=$_POST[Plaats];
$Land=$_POST[Land];
$Telefoon=$_POST[Telefoon];
$Gsm=$_POST[Gsm];
$Email=$_POST[$Email];
$sql=" INSERT into adressen (Naam,Voornaam,Geb_datum,Straat,Postcode,Plaats,Land,Telefoon,Gsm,Email, id) VALUES

('$Naam','$Voornaam','$Geb_datum','$Straat','$Postcode','$Plaats','$Land','$Telefoon','$Gsm','$Email', '$id')";
$res=mysql_db_query("$db","$sql",$mysql_id);
Gewijzigd op 25/06/2012 06:05:58 door Niek Kasius
 
Crispijn -

Crispijn -

25/06/2012 06:52:39
Quote Anchor link
Dan heb je heel veel van onze waardevolle tips laten liggen!

En je id voer je nooit zelf in, dat bepaald de database voor jou. Met mysql_insert_id kan je het id ophalen als je dat wilt.

Kijk nog eens goed naar de formulier controle die ik heb ingebouwd. Daar zit 'm de crux volgens mij!
 
- SanThe -

- SanThe -

25/06/2012 08:58:53
Quote Anchor link
Niek Kasius op 25/06/2012 06:03:24:
Maar ik heb het al opgelost met dit.
Quote:


$mysql_id=mysql_connect("$dbhost","$dbuser","$dbpass");
if(isset($_POST[invoeren])) {
$Naam=$_POST[Naam];
$Voornaam=$_POST[Voornaam];
$Geb_datum=$_POST[Geb_datum];
$Straat=$_POST[Straat];
$Postcode=$_POST[Postcode];
$Plaats=$_POST[Plaats];
$Land=$_POST[Land];
$Telefoon=$_POST[Telefoon];
$Gsm=$_POST[Gsm];
$Email=$_POST[$Email];
$sql=" INSERT into adressen (Naam,Voornaam,Geb_datum,Straat,Postcode,Plaats,Land,Telefoon,Gsm,Email, id) VALUES

('$Naam','$Voornaam','$Geb_datum','$Straat','$Postcode','$Plaats','$Land','$Telefoon','$Gsm','$Email', '$id')";
$res=mysql_db_query("$db","$sql",$mysql_id);


Dit kan natuurlijk nooit een oplossing zijn want van deze code is er werkelijk geen enkele regel correct. En dan heb ik het nog niet eens over het zinloze van variabelen copiëren.
Gewijzigd op 25/06/2012 09:01:35 door - SanThe -
 
Niek Kasius

Niek Kasius

30/06/2012 09:44:06
Quote Anchor link
dat ik zelf geen id invoer dat snap ik nog wel en dat staat ook niet in de form vermeld,
maar het word wel als zodanig mee verzonden anders komt die ook niet in de database.
dat script heb ik die belg ene serge terry of zo iets van essetee en het werkte wel, maar nu ik alle scripts eens aan het naar kijken ben vanwege nieuw host adres en ik er nu pas achter kwam dat er iets fout ging doordat de voorzitter ff wou helpen en iets invoeren en de boel vast liep met als fout melding: error! emty id = 0 of zoiets.En als ik eerst database geexporterd en in de nieuwe host geinporteerd was ik er waarschijnlijk niet achter gekomen, omdat ik weet dat ik alle inputs moet invullen als zijn het maar een paar punten of aanhalings tekens, omdat anders de layout van die lege vakken niet goed is.
Quote:
Dit kan natuurlijk nooit een oplossing zijn want van deze code is er werkelijk geen enkele regel correct.
of andere dat ook hebben in reageren maar die scrollbalk blijft niet hangen waar aan En dan heb ik het nog niet eens over het zinloze van variabelen copiëren.


en gebruiken ze hier geen wordwrap? want ik zie dat de regels gaan behoorlijk buiten het vak gaan.














Toevoeging op 30/06/2012 10:00:00:

PS.
oh ja ik weet niet of andere dat ook hebben in reageren maar die scrollbalk blijft niet hangen waar aan het typen bent maar valt steeds terug zodat je niet kan zien wat je an het typen bent
Gewijzigd op 30/06/2012 09:59:32 door Niek Kasius
 



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.