• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

JS verursacht Darstellungsfehler im IE

Status
Für weitere Antworten geschlossen.

aJunkie

Mitglied
Hallo,

nach langer Suche habe ich den Übeltäter gefunden, weiß aber nicht, wie ich genau vorgehen muss.

Ich dachte zuerst, es läge am CSS, dass das neue Fenster linksbündig bzw. total durcheinander öffnet. Und das nur im IE.

Ich habe dann einfach mal JS entfernt und die neue Seite öffnet vom Aussehen genau so, wie es soll.

Allerdings funktioniert dann die load.php nicht mehr. Darin wird die Downloadstatistik aktualisiert.

Genauer:

Ich habe dieses hier in einer index.php includet:
PHP:
<? include ("content.php"); ?>

Und content.php sieht so aus:
PHP:
<?php

include("cfg.php");

$ordner = ORDNER;
$tabelle = TABELLE;


$handle = opendir($ordner);
if(!isset($_GET['file'])){  //  ---------- Alles   was hiernach ist, erscheint nicht mehr, nachdem man auf den Link geclickt hat.
?>
<h2>Downloads</h2>
<center>
  <p>Zum Downloaden auf den Songnamen klicken. Neues Fenster öffnet sich.</p>
  <br />
</center>
<table style="border:0px dotted #000000;" align="center" width="100%">
  <tr>
    <th>Titel</th>
    <th>Release</th>
    <th></th>
  </tr>
  <?php

while(($file = readdir($handle)) !== FALSE){
    
    if($file != '.' && $file !='..'){
        $sql = mysql_query("SELECT * FROM `".$tabelle."` WHERE `titel`='".mysql_real_escape_string($file)."'");
        if(mysql_num_rows($sql)<1){
            
            $file_temp = preg_replace("/(\')+/", "\'",$file);
            $entry = mysql_query("INSERT INTO `".$tabelle."` ( `id` , `titel` , `datum` , `clicks`, `zeit`, `filesize`)VALUES (NULL , '".$file_temp."', '".date ("Y.m.d", filemtime($ordner."/".$file))."' , '0', '".date("H:i", filemtime($ordner."/".$file))."','".filesize($ordner."/".$file)."') ") or die("Momentan besteht ein Fehler in der Datenbank, bitte haben sie einen Moment geduld, es wird daran gearbeitet.");
            
        
        }
    }
}
 


$sql2 = mysql_query("SELECT * FROM `".$tabelle."` ORDER BY `datum` DESC ,`zeit` DESC");
while($row = mysql_fetch_assoc($sql2) ){
    $an = 0;
            $file = $row['titel'];
            $file = preg_replace("/(\\\'){1}+/","'",$file);
            
            if(!file_exists($ordner."/".$file)){
                ;
                $del = mysql_query("DELETE FROM `".$tabelle."` WHERE `titel`='".mysql_real_escape_string($file)."'");
                $an = 1;
 
            }
            
    if($an!=1){

        $yahr = substr($row['datum'],0,4);
        $monat = substr($row['datum'],5,2);
        $tag = substr($row['datum'],8,2);
        $titel = $row['titel'];
        $titel = preg_replace("/(\ß)+/","%DF",$titel);
        ?>
  <tr align="center">
    <td align="left"><a href="content.php?file=<?php echo $titel; ?>" target="_blank"><?php echo substr($row['titel'],0,strlen($row['titel'])-4); ?></a></td>
    <td><?php
                
            if( $tag == "00" && $monat == "00" && $yahr == "0000"){
            echo "unbekannt";
            }elseif( $tag == "00" && $monat == "00" && $yahr != "0000"){
            echo $yahr;
            } else {
             echo $tag.".".$monat.".".$yahr; }?></td>
    <td><?php echo $row['cmnt']; ?></td>
  </tr>
  <?php
    }
    
}

?>
</table>
<?php


} else {
    

    $file = substr($_SERVER['QUERY_STRING'],5,strlen($_SERVER['QUERY_STRING'])-4);
    
        $sql = mysql_query("SELECT * FROM `".$tabelle."` WHERE `titel`='".mysql_real_escape_string(urldecode($file))."'");
    $row = mysql_fetch_assoc($sql);
    /*$file = preg_replace("/(\%20)+/"," ",$file);
    $file = preg_replace("/(\%DF)+/","ß",$file);
    $file = preg_replace("/(\%FC)+/","ü",$file);
    $file = preg_replace("/(\%C4)+/","Ä",$file);
    $file = preg_replace("/(\%D6)+/","Ö",$file);
    $file = preg_replace("/(\%DC)+/","Ü",$file);
    $file = preg_replace("/(\%E4)+/","ä",$file);
    $file = preg_replace("/(\%F6)+/","ö",$file);*/
     
    $filesize = $row['filesize'];
    $filesize /= 1000000;
    $filesize = explode(".",$filesize);
    $filefront = $filesize[0];
    $fileback = substr($filesize[1],0,2);
?>
<script type="text/javascript">
function openURL (url) {
 fenster = window.open(url, "Musik", "width=100%,height=400,status=yes,scrollbars=yes,resizable=no,target=_blank");
 fenster.focus();
}
</script>
<?php include("../head.php"); ?>
    <h1>Download</h1>
    <p align="right"><a href="/kontakt.php">Song nicht mehr online? Probleme? Schreib den Support an.</a></p>
    <p align="right"><a href="/hilfe.php">Sind die Downloads wirklich kostenlos und legal? Klick hier.</a></p>
    <br />
    <? include ("../google2.php"); ?>
    <br />
    <div style="margin-top:10px; text-decoration:none;">
      <center>
        <img src="/img/download.jpg" border"0"> <br />
        <h3><a href="<?php echo ORDNER."/".utf8_decode($file); ?>" style="text-decoration:none" onClick="openURL('load.php?file=<?php echo urlencode($file); ?>');"> <?php echo urldecode($file); ?></a><br />
        </h3>
        <?php echo $row['cmnt']==''?'':'<b>Kommentar:</b> '.$row['cmnt']."<br />"; ?><?php echo "Dateigr&ouml;&szlig;e: ".$filefront.".".$fileback." MB";?>
      </center>
      <?php include("../d.php"); ?>
    <?php include("../footer.php"); ?>
</div>
<?php
}
?>

Wie gesagt, wenn ich diesen Übeltäter rausnehme, wird alles korrekt dargestellt, aber dann funktioniert die folgende load.php nicht mehr:
PHP:
<script type="text/javascript">
function openURL (url) {
 fenster = window.open(url, "Musik", "width=100%,height=400,status=yes,scrollbars=yes,resizable=no,target=_blank");
 fenster.focus();
}
</script>

load.php:
PHP:
<?php
include("cfg.php");
$tabelle = TABELLE;
$ordner = ORDNER;


$file = $_GET['file'];
$file = urldecode($file);
$file = preg_replace("/(\\\')+/", "'",$file);

$sql = mysql_query("SELECT * FROM `".$tabelle."` WHERE `titel`='".mysql_real_escape_string($file)."'");
$fetch = mysql_fetch_assoc($sql);
$clicks = $fetch['clicks']+1;

$update = mysql_query("UPDATE `".$tabelle."` SET `clicks` = '".$clicks."' WHERE `titel` ='".mysql_real_escape_string($file)."' LIMIT 1");
$update2 = mysql_query("UPDATE `statistiken` SET `clicks` = '".$clicks."', `last`='".date("Y.m.d H:i:s")."'  WHERE `titel` ='".mysql_real_escape_string($file)."' LIMIT 1");

?>
<script type="text/javascript">
<!--
window.close();

//-->
</script>


Weiß jemand, wo der Fehler liegt?
 
Ein Darstellungsfehler kann nicht durch die zwei Zeilen JS entstehen.

Allerdings werden bei dir zwei unterschiedliche Seiten aufgerufen. Im Popup eine andere als ohne JS.

HTML:
<h3>
<a href="<?php echo ORDNER."/".utf8_decode($file); ?>" 
onClick="openURL('load.php?file=<?php echo urlencode($file); ?>');"> 
<?php echo urldecode($file); ?></a>
</h3>
Das sind zwei völlig unterschiedliche aufrufe.
 
nur so eine idee, ich bin kein js fan.
wirf das ganze in einen iframe.. :mrgreen:
 
Das tut es aber, Struppi.

Wenn ich es rausnehme, wird alles richtig dargestellt, aber dafür wird die Datenbank nicht mehr aktualisiert.

Die eine öffnet eben die Datei zum Download. Und das andere die load.php, die eben die Downloadstatistik aktualisiert.


Frohe Weihnachten.
 
Ich habe dir auch gesagt, dass es anscheinend nötig ist.

Wie wäre es denn richtig?

Auf die Statistik kann ich nicht verzichten.
 
Du hast zwei verschiedene Seiten!

Dein Popup zeigt eine andere Seite an, als ohne. Folglich ist es kein Wunder, dass du, wenn du das JS entfernst, du unterschiedliche Seiten siehst.
 
Ich sehe keine zwei verschiedene Seiten.
Wenn ich das JS entferne, sehe ich die selbe Seite, nur dass die Darstellungsfehler weg sind.

Da sieht alles okay aus. Aber wenn ich einen Song weiter unten anklicke und sich ein neues Fenster öffnet.

Wenn wer jemand was Genaueres dazu sagen kann, bitte. :-)
 
Zuletzt bearbeitet:
Was soll ich noch sagen?
Ich hab dir doch den Code gezeigt. Da sind zwei unterschiedliche URLs für den onclick Event und den href Teil. und der onclick Teil ruft die JS Funktion auf, die du gelöscht hast. Folglich wird eine komplett andere Seite gezeigt.

Und wie jetzt jemand, aus deinem obigen Codeschnipsel, den Zusammenhang zu der Seite erkennen soll, ist mir ein Rätsel. Denn der Code aus dem Quelltext, den ich weiter oben zitiert habe, ist dort nicht vorhanden.
 
Wenn es so ist:
Warum wird im Downloadbereich der Container kleiner?
Das liegt nämlich daran.
Habe ich rausgefunden.

Sobald man die Seite öffnet, wird der Container kleiner.

Wenn ich den Container dann um 200px vergrößer, verschiebt sich nichts mehr, weil nach der Verkleinerung immer noch genug Platz ist für den Main.
Das geht aber nicht, weil der Container dann zu groß wäre.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben