You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

171 lines
4.3 KiB
PHP

<?php
// error_reporting(0);
set_include_path('.');
$browser = get_browser();
if (!$browser->cookies)
{
echo "Please enable cookies.<br>\n";
echo "Cookies are needed to view this page.\n";
exit;
}
session_start();
if ($_GET["update"] == 'j'){
// Einstellungen laden
include "sys/htmledit_inc.php";
$fname = $_GET["file"];
// echo $fname;
if ($lfile = fopen($fname, 'r')){
for($y=1; $y<$_GET["zlnr"]; $y++) {
$fbuffer[$y] = fgets ($lfile, 4096);
if(feof ($lfile)){
echo 'Eof zu früh erreicht.';
exit;
}
}
$wbuffer = fgets ($lfile, 4096);
$xtag = '<!'.$_GET["tag"].'=';
// Alle Werte von dem erstenlink nach $link[0]
$l = 0;
$link_pos = strpos($wbuffer,$xtag);
$line[$l++] = substr($wbuffer,0,$link_pos);
$wbuffer = substr($wbuffer,$link_pos);
// Alle Tags aufsplitten
while((strpos($wbuffer,$xtag) !== false )){
$link_pos = strpos($wbuffer,'>')+1;
$line[$l++] = substr($wbuffer,0,$link_pos);
$wbuffer = substr($wbuffer,$link_pos);
if ($l > 30){
echo 'Loop auf Stelle while-strpos.';
exit;
}
}
// Letzten rest übernehmen
$line[$l] = $wbuffer;
// Aktive Position bearbeiten
/*
// Testeinbau anfang
echo '$linepos:'.$linepos."\n";
echo '$_GET["linkneu"]'.$_GET["linkneu"]."\n";
echo '$_GET["zlnr"]'.$_GET["zlnr"]."\n";
echo '$_GET["lnknr"]'.$_GET["lnknr"]."\n";
echo "\nVorher:\n";
echo '$xbuffer:'.$xbuffer."\n";
echo '$line[0]:'.$line[0]."\n";
echo '$line[1]:'.$line[1]."\n";
echo '$line[2]:'.$line[2]."\n";
echo '$line[3]:'.$line[3]."\n";
echo '$line[4]:'.$line[4]."\n";
// Testeinbau ende
*/
// Tagzähler beginnt mit 0, linepos-tags beginnen bei 1
// linepos 0 ist der Text vor dem ersten tag
$linepos = $_GET["lnknr"] + 1;
// Taginhalt tauschen
if ($_GET["lnk2"] != ''){
$repl_param = $_GET["lnk1"].$trennzeichen.$_GET["lnk2"];
}
else{
$repl_param = $_GET["lnk1"];
}
$line[$linepos] = substr($line[$linepos],0,strpos($line[$linepos],$xtag)+strlen($xtag)).
$repl_param.
substr($line[$linepos],strpos($line[$linepos],'>'));
// Tagkennung berichtigen
if ($_GET["newtag"] != ''){
$line[$linepos] = str_replace($_GET["tag"],$_GET["newtag"],$line[$linepos]); // Tag in der Zeile berichtigen
$_GET["an"] = str_replace($_GET["tag"],$_GET["newtag"],$_GET["an"]); // Anker berichtigen
$_GET["tag"] = $_GET["newtag"]; // Tag übernehmen
}
/*
// Testeinbau anfang
echo "\nNachher:\n";
echo '$xbuffer:'.$xbuffer."\n";
echo '$line[0]:'.$line[0]."\n";
echo '$line[1]:'.$line[1]."\n";
echo '$line[2]:'.$line[2]."\n";
echo '$line[3]:'.$line[3]."\n";
echo '$line[4]:'.$line[4]."\n";
exit;
// Testeinbau ende
*/
for ($i=0;$i<=$l;$i++){
$fbuffer[$y] .= $line[$i];
}
// Restliche File lesen
while(!feof ($lfile)){
$fbuffer[++$y] = fgets ($lfile, 4096);
}
fclose($lfile);
// File wieder schreiben
if ($lfile = fopen($fname, 'w')){
for ($i=0;$i<=$y;$i++){
fwrite($lfile,$fbuffer[$i]);
}
fclose($lfile);
}
else{
echo('File '.$_GET["file"].' nicht zum Schreiben öffen !!!!');
exit;
}
}
else{
MsgNotFound('File '.$_GET["file"].' nicht finden !!!!');
exit;
}
}
/*
echo '&ap='. $_GET["ap"];
echo '&an='. $_GET["an"];
echo '&file='. $_GET["file"];
echo '&zlnr='. $_GET["zlnr"];
echo '&lnknr='. $_GET["lnknr"];
echo '&tag='. $_GET["tag"];
echo '&newtag='. $_GET["newtag"];
echo '&lnk1='. $_GET["lnk1"];
echo '&lnk2='. $_GET["lnk2"];
echo '&update='. $_GET["update"];
exit;
*/
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title><?php echo 'Edit-'.$_GET["tag"]?></title>
</head>
<frameset cols="250,*">
<?php
echo '<frame frameborder="1" noresize scrolling="auto" '.
'src="sys/htmledit.php?basis='.$_GET["basis"].
'&ap='. $_GET["ap"].
'&an='. $_GET["an"].
'&file='. $_GET["file"].
'&zlnr='. $_GET["zlnr"].
'&lnknr='. $_GET["lnknr"].
'&tag='. $_GET["tag"].
'&newtag='. $_GET["newtag"].
'&lnk1='. $_GET["lnk1"].
'&lnk2='. $_GET["lnk2"].
'&update='. $_GET["update"].
'">';
echo '<frame src="index.php?ap='.$_GET["ap"].'&an='.$_GET["an"].'&nonav=j&noadmin=j" name="main" >';
?>
<noframes>
<body>
<p>Ohne Framesets kein Edit</p>
</body>
</noframes>
</frameset>
</html>