Modul: Debug Modul V1.0
Verfasst: Fr 25. Aug 2006, 12:42
Hi,
habe hier ein kleines Modul, welches mir die Entwicklung und vor allem die Fehlersuch in Modulen erleichtert. Es hat z.Z. folgende Funktionen:
Achtung !!!
Diese Modul ist mit Vorsicht einzusetzen. Durch das SQL Fenster kann jeder SQL Code auf der Datenbank ausgeführt werden!!! Fehlerhafte Abfragen können die Datenbank schrotten.
Ich übernehme keine Haftung bei falscher Handhabung!!!
Debug Modul - Output:
Gruß
schlaucher
habe hier ein kleines Modul, welches mir die Entwicklung und vor allem die Fehlersuch in Modulen erleichtert. Es hat z.Z. folgende Funktionen:
- Auflistung alle aktiven Variablen und deren Inhalt
Hier werden sowohl alle _SERVER Variablen, die von Contenido genutzen Variablen und die in den Modulen selbst definierten Variablen ausgegeben.
Eingabe eines SQL Select.
Man kann z.B. den SQL Select Befehl aus einem Modul hinenkopieren und erhält als Ergebnis eine Liste der gefundenen Datensätze.
Es ist nun möglich, Variablen aus dem aktiven Artikel zu benutzen z.B. CATLANG.idacat=$idcat. Das Problem mit den einfachen Anführungszeichen ist auch erledigt.
Sicherheitscheck
DAs Modul wird nur aktiv, wenn man als sysadmin angemeldet ist
Achtung !!!
Diese Modul ist mit Vorsicht einzusetzen. Durch das SQL Fenster kann jeder SQL Code auf der Datenbank ausgeführt werden!!! Fehlerhafte Abfragen können die Datenbank schrotten.
Ich übernehme keine Haftung bei falscher Handhabung!!!

Debug Modul - Output:
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Debug Modul
* Version : 1.0
* Author : schlaucher
* Created : 28-08-2006
* Modified :
************************************************/
echo '<p><hr><h1><center>Debug Modul - Start</center></h1><br><hr></p>';
if ($auth->auth["uname"] != "sysadmin"){
echo '<a>'.mi18n("Für das Debug-Modul müssen Sie als User: sysadmin angemeldet sein.").'</a><br>';
die;
}
$MOD_DT_var_arr = get_defined_vars();
ksort ( $MOD_DT_var_arr );
echo '
<table border="1">
<tr>
<td><strong>Key</strong></td>
<td><strong>Value</strong></td>
</tr>';
foreach($MOD_DT_var_arr as $MOD_DT_var_key => $MOD_DT_var_value)
{
if ($MOD_DT_var_key != 'code' && $MOD_DT_var_key != 'contenido_password' && $MOD_DT_var_key != 'output' && $MOD_DT_var_key != 'finalEditButton' && $MOD_DT_var_key != 'finalSaveButton' && $MOD_DT_var_key != 'editbutton' && $MOD_DT_var_key != 'edit_preview')
{
echo '
<tr>
<td><strong>'.$MOD_DT_var_key.'</strong></td>
<td>'.$MOD_DT_var_value.'</td>
</tr>';
}
}
echo '
</table>';
echo '<p><hr><h1><center>Debug Modul - SQL Test</center></h1><br><hr></p>';
function report_mysql_error(){
if ( mysql_errno() ) {
echo $str . '<br>';
echo '<p>mysql error :: '.mysql_errno().' : '. mysql_error() . '</p>';
}
}
function show_field_names( $MOD_DT_result, $MOD_DT_num_fields ) {
echo '<tr>';
for ( $MOD_DT_zaehler = 0; $MOD_DT_zaehler < $MOD_DT_num_fields; $MOD_DT_zaehler++ ) {
echo '<td valign="top">'.mysql_field_name( $MOD_DT_result, $MOD_DT_zaehler ).' </td>';
report_mysql_error();
}
echo '</tr>';
}
if ($MOD_DT_query) {
// ggf. ' entfernen
$MOD_DT_query = str_replace("\'", "", $MOD_DT_query);
// $Variablen ersetzen
$MOD_DT_findvar = strpos($MOD_DT_query, "$");
if ($MOD_DT_findvar) { //
$MOD_DT_array_query = explode(" ", $MOD_DT_query);
foreach ($MOD_DT_array_query as $MOD_DT_array_value) {
$MOD_DT_findvar2 = strpos($MOD_DT_array_value, "$");
if (strlen($MOD_DT_findvar2) == 1) { //
if (isset($MOD_DT_array_value)) { // prüfen, ob Variable einen Wert hat
$MOD_DT_query = str_replace($MOD_DT_array_value, ${substr($MOD_DT_array_value,1)}, $MOD_DT_query);
}
}
}
}
$MOD_DT_result = mysql_query( $MOD_DT_query );
report_mysql_error();
$MOD_DT_num_rows = mysql_num_rows( $MOD_DT_result );
report_mysql_error();
$MOD_DT_num_fields = mysql_num_fields( $MOD_DT_result );
report_mysql_error();
$MOD_DT_fieldnames_zaehler = 1;
echo '<p>'.$MOD_DT_query .'</p><hr noshade>';
echo '<p>Anzahl der Datensätze: '.$MOD_DT_num_rows.'<br>Anzahl der Felder pro Datensatz: '.$MOD_DT_num_fields.'</p>';
echo '<table border="1" cellspacing="0" cellpadding="3">';
while ( $MOD_DT_num_rows > 0 ) {
if ($MOD_DT_fieldnames_zaehler == 1) {
show_field_names( $MOD_DT_result, $MOD_DT_num_fields );
$MOD_DT_fieldnames_zaehler = $MOD_DT_show_fieldnames;
}
elseif ($MOD_DT_fieldnames_zaehler > 1) {
$MOD_DT_fieldnames_zaehler--;
}
$row = mysql_fetch_array( $MOD_DT_result );
if (($MOD_DT_num_rows % 2) == 1) {
echo '<tr bgcolor="#cccccc">';
}
else {
echo '<tr>';
}
for ( $MOD_DT_zaehler = 0; $MOD_DT_zaehler < $MOD_DT_num_fields; $MOD_DT_zaehler++ ) {
echo '<td valign="top" class="normaal">'.$row[$MOD_DT_zaehler].' </td>';
}
echo '</tr>';
$MOD_DT_num_rows--;
}
echo '</table>';
}
else {
echo '
<form method="post">
<table>
<tr>
<td>'.mi18n("SQL Code eingeben").'</td>
</tr>
<tr>
<td><textarea name="MOD_DT_query" rows="15" cols="100"></textarea></td>
</tr>
<tr>
<td><input type="submit" name="action" value="'.mi18n("SQL abschicken").'"></td>
</tr>
</table>
</form>';
}
echo '<p><hr><h1><center>Debug Modul - Ende</center></h1><br><hr></p>';
?>
schlaucher