>php doet raar<

Overzicht Reageren

Pagina: 1 2 volgende »

Phpnuke r

phpnuke r

06/02/2011 11:49:31
Quote Anchor link
Hallo, dit is een serieuze topic er beginnen rare dingen te gebeuren.

Ik gebruik standaart de browser firefox, ik ben een tijdje wezen editen van mijn scripts, ik was bezig met de css generator. Alles werkt. Wat ik dus heb gedaan:

>alles van 0 naar 10px gezet om te testen of het werkt
WERKT!

>alles weer naar 0px gezet of naar bijv 60px, en opeens worden alle invullingen EMPTY!
print_r($_POST) gaf als resultaat dat het gewoon werkt

>Nu ging ik naar al mijn andere 'mysql connecties' en echt opeens in firefox word overal alles als empty gezien. Maak ik een pagina met de titel jandoedel is opeens de titel leeg, zelfdegeld voro de inhoud van die pagina, echt heel raar.

>Ik starte internet explorer en opera op en daarin blijkt het wel te werken, ik heb ccleaner gestart EN ECHT ALLES aangevinkt maar nog steeds hetzelfde probleem.

Ik sta van pas, dit blijkt niet te werken:

NEEEEEE nu heb ik gewoon in opera ales terug proberen te zetten en nu heeft opera hetzelfde, please controlleer deze codes, ik heb het ook gewoon zonder de mysql_real_escape_string geprobeert:

1
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
<?php
        echo "
        <br />
        <br />
        <br />
        <p align='center'>
        <img src='"
.$themeurl."/images/loading2.gif' style='align:center;'
        </p>
        "
;
        
        
        $headerimg = mysql_real_escape_string($_POST['headerimg']);
        $headerheight = mysql_real_escape_string($_POST['headerhight']);
        
        $paddingleft = mysql_real_escape_string($_POST['headerpaddingleft']);
        $paddingright = mysql_real_escape_string($_POST['headerpaddingright']);
        $paddingtop = mysql_real_escape_string($_POST['headerpaddingtop']);
        $paddingbottom = mysql_real_escape_string($_POST['headerpaddingbottom']);
        
        $marginleft = mysql_real_escape_string($_POST['headermarginleft']);
        $marginright = mysql_real_escape_string($_POST['headermarginright']);
        $margintop = mysql_real_escape_string($_POST['headermargintop']);
        $marginbottom = mysql_real_escape_string($_POST['headermarginbottom']);
        //updating
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$headerimg."' WHERE name = 'header'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$headerheight."' WHERE name = 'headerminheight'");

        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$paddingleft."' WHERE name = 'header_padding_left'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$paddingright."' WHERE name = 'header_padding_right'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$paddingtop."' WHERE name = 'header_padding_top'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$paddingbottom."' WHERE name = 'header_padding_bottom'");
        
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$marginleft."' WHERE name = 'header_margin_left'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$marginright."' WHERE name = 'header_margin_right'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$margintop."' WHERE name = 'header_margin_top'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$marginbottom."' WHERE name = 'header_margin_bottom'");
        echo '
        <script language="JavaScript">
        <!--
        window.location="./admin.php?action=theme&i=template";
        //-->
        </script>
        '
;
?>


2

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
<?php
        echo "
        <br />
        <br />
        <br />
        <p align='center'>
        <img src='"
.$themeurl."/images/loading2.gif' style='align:center;'
        </p>
        "
;
        
        $bgcolor = mysql_real_escape_string($_POST['bgcolor']);
        $footerimg = mysql_real_escape_string($_POST['footerimg']);
        $footerheight = mysql_real_escape_string($_POST['footerhight']);
        
        $paddingleft = mysql_real_escape_string($_POST['footerpaddingleft']);
        $paddingright = mysql_real_escape_string($_POST['footerpaddingright']);
        $paddingtop = mysql_real_escape_string($_POST['footerpaddingtop']);
        $paddingbottom = mysql_real_escape_string($_POST['footerpaddingbottom']);
        
        $marginleft = mysql_real_escape_string($_POST['footermarginleft']);
        $marginright = mysql_real_escape_string($_POST['footermarginright']);
        $margintop = mysql_real_escape_string($_POST['footermargintop']);
        $marginbottom = mysql_real_escape_string($_POST['footermarginbottom']);
        

        //updating
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$bgcolor."' WHERE name = 'footer_background_color'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$footerimg."' WHERE name = 'footer'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$footerheight."' WHERE name = 'footerminheight'");

        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$paddingleft."' WHERE name = 'footer_padding_left'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$paddingright."' WHERE name = 'footer_padding_right'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$paddingtop."' WHERE name = 'footer_padding_top'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$paddingbottom."' WHERE name = 'footer_padding_bottom'");
        
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$marginleft."' WHERE name = 'footer_margin_left'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$marginright."' WHERE name = 'footer_margin_right'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$margintop."' WHERE name = 'footer_margin_top'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$marginbottom."' WHERE name = 'footer_margin_bottom'");
        print_r($_POST);
?>
 
PHP hulp

PHP hulp

11/08/2022 23:07:37
 
Milo S

Milo S

06/02/2011 12:05:13
Quote Anchor link
Misschien een foutafhandeling inbouwen?
 
Phpnuke r

phpnuke r

06/02/2011 12:17:39
Quote Anchor link
Maar welke dan?

http://www.pfz.nl/wiki/mysql-foutafhandeling-in-php/

Alleen selects worden behandeld


NOTE: dit script word geincluded, het word dus beter beveiligd dan dit...
Gewijzigd op 06/02/2011 12:18:22 door phpnuke r
 
Tikkes C

Tikkes C

06/02/2011 12:34:29
Quote Anchor link
werk eens met exceptions.

try-catch en vraag de message op.
 
Rick  -

Rick -

06/02/2011 12:35:03
 
Milo S

Milo S

06/02/2011 12:57:33
Quote Anchor link
Wat dacht je er van om je query's af te handelen. If statement enzo... Je controleerd helemaal niks
 
Phpnuke r

phpnuke r

06/02/2011 18:20:09
Quote Anchor link
>Or error("Een foutmelding")< geeft niks -.-'

Maar, wat moet er gecontroleerd worden? ik vul in 10px dan is het toch gewoon goed?
 

06/02/2011 18:42:08
Quote Anchor link
En wat is error.
 
Phpnuke r

phpnuke r

06/02/2011 18:51:04
Quote Anchor link
Dan doen we de or die trick wel weer...

mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$headerimg."' WHERE name = 'header'") or die (mysql_error());

Nothing...

Ik geloof niet dat dit aan dit soort fouten licht, er gebeurt niks noppes terwijl de query het eerst wel deed.. Het gekke is nog, in opera ging ik zegmaar pagina's veranderen, werkt gewoon. Nu ben ik in de css generator bezig geweest en na 2 a 3 keer werkt het in opera ook niet meer. Ook de pagina's niet meer. Wat is dit? Pagina's toevoegen werkte! Nog steeds, alleen als naam: en als inhoud:. Dit is geen foutje met php lijkt me, anders had ik toch gewoon nog pagina's kunnen toevoegen?
Gewijzigd op 06/02/2011 18:52:44 door phpnuke r
 

06/02/2011 18:54:29
Quote Anchor link
Or die is ook niet goed.
Ik heb geen flauw idee waarom dit mis gaat, maar ik zou dit ook niet zo opbouwen.
 
Phpnuke r

phpnuke r

06/02/2011 19:02:17
Quote Anchor link
Ik hoor graag hoe jij het zou opbouwen, vergeet niet dat dit een bestand is die word geincluded met een switch $_GET['action'] en $_GET['i'] dus er word meer gedaan dan dit.

Ik hoor graag meningen van mensen die een vergelijkbaar iets hebben meegemaakt, dit is niet even een php error, een pagina kan toch zeker niet zorgen dat een andere pagina niks meer kan uitvoeren met de mysql database? fwrite word alleen in install.php gebruikt en die heb ik toch echt niet uitgevoerd...
 

06/02/2011 19:09:34
Quote Anchor link
Als een query kapot is kan er wel problemen ontstaan.
Zet bovenaan
error_reporting(E_ALL);
ini_set('display_errors', 1);
 
Phpnuke r

phpnuke r

06/02/2011 19:24:15
Quote Anchor link
Ik weet heus wel dat als een query kapot is dat er niks gebeurt, maar dit probleem zorgt ervoor dat GEENEEN mysql update binnen doveral meer werkt. Pagina's aanmaken of wat, menu, blocks, css generator,... Dus, is dat ook mogelijk? (blijkbaar wel maar in formeel)
 

06/02/2011 19:26:03
Quote Anchor link
Je hoeft niet zo druk te doen.
Ja, je kan de boel verneuken.
Doe correcte foutafhandeling toepassen en error reporting aanzetten, dan weet je waar het mis gaat.
 
Jasper DS

Jasper DS

06/02/2011 19:28:58
Quote Anchor link
Heb je nu al een if else constuctie ingevoerd als foutafhandeling?
 
Phpnuke r

phpnuke r

06/02/2011 19:39:00
Quote Anchor link
Je hoeft niet zo druk te doen.
Ja, je kan de boel verneuken.
Doe correcte foutafhandeling toepassen en error reporting aanzetten, dan weet je waar het mis gaat.
________________

error_reporting(E_ALL);

Dit stukje gebruikt en niks noppes.

_________________
Heb je nu al een if else constuctie ingevoerd als foutafhandeling?
_________________

Moet ik eeen if...else toepassen als de error report e_all niks toont? Waarop mag ik de if...else baseren? mysql_error? geeft ook geen error? (zie code hieronder)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$headerimg."' WHERE name = 'header'") or die (mysql_error());
?>


__________
Ja, je kan de boel verneuken.
Doe correcte foutafhandeling toepassen en error reporting aanzetten, dan weet je waar het mis gaat.
__________

Maar dat heb ik toch al gedaan (**)



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
<?php
error_reporting(E_ALL);
        echo "
        <br />
        <br />
        <br />
        <p align='center'>
        <img src='"
.$themeurl."/images/loading2.gif' style='align:center;'
        </p>
        "
;
        
        
        $headerimg = mysql_real_escape_string($_POST['headerimg']);
        $headerheight = mysql_real_escape_string($_POST['headerhight']);
        
        $paddingleft = mysql_real_escape_string($_POST['headerpaddingleft']);
        $paddingright = mysql_real_escape_string($_POST['headerpaddingright']);
        $paddingtop = mysql_real_escape_string($_POST['headerpaddingtop']);
        $paddingbottom = mysql_real_escape_string($_POST['headerpaddingbottom']);
        
        $marginleft = mysql_real_escape_string($_POST['headermarginleft']);
        $marginright = mysql_real_escape_string($_POST['headermarginright']);
        $margintop = mysql_real_escape_string($_POST['headermargintop']);
        $marginbottom = mysql_real_escape_string($_POST['headermarginbottom']);
        //updating
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$headerimg."' WHERE name = 'header'") or die (mysql_error());
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$headerheight."' WHERE name = 'headerminheight'") or mysql_error();

        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$paddingleft."' WHERE name = 'header_padding_left'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$paddingright."' WHERE name = 'header_padding_right'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$paddingtop."' WHERE name = 'header_padding_top'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$paddingbottom."' WHERE name = 'header_padding_bottom'");
        
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$marginleft."' WHERE name = 'header_margin_left'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$marginright."' WHERE name = 'header_margin_right'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$margintop."' WHERE name = 'header_margin_top'");
        mysql_query("UPDATE ".$table_pref."themevars SET variable = '".$marginbottom."' WHERE name = 'header_margin_bottom'");
?>
 

06/02/2011 19:43:07
Quote Anchor link
Nee.
Je hebt de error reporting aangezet...
Maar lees nu eens goed.
Verder heb je maar twee "or die's" toegevoegd...

En als je goede foutafhandeling toepast, zoals ik bijvoorbeeld hier uitleg, dan weet je precies waarom er iets mis is.

Verder is er een http://www.phphulp.nl/img/icon/forum/quote.png quote knopje aanwezig bij iedere post, dat is wat makkelijker dan wat je nu doet..
Gewijzigd op 06/02/2011 19:43:50 door
 
Phpnuke r

phpnuke r

06/02/2011 19:45:46
Quote Anchor link
Eigenlijk 1, maar ik vul er telkens maar 1 in omdat het dan tijd scheelt(toen ik ze allemaal invulde ook geen resultaat hoor)

Opmerkelijk iets:

pagina's TOEVOEGEN werkt weer al hoewel ik nu een lege pagina krijg en een gevulde pagina...

Pagina's updaten werkt ook gewoon niet...
Gewijzigd op 06/02/2011 19:47:53 door phpnuke r
 
Jasper DS

Jasper DS

06/02/2011 19:57:45
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
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
// errors weergeven
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);

// sql debug
define('DEBUG_MODE',true);  // true == aan, false == uit

// functie voor sql debug

function showSQLError($sql,$error)
{

    echo  '<pre>Error: '.$error.'<br />'.$sql.'</pre>';
}



        echo "
        <br />
        <br />
        <br />
        <p align='center'>
        <img src='"
.$themeurl."/images/loading2.gif' style='align:center;'
        </p>
        "
;
        
        # Je kan deze vars ook in je query zetten, maar dat is misschien minder overzichtelijk?!
        $headerimg = mysql_real_escape_string($_POST['headerimg']);
        $headerheight = mysql_real_escape_string($_POST['headerhight']);
        
        $paddingleft = mysql_real_escape_string($_POST['headerpaddingleft']);
        $paddingright = mysql_real_escape_string($_POST['headerpaddingright']);
        $paddingtop = mysql_real_escape_string($_POST['headerpaddingtop']);
        $paddingbottom = mysql_real_escape_string($_POST['headerpaddingbottom']);
        
        $marginleft = mysql_real_escape_string($_POST['headermarginleft']);
        $marginright = mysql_real_escape_string($_POST['headermarginright']);
        $margintop = mysql_real_escape_string($_POST['headermargintop']);
        $marginbottom = mysql_real_escape_string($_POST['headermarginbottom']);
        
        //updating
        $sql1  = "UPDATE ".$table_pref."themevars SET variable = '".$headerimg."' WHERE name = 'header'");
        $sql2  = "UPDATE ".$table_pref."themevars SET variable = '".$headerheight."' WHERE name = 'headerminheight'" ;

        $sql3  = "UPDATE ".$table_pref."themevars SET variable = '".$paddingleft."' WHERE name = 'header_padding_left'";
        $sql4  = "UPDATE ".$table_pref."themevars SET variable = '".$paddingright."' WHERE name = 'header_padding_right'";
        $sql5  = "UPDATE ".$table_pref."themevars SET variable = '".$paddingtop."' WHERE name = 'header_padding_top'";
        $sql6  = "UPDATE ".$table_pref."themevars SET variable = '".$paddingbottom."' WHERE name = 'header_padding_bottom'";
        
        $sql7  = "UPDATE ".$table_pref."themevars SET variable = '".$marginleft."' WHERE name = 'header_margin_left'";
        $sql8  = "UPDATE ".$table_pref."themevars SET variable = '".$marginright."' WHERE name = 'header_margin_right'";
        $sql9  = "UPDATE ".$table_pref."themevars SET variable = '".$margintop."' WHERE name = 'header_margin_top'";
        $sql10 = "UPDATE ".$table_pref."themevars SET variable = '".$marginbottom."' WHERE name = 'header_margin_bottom'";
        
        if(mysql_query($sql1) === false || mysql_query($sql2) === false || mysql_query($sql3) === false || mysql_query($sql4) === false || mysql_query($sql5) === false || mysql_query($sql6) === false ||mysql_query($sql7) === false || mysql_query($sql8) === false || mysql_query($sql9) === false || mysql_query($sql10) === false)
        {

            echo 'We hebben eindelijk een error!';
            
            # geef de error via de functie (bovenaan script)
            if (DEBUG_MODE)
            {

                showSQLError($sql1,mysql_error($sql1));
                showSQLError($sql2,mysql_error($sql2));
                showSQLError($sql3,mysql_error($sql3));
                showSQLError($sql4,mysql_error($sql4));
                showSQLError($sql5,mysql_error($sql5));
                showSQLError($sql6,mysql_error($sql6));
                showSQLError($sql7,mysql_error($sql7));
                showSQLError($sql8,mysql_error($sql8));
                showSQLError($sql9,mysql_error($sql9));
                showSQLError($sql10,mysql_error($sql10));
            }
        }

        else
        {
            echo 'Je query\'s zijn goed uitgevoerd!';
        }

?>


Ik heb het niet getest.. Maar dit is een betere foutafhandeling. Alleen jammer dat je zoveel query's gebruikt want dan is het ingewikkelder.
Gewijzigd op 06/02/2011 20:04:16 door Jasper DS
 

06/02/2011 20:16:17
Quote Anchor link
Nou, dan heb ik maar wat geschreven:
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
error_reporting(E_ALL);
ini_set('display_errors', 1); // Natuurlijk willen we de errors ook zien
        echo '
        <br />
        <br />
        <br />
        <p align="center">
        <img src="'
.$themeurl.'/images/loading2.gif" style="align:center;"
        </p>'
; // Ik heb zo'n vermoeden dat dit ook beter kan met css.
        
        // Als je nu slim bent dan geef je de form onderdelen dezelfde naam zoals ze in de database zitten want dan kan dit (let wel op dat je eventuele extra dingen eruit moet halen, of gebruik moet maken van een if):

        foreach($_POST as $key => $value)
        {

            $query = sprintf("UPDATE " . $table_pref . "themevars SET variable='%s' WHERE name='%s'",
            mysql_real_escape_string($key),
            mysql_real_escape_string($value));
            if(!mysql_query($query))
            {

                echo '<p><strong>Query probleem: ' . mysql_error() . ' ' . mysql_errno() . '</strong></p>' . PHP_EOL;
            }
        }

?>

Volgens mij is het goed, maar ik heb het uit m'n hoofd gedaan terwijl ik met wat anders bezig ben. Daarom ga ik ook niet bedenken hoe sowieso je zooi beter kan (want dat kan het volgens mij wel).
 
Jasper DS

Jasper DS

06/02/2011 20:17:59
Quote Anchor link
Zoals karl het doet is het natuurlijk veel korter (en beter). MAAR, zoals hij ook al zegt: "Het kan veel beter". Volgens mij klopt er iets niet met jouw database model of met je logica.
 

Pagina: 1 2 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.