Zeichenketten-Konverter an das pragmaMx 0.1.11 angepasst

Begonnen von gabin, 25 Januar 2010, 10:59:58

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

gabin

Für diejenigen die gelegentlich Ihr Passwort vergessen, habe ich einen Script von © 2003-2005
Patrick Canterino als Modul an das pragmaMx 0.1.11-System angepasst.

siehe muster auf meiner Seite.




Anforderungen:

- CMS-Version:     pragmaMx 0.1.11


  • Schritt I
    (a*) erstelle einen Ordner mit einem beliebigen Namen bsp. ZKK
    (b*) erstelle eine leere php-Datei mit dem Namen index.php in dem Ordner ZKK
    (c*) Kopiere die unten angegebenen Zeilen in der PHP-Datei


    EDIT: Der korrigierte Quelltext befindet sich in Antwort #1.


  • Schritt II
    (a**) Lade den Ordner ZKK in deinem Root-Verzeichnis modules

    =>  http://www.deineSeite.tld/modules/


  • Schritt III
    (a***) Melde Dich als admin in deinem pragmaMx-System
    (b***) Gehe über den Link System an das untermenü Module
    (c***) Aktiviere das Modul ZKK und gebe es einem Namen bsp. Zeichenketten-Konverter und gleich ordnet es einen Menü / Modul-Block zu
    (d***) Rufe den Ordner ZKK über einen beliebigen Browser auf

    =>  http://www.deineSeite.tld/modules.php?name=ZKK

    (e***) Fertig!


    Viel Spaß und viel Glück!

    Gruß
    gabin
Die beste Voraussetzung ist dieses learning by doing. Wenn man auf der Kabarettbühne mit drei Zuschauern im Saal anfängt und dann irgendwann ganze Hallen füllt.

gabin

Hallo allesamt,

hiermit bitte ich die pragmamx-Admis des Forums um eine Korrektur  der oben angegebenen index.php - Datei.

Hier die korrigierte index.php-Datei



<?php

#
# Zeichenketten-Konverter
#
# Konvertiert eine Zeichenkette mit einem beliebigen Verfahren
#
# Autor: Patrick Canterino <patrick@patshaping.de>
# Letzte Aenderung: 21.6.2005
#

defined('mxMainFileLoaded') or die('access denied'); 

$module_name basename(dirname(__FILE__)); 
mxgetlangfile($module_name); 
$index1;

include(
"header.php");
$string formdata('string'); $mode   formdata('mode'); $salt   formdata('salt');

$modes = array('crypt'         => 'Mit UNIX Crypt verschl&uuml;sseln (Salt: [SALT])',
               
'md5'           => 'MD5-Pr&uuml;fsumme ermitteln',
               
'sha1'          => 'SHA1-Hash ermitteln',
               
'crc32'         => 'CRC32-Pr&uuml;fsumme ermitteln',
               
'encbase64'     => 'Mit Base64 codieren',
               
'tooct'         => 'In oktale Entsprechung (Perl, PHP...) umwandeln',
               
'tohex'         => 'In hexadezimale Entsprechung (Perl, PHP...) umwandeln',
               
'tonumentity'   => 'In numerische HTML-Entities umwandeln',
               
'tohexentity'   => 'In hexadezimale HTML-Entities umwandeln',
               
'decbase64'     => 'Base64 decodieren',
               
'fromoct'       => 'Oktale Entsprechung (Perl, PHP...) in ASCII-Zeichen umwandeln',
               
'fromhex'       => 'Hexadezimale Entsprechung (Perl, PHP...) in ASCII-Zeichen umwandeln',
               
'fromnumentity' => 'Numerische HTML-Entities in ASCII-Zeichen umwandeln',
               
'fromhexentity' => 'Hexadezimale HTML-Entities in ASCII-Zeichen umwandeln'); 

if(
$string && $mode)
{ echo 
"<table cellpadding=\"3px\" cellspacing:\"3px\" border=\"0px\">";
  echo 
"<tr>"
  echo 
'<td>siehe unten das Ergebnis<a href="#ergebnis"><img src="modules/Web_Links/images/down.gif" width="16" height="16" border="0" alt="" /></a></td></tr></table>';
}

echo 
"<h1>Zeichenketten-Konverter</h1>"

echo 
"<form action=\"modules.php?name=".$module_name."&amp;index.php\" method=\"post\">";


echo 
"<table cellpadding=\"0px\" cellspacing:\"0px\" border=\"0px\">";
echo 
"<tr><td><h2>Eingabe</h2></td>";
echo 
"<td style=\"padding-left:20px;\"><input type=\"text\" name=\"string\" /><br><b class=\"tiny\">Zeichenkette eingeben</b></td></tr></table>";
echo 
"<br><br><p><b>Was soll mit der Zeichenkette gemacht werden?</b></p>";

echo 
"<p>";


$x 0;

while(list(
$modeid,$description) = each($modes))
{
 
$x++;
 if(
$modeid == 'crypt'$description str_replace('[SALT]','<input type="text" name="salt" />',$description);
 echo 
'<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>';
 echo 
'<td><input type="radio" name="mode" value="'.$modeid.'" /></td><td>'.$description.'</td>';
 echo 
'</tr></table>';
 if(
$x count($modes)) echo "<br />\n";
}

echo 
"</p>";

echo 
"<p align=\"center\"><input type=\"submit\" value=\"Konvertieren\" /></p>";
echo 
"</form>";


if(
$string && $mode)
{
 echo 
"\n";
 
 echo 
"<a name=\"ergebnis\" id=\"ergebnis\"></a><br><h2>Ergebnis</h2>\n\n"

 if(
$modes[$mode])
 {
  
$output '';

  if(
$mode == 'crypt')
  {
   
$output crypt($string,$salt);
   if(!
$salt$salt substr($output,0,2)." -\240von PHP festgelegt";
   
$modes['crypt'] = str_replace('[SALT]',htmlentities($salt),$modes['crypt']);
  }
  elseif(
$mode == 'md5')
  {
   
$output md5($string);
  }
  elseif(
$mode == 'sha1')
  {
   
$output sha1($string);
  }
  elseif(
$mode == 'crc32')
  {
   
$output sprintf('%u',crc32($string));
  }
  elseif(
$mode == 'encbase64')
  {
   
$output base64_encode($string);
  }
  elseif(
$mode == 'tooct')
  {
   for(
$x=0;$x<strlen($string);$x++) $output .= sprintf('\\%03o',ord($string{$x}));
  }
  elseif(
$mode == 'tohex')
  {
   for(
$x=0;$x<strlen($string);$x++) $output .= sprintf('\\x%02X',ord($string{$x}));
  }
  elseif(
$mode == 'tonumentity')
  {
   for(
$x=0;$x<strlen($string);$x++) $output .= '&#38;#'.ord($string{$x}).';';
  }
  elseif(
$mode == 'tohexentity')
  {
   for(
$x=0;$x<strlen($string);$x++) $output .= sprintf('&#38;#x%X;',ord($string{$x}));
  }
  elseif(
$mode == 'decbase64')
  {
   
$output base64_decode($string);
  }
  elseif(
$mode == 'fromoct')
  {
   
$chars  explode('\\',substr($string,1));
   
$chars  array_map('octdec',$chars);
   
$chars  array_map('chr',$chars);
   
$output join('',$chars);
  }
  elseif(
$mode == 'fromhex')
  {
   
$chars  explode('\\x',substr($string,2));
   
$chars  array_map('hexdec',$chars);
   
$chars  array_map('chr',$chars);
   
$output join('',$chars);
  }
  elseif(
$mode == 'fromnumentity')
  {
   
$chars  explode(';&#38;#',substr($string,2,-1));
   
$chars  array_map('chr',$chars);
   
$output join('',$chars);
  }
  elseif(
$mode == 'fromhexentity')
  {
   
$chars  explode(';&#38;#x',substr($string,3,-1));
   
$chars  array_map('hexdec',$chars);
   
$chars  array_map('chr',$chars);
   
$output join('',$chars);
  }

  echo 
"<table cellpadding=\"3px\" cellspacing:\"3px\" border=\"0px\">";
  echo 
"\n<tr>\n";
  echo 
"<td align=\"left\" valign=\"middle\"><b>Eingegebene Zeichenkette:</b></td>\n";
  echo 
"<td valign=\"middle\">".htmlentities($string)."</td>\n</tr>";
  echo 
"\n<tr>\n";
  echo 
"<td align=\"left\" valign=\"middle\"><b>Modus:</b></td>\n";
  echo 
"<td align=\"left\" valign=\"middle\">".$modes[$mode]."</td>\n</tr>\n";
  echo 
"<tr>\n";
  echo 
"<td align=\"left\" valign=\"bottom\"><b>Ergebnis:</b></td>\n <td align=\"left\" valign=\"middle\">";
  echo 
htmlentities($output);
  echo 
"</td>\n</tr>\n</table>\n\n";
 }
 else echo 
"<p><i>Unbekannter Konvertierungsmodus!</i></p>\n\n";
}
else echo 
"\n";



echo 
"<p style=\"padding-top:20px\">Zeichenketten-Konverter</p>";

echo 
"<hr noshade=\"noshade\" />";
echo 
'<p align="right">
 <a href="#top"><img src="modules/Web_Links/images/up.gif" width="16" height="16" border="0" alt="" /></a>Nach oben</p>'
;
#echo '<p><img src="modules/Web_Links/images/down.gif" width="16" height="16" border="0" alt="" />&nbsp;
# <a href="#bottom">Nach unten</a></p>';
echo "<p class=\"copyright\">&copy;&nbsp;<a name=\"bottom\" id=\"bottom\">2003-2005</a> <a href=\"http://www.patshaping.de/\" target=\"_blank\">Patrick Canterino</a></p>";

echo 
"<p>Für sämtliche Scripts, gilt die <a href=\"http://de.wikipedia.org/wiki/Artistic_License\" target=\"_blank\">Artistic License</a>, eine OpenSource-Lizenz.</p>";


/**

# formdata()

# Formulardaten bei deaktiviertem register_globals auslesen

# Parameter:   Name des Formularfeldes

# Rueckgabe:   Inhalt des Formularfeldes (String oder Array)

# Bemerkungen: - Wenn der HTTP-Zugriff nicht POST oder GET ist,
                 wird nichts zurueckgegeben.
               - Codierende Backslashes werden automatisch entfernt 
**/

function formdata($param)
{
 switch(
$_SERVER['REQUEST_METHOD'])
 {
  case 
'GET':
   if(isset(
$_GET[$param]))
   {
    
$value $_GET[$param];
    break;
   }
   else return 
null;

  case 
'POST':
   if(isset(
$_POST[$param]))
   {
    
$value $_POST[$param];
    break;
   }
   else return 
null;

  default:
   return 
null;
 }

 if(
get_magic_quotes_gpc())
 {
  if(
is_array($value)) return array_map('stripslashes',$value);
  else return 
stripslashes($value);
 }
 else return 
$value;
}

#
### Ende ###
include("footer.php");


?>





Folgende Korrekturen wurden vorgenommen:

* Korrektur Nr. 1

sechof wurde durch sprintf ersetzt,

damit nicht folgenden Fehler passiert:

=> Fatal error: Call to undefined function sechof() in .../modules/ZKK/index.php on line 124

* Korrektur Nr. 2

Zeile 44 wurde durch folgende ersetzt:




echo "<form action=\"modules.php?name=".$module_name."&amp;index.php\" method=\"post\">";






Danke und bitte euch um Verständnis für meinen Fehler


Gruß

gabin   


Die beste Voraussetzung ist dieses learning by doing. Wenn man auf der Kabarettbühne mit drei Zuschauern im Saal anfängt und dann irgendwann ganze Hallen füllt.