php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.07.2010, 07:47  
Erfahrener Benutzer
 
Benutzerbild von DJ_RhoxxZ
 
Registriert seit: 07.03.2010
Beiträge: 181
PHP-Kenntnisse:
Anfänger
DJ_RhoxxZ ist in Verruf geratenDJ_RhoxxZ ist in Verruf geraten
DJ_RhoxxZ eine Nachricht über ICQ schicken DJ_RhoxxZ eine Nachricht über MSN schicken
Standard [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
DJ_RhoxxZ ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.07.2010, 07:56  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

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

Zitat:
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); 
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein

Geändert von Arne Drews (19.07.2010 um 08:01 Uhr).
Arne Drews ist offline  
Alt 19.07.2010, 08:06  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

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 before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 19.07.2010, 11:43  
Erfahrener Benutzer
 
Benutzerbild von DJ_RhoxxZ
 
Registriert seit: 07.03.2010
Beiträge: 181
PHP-Kenntnisse:
Anfänger
DJ_RhoxxZ ist in Verruf geratenDJ_RhoxxZ ist in Verruf geraten
DJ_RhoxxZ eine Nachricht über ICQ schicken DJ_RhoxxZ eine Nachricht über MSN schicken
Standard

@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
DJ_RhoxxZ ist offline  
Alt 19.07.2010, 12:19  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Zitat:
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 before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 19.07.2010, 12:35  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
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...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline  
Alt 19.07.2010, 13:39  
Erfahrener Benutzer
 
Registriert seit: 23.03.2010
Beiträge: 626
PHP-Kenntnisse:
Anfänger
ByStones befindet sich auf einem aufstrebenden Ast
Standard

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;"
ByStones ist offline  
Alt 19.07.2010, 14:11  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Vielleicht möchtest du dir die Error Handling Functions mal anschauen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 19.07.2010, 20:29  
Erfahrener Benutzer
 
Benutzerbild von DJ_RhoxxZ
 
Registriert seit: 07.03.2010
Beiträge: 181
PHP-Kenntnisse:
Anfänger
DJ_RhoxxZ ist in Verruf geratenDJ_RhoxxZ ist in Verruf geraten
DJ_RhoxxZ eine Nachricht über ICQ schicken DJ_RhoxxZ eine Nachricht über MSN schicken
Standard

OT:
Zitat:
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:
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:
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
DJ_RhoxxZ ist offline  
Alt 19.07.2010, 21:04  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
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?!
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit einem PHP Script distanzcheck PHP Tipps 2010 4 31.01.2010 17:28
[Erledigt] PHP in Console lithium Server, Hosting und Workstations 16 25.06.2009 00:52
Navigationsproblem... Mafiathne HTML, Usability und Barrierefreiheit 17 01.03.2009 20:05
Erneut Vorstellung meiner Seite. litterauspirna Off-Topic Diskussionen 11 16.02.2009 19:17
php datei löschen djscaleo PHP Tipps 2008 21 14.11.2008 15:47
thumbnails erstellen dom PHP Tipps 2008 39 21.07.2008 21:28
[Erledigt] PHP -&gt; Ordner anlegen der sich auch beschreiben lässt?! Nightuser PHP Tipps 2008 13 30.06.2008 23:51
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
Suche Programmierer, Designer, Schreiber... blinkster.de Beitragsarchiv 76 14.08.2005 18:31
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
ShowIt_V1.8.14 PHP Tipps 2005 1 23.03.2005 19:13
frage zum arbeiten mit dateien PHP Tipps 2005 21 01.03.2005 13:22
Counter zeigt nach ca. 2-3 Stunden fehler an PHP Tipps 2004 2 26.08.2004 20:08

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zzz xxx, xxx line, zzz:template, xxx lins, xxxon, fehler zzz, anschaueen-xxxon, skype

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:08 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum