Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Error in xxx on line zzz

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Error in xxx on line zzz

    Hallo...
    Ich habe eine Frage bzw. ein Problem ... (Eh nichts neues )...
    Naja folgendes:
    Ich rufe eine Funktion mit mysqlcontrol(); auf ... Codebeispiel:

    Zeilen | Code
    13 | mysqlcontrol("connect", $dbhost, $dbuser, $dbpass, $dbname);

    Nun habe ich in der Funktion etwa probiert und habe da __LINE__ reingeschrieben ... Leider gibt er mir die Zeile aus, wo __LINE__ in der Funktion steckt, und nicht in der Zeile wo mysqlcontrol aufgerufen wird ..
    Kann ich also irgendwie anders herausfinden, von welcher Zeile aus eine Funktion aufgerufen worden war???

    PS: Code hier:
    index.php
    Code:
    <?php
    session_start();
    include('config.php');
    include('functions.php');
    mysqlcontrol("connect", $dbhost, $dbuser, $dbpass, $dbname);
    
    mysqlcontrol("disconect");
    
    //Create new template
    $template['job']['overall_header'];
    $template['job']['content'];
    $template['job']['overall_footer'];
    
    //Print out the parsed template
    eval("?".">".$template['result']['overall_header']);
    eval("?".">".$template['result']['content']);
    eval("?".">".$template['result']['overall_footer']);
    ?>
    functions.php
    Code:
    <?php
    function mysqlcontrol($mode, $var1="", $var2="", $var3="", $var4="")
    {
        switch($mode)
        {
            case 'connect':
                $dbconn = @mysql_connect($var1, $var2, $var3);
                if(!$dbconn) {  printerror("continue", "Error while connecting to the mysql server", mysql_error()); }
                $dbdbconn = @mysql_select_db($var4);
                if(!$dbdbconn) { printerror("continue", "Error while choosing the database", mysql_error()); }
            break;
            case 'disconnect':
                $dbdisc = @mysql_close($dbconn);
                if(!$dbdisc) { printerror("continue", "Error while disconnecting from the mysql server", mysql_error()); }
            break;
        }
    }
    function printerror($mode, $text, $info)
    {
        include('config.php');
        $printouterr = "false";
        if($mode == "continue" && $debug == "true") { $printouterr = "true"; }
        if($mode == "abort") { $printouterr = "true"; }
        if($printouterr == "true")
        {
        echo '
    <div style="height: auto; width: 500px; border: 1px solid gray;">
        <div style="border-bottom: 1px solid gray;">General Error</div>
        <div style="padding: 5px;">ErrorMSG: '.$text.'<br />
                                   Info:'.$info.'<br />File: xxx; Line: '.__LINE__.'; if($mode == "abort") { echo "<br />Result: aborting ..."; } else { echo "<br />Result: continue ..."; }
        echo '</div>
    </div>';
        }
        if($mode == "abort") { exit(); }
    }
    ?>
    Liebe Grüße,
    PCFreund
    webmasterlounge
    Die deutsche Webmaster-Community

  • #2
    Leider gibt er mir die Zeile aus, wo __LINE__ in der Funktion steckt
    Klingt imho nicht verwunderlich: PHP: Magic constants - Manual
    Zitat von PHPdotNet
    Die aktuelle Zeilennummer einer Datei.
    Woher soll PHP auch wissen, welche Zeilennummer Du ausgeben willst, wenn nicht die aktuelle?

    Kann ich also irgendwie anders herausfinden, von welcher Zeile aus eine Funktion aufgerufen worden war???
    Als Beispiel (nicht schön, aber selten):
    PHP-Code:
    mysqlcontrol("connect"$dbhost$dbuser$dbpass$dbname); $cmd_line __LINE__
    oder wenn mysqlcontrol() bool zurückgibt:
    [PHP]
    PHP-Code:
    if(!mysqlcontrol("connect"$dbhost$dbuser$dbpass$dbname)) printerror(hier als Parameter __LINE__ mitgeben); 
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Und mach bei Gelegenheit mal die eval()'s weg, das richt förmlich nach Code Injection Möglichkeiten.
      Viele Grüße,
      Dr.E.

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      1. Think about software design [B]before[/B] you start to write code!
      2. Discuss and review it together with [B]experts[/B]!
      3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
      4. Write [I][B]clean and reusable[/B][/I] software only!
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      Kommentar


      • #4
        @Arne Drews: Das ist mir irgendwie zu umständlich, geht aber ^^ ...
        Naja: Kann ich Variablen (außerhalb von einer Funktion) in die unktion mit einspeißen?

        @dr.e.: Ich weiß was ich mache, daher weiß ich auch dass Injections möglich sind, ist aber nur auf einem localhost PC... Wenn ich dann das Forum veröffentliche, werden die Sicherheitsstufen auf sehr hoch gesetzt
        webmasterlounge
        Die deutsche Webmaster-Community

        Kommentar


        • #5
          Zitat von DJ_RhoxxZ Beitrag anzeigen
          @dr.e.: Ich weiß was ich mache, daher weiß ich auch dass Injections möglich sind, ist aber nur auf einem localhost PC... Wenn ich dann das Forum veröffentliche, werden die Sicherheitsstufen auf sehr hoch gesetzt
          Gib' mir Anfänger mal Nachhilfe: was setzt du da wie? Würde das dann auch gerne für meine Applikationen nutzen.
          Viele Grüße,
          Dr.E.

          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          1. Think about software design [B]before[/B] you start to write code!
          2. Discuss and review it together with [B]experts[/B]!
          3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
          4. Write [I][B]clean and reusable[/B][/I] software only!
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

          Kommentar


          • #6
            Zitat von DJ_RhoxxZ
            Das ist mir irgendwie zu umständlich, geht aber
            Also wenn das zu umständlich ist, dann weiß ich auch nicht mehr...
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Code:
              eval("?".">".$template['result']['overall_header']);
              eval("?".">".$template['result']['content']);
              eval("?".">".$template['result']['overall_footer']);
              Kann mir mal bitte jemand erklären, was da genau passieren soll ?
              Signatur:
              PHP-Code:
              $s '0048656c6c6f20576f726c64';
              while(
              $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

              Kommentar


              • #8
                Vielleicht möchtest du dir die Error Handling Functions mal anschauen.
                [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                Kommentar


                • #9
                  OT:
                  Zitat von dr.e. Beitrag anzeigen
                  Gib' mir Anfänger mal Nachhilfe: was setzt du da wie? Würde das dann auch gerne für meine Applikationen nutzen.
                  Ich habe ein selbstprogrammiertes Modul programmiert, mit den man die Sicherheitsstufe einzelner IP's, SessionID's, etc. setzen kann und die dann auch in seperate Gruppen setzen kann, das tut aber jetzt nichts zur sache

                  Zitat von ByStones Beitrag anzeigen
                  Code:
                  eval("?".">".$template['result']['overall_header']);
                  eval("?".">".$template['result']['content']);
                  eval("?".">".$template['result']['overall_footer']);
                  Kann mir mal bitte jemand erklären, was da genau passieren soll ?
                  Ein paar Zeilen davor soll noch das Template geparst werden (was ich herausgeschnitten habe, weil es zu lang war) und eval gibt den header, den content und den footer aus

                  Zitat von ChrisB Beitrag anzeigen
                  Vielleicht möchtest du dir die Error Handling Functions mal anschauen.
                  Vielen vielen Dank, sowas hab ich gesucht =)
                  Vielen Dank ...
                  Du hast mir sehr weit geholfen ...

                  Thema gelöst...

                  Danke an alle beteiligten!
                  webmasterlounge
                  Die deutsche Webmaster-Community

                  Kommentar


                  • #10
                    Ich habe ein selbstprogrammiertes Modul programmiert, mit den man die Sicherheitsstufe einzelner IP's, SessionID's, etc. setzen kann und die dann auch in seperate Gruppen setzen kann
                    Lustig finde ich "ein selbstprogrammiertes Modul programmiert", ansonsten klingt das imho ziemlich suspekt...
                    Bist Du denn sicher, daß Dein selbstprogrammiertes Modul wirklich den Sicherheitsansprüchen entspricht?
                    Ich mein, das Thema Sicherheit ist etwas komplexer.
                    Du mußtest aber hier z.B. von ChrisB auf so essentielle Dinge wie Error-Handling aufmerksam gemacht werden.
                    Das läßt mich nicht gerade vermuten, daß Du beim Thema Sicherheit die nötigen Grundlagen mitbringst?!
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #11
                      Zitat von Dr.Security
                      Ich habe ein selbstprogrammiertes Modul programmiert, mit den man die Sicherheitsstufe einzelner IP's, SessionID's, etc. setzen kann und die dann auch in seperate Gruppen setzen kann, das tut aber jetzt nichts zur sache
                      Man sieht, du hast das voll im Griff! Respekt!
                      Viele Grüße,
                      Dr.E.

                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      1. Think about software design [B]before[/B] you start to write code!
                      2. Discuss and review it together with [B]experts[/B]!
                      3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                      4. Write [I][B]clean and reusable[/B][/I] software only!
                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                      Kommentar


                      • #12
                        Zitat von Arne Drews Beitrag anzeigen
                        Lustig finde ich "ein selbstprogrammiertes Modul programmiert", ansonsten klingt das imho ziemlich suspekt...
                        Bist Du denn sicher, daß Dein selbstprogrammiertes Modul wirklich den Sicherheitsansprüchen entspricht?
                        Ich mein, das Thema Sicherheit ist etwas komplexer.
                        Du mußtest aber hier z.B. von ChrisB auf so essentielle Dinge wie Error-Handling aufmerksam gemacht werden.
                        Das läßt mich nicht gerade vermuten, daß Du beim Thema Sicherheit die nötigen Grundlagen mitbringst?!
                        Alter, junger oder was weiß ich ... Ich schaff das schon keine Sorge
                        Zitat von dr.e. Beitrag anzeigen
                        Man sieht, du hast das voll im Griff! Respekt!
                        Da ist aber wohl jemand anderer Meinung =/ xD
                        webmasterlounge
                        Die deutsche Webmaster-Community

                        Kommentar

                        Lädt...
                        X