zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > Barrierefreiheit
Seite neu laden PHP Skript macht meine Seite unvalide

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 18.02.2007, 21:17
Webdesigner
neuer user
Thread-Ersteller
 
Registriert seit: 18.02.2007
Ort: München
Beiträge: 4
X-TREM befindet sich auf einem aufstrebenden Ast
Standard PHP Skript macht meine Seite unvalide

Hallo!

Ich habe Probleme eine bestimmte Seite von mir valide zu machen.

Und zwar die: Suche - Suptra.de

Die Seite öffnet sich zum darstellen der Suchergebnisse auf meiner Seite.

Wenn ich das Skript rauslösche aus dem Quelltext ist die Seite wieder valide...

An was kann das liegen?

Gruß
X-TREM
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 19.02.2007, 11:46
{ display: random;}
XHTMLforum-Kenner
 
Registriert seit: 08.09.2004
Ort: Stuttgart
Beiträge: 5.037
andir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblick
Standard

Deine divs hauptcont, center-div und content werden nicht geschlossen- jedenfalls sieht es im Quelltext / tidy so aus. Deswegen die Fehlermeldung.
Wenn man aber im FF Webdeveloper die Seite anschaut ( Edit HTML) sind die drei schließenden Tags plötzlich da.

??
Kannst Du mal das breadcrumb php-script posten ( also nicht das generierte, sondern das script an sich) hier hats eine Funktion zum Einfügen dafür.

Edit: Ausserdem fehlt das schließende body und html-Tag. Merkwürdig.
__________________
Grüsse Andreas- auch mal wieder da...

Design isn't about the tools, it's about creating the best experience for the user. A design should be based on usability, accesibility, aesthetics, but never on floats, lists or background images. ( by Cameron Adams)
Wiedergelesen: > hier und hier

[Foren-Links] Dein Post? Klar, DAS vorher gelesen? Hilft. ## User-Landkarte

Geändert von andir (19.02.2007 um 11:48 Uhr)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 19.02.2007, 13:11
Webdesigner
neuer user
Thread-Ersteller
 
Registriert seit: 18.02.2007
Ort: München
Beiträge: 4
X-TREM befindet sich auf einem aufstrebenden Ast
Standard

Hallo Andreas,

Danke für Deine Antwort.

Ich vermute, dass das Skript eine Art Blockade darstellt. Ich werde Dir das Skript heute Abend posten.

Schöne Grüße
X-TREM
__________________
Exklusives Webdesign
http://www.suptra.de
Mit Zitat antworten
  #4 (permalink)  
Alt 19.02.2007, 17:38
Webdesigner
neuer user
Thread-Ersteller
 
Registriert seit: 18.02.2007
Ort: München
Beiträge: 4
X-TREM befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<?php

// Domain-Name für die Anzeige in den Resultaten

$DomainName="http://www.suptra.de";

// Root-Verzeichnis für den Zugriff auf die Dateien am Server

$RootDir=dirname($_SERVER['SCRIPT_FILENAME']);

// Dateiname für die Protokollierung der Suchbegriffe
// (kein Dateiname zum deaktivieren der Protokollierung)
// z.B. "../../files/logs/search_words.log"
$SearchWordLog="";

// Beschreibung anzeigen ("true" für ja, "false" für nein)
$Show_Description=true;

// Teile des Inhalts anzeigen ("true" für ja, "false" für nein)
$Show_Content=false;

// Länge der Textfragmente um die Fundstellen (in Zeichen)
$Found_Piece_Len=150;

// Dateinamen anzeigen ("true" für ja, "false" für nein)
$Show_Filename=true;

// Dateigröße anzeigen ("true" für ja, "false" für nein)
$Show_Filesize=true;

// Nummer des Resultates anzeigen ("true" für ja, "false" für nein)
$Show_ResultNumber=true;

// Erlaubte Verzeichnisse als Array, getrennt mit einem Beistrich
// Z.B.: $AllowedDirs=array($RootDir,$RootDir."/hilfe",$RootDir."/infos");
$AllowedDirs=array($RootDir);

// Erlaubte Erweiterungen als Array, getrennt mit einem Beistrich
// Z.B.: $AllowedExts=array(".php",".php3",".php4",".htm",".html",".ihtml",".shtm",".shtml",".txt");
$AllowedExts=array(".html",".shtml",".htm");

// Deutsche Umlaute dekodieren (dadurch wird beispielsweise "&auml;" zu "ä")
$Activate_Umlaut=true;

?>

<?php
  $search
=FormatSearchString(stripslashes($_POST['p_search']));
?>

<?php

if(!$search) exit;

// Protokollierung der Suchbegriffe
if(file_exists($SearchWordLog)) {
  
$fp=@fopen($SearchWordLog,"a"); 
  if(
$fp) {
    
flock($fp,2);
    
fputs($fp,$search."\r\n",256);
    
flock($fp,3);
    
fclose($fp);
  }
}

echo 
"<h4></h4>\n";

echo 
"<h4></h4>\n";

$files=ReadDirs($AllowedDirs,$AllowedExts);

$ResultCount=0;
if(
$files && $search){
  foreach(
$files as $f){
    if(
SearchFile($f,$search)){
      
$fn=$f;
      if(
substr($f,0,strlen($RootDir))==$RootDir$fn=$DomainName.substr($f,strlen($RootDir));
      
$ResultCount++;
      if(
$Show_ResultNumber) echo $ResultCount.". ";
      echo 
"<a href=\"".$fn."\"><b>".$Site_Title."</b></a><br>\n";
      if(
$Meta_Description) echo $Meta_Description."<br>\n";
      if(
$Site_Content) echo "<span id=small><span id=grey>".$Site_Content."</span></span><br>\n";
      if(
$Show_Filename) echo "<span id=grey>Datei:</span> <span id=green>".$fn."</span>";
      if(
$Show_Filesize){
        if(
$Show_Filename) echo " - ";
        echo 
"<span id=grey>Größe:</span> <span id=green>".round(filesize($f)/1024,2)." KB</span>";
      }
      if(
$Show_Filename || $Show_Filesize) echo "<br>";
      echo 
"<br>\n";
    }
  }
  
clearstatcache();
}
echo 
"Es wurden insgesamt <b>".$ResultCount."</b> Seiten gefunden.<br>\n";  

function 
SearchFile($url,$search){
  global 
$Show_Description;
  global 
$Found_Piece_Len;
  global 
$Activate_Umlaut;
  global 
$RootDir;
  global 
$DomainName;
  
  global 
$Site_Title;
  global 
$Site_Content;
  global 
$Meta_Description;
  global 
$Meta_Robots;
  
  
$Site_Title="";
  
$Site_Content="";
  
$Meta_Description="";
  
$Meta_Robots="";

  
// *** Meta-Angaben ermitteln ***
  
$gmtarray=get_meta_tags($url);
  while(list(
$key,$val)=each($gmtarray)){
    switch(
strtolower($key)){
      case 
"title"$Meta_Title=$val; break;
      case 
"keywords"$Meta_Keywords=$val; break;
      case 
"description"$Meta_Description=$val; break;
      case 
"robots"$Meta_Robots=strtolower($val); break;
      case 
"revisit"$Meta_Revisit=strtolower($val); break;
      case 
"revisit-after"$Meta_RevisitAfter=strtolower($val); break;
    }
  }
  if(!
$Show_Description$Meta_Description="";
  if(
eregi("noindex",$Meta_Robots)) return false;
  
  
// *** Dateiinhalt einlesen (bzw. Ausgabe bei PHP) ***
  
$fp=@fopen($url,"r"); 
  if(!
$fp) return false;
  while(!
feof($fp)){
    
$content.=fgets($fp,10240);
  }
  
fclose($fp);
  
$content=str_replace("<?","<",$content);
  
$content=str_replace("?>",">",$content);
  
$content=trim($content);
  
$content=$Site_Title." ".$Meta_Title." ".$Meta_Keywords." ".$Meta_Description." ".$content;
  
  
// *** Seitentitel ermitteln ***
  
$Site_Title=GetSiteTitle($content);
  if(!
$Site_Title$Site_Title=$Meta_Title;
  if(!
$Site_Title$Site_Title=basename($url);
  
  if(
substr($content,0,strlen($Site_Title))==$Site_Title$content=substr($content,strlen($Site_Title));
  
$content=strip_tags($content);
  
$content=str_replace("\n"," ",$content);
  
$content=str_replace("\r","",$content);
  
$sc=" ".trim($content);
  
  while(
strpos($sc,"  ")){
    
$sc=str_replace("  "," ",$sc);
  }
  
$content=$sc;

  
// Deutsche Umlaute konvertieren
  
if($Activate_Umlaut){
    
$content=str_replace("&auml;","ä",$content);
    
$content=str_replace("&ouml;","ö",$content);
    
$content=str_replace("&uuml;","ü",$content);
    
$content=str_replace("&Auml;","Ä",$content);
    
$content=str_replace("&Ouml;","Ö",$content);
    
$content=str_replace("&Uuml;","Ü",$content);
    
$content=str_replace("&szlig;","ß",$content);
  }
  
$content=str_replace("&euro;","€",$content);
      
  
// *** Suchen ***
  
$found=false;
  
$a=explode(" ",strtolower($search));
  
$lowcontent=strtolower($content);
  foreach(
$a as $arg){
    
$p0=strpos($lowcontent,$arg);
    if(
$p0>0){
      
$p1=$Found_Piece_Len;
      
$p2=$Found_Piece_Len;
      if((
$p0-$p1)<0$p1=$p0;
      
$result_text.="...".substr($content,$p0-$p1,$p1)."<b id=red>";
      
$result_text.=substr($content,$p0,strlen($arg))."</b>".substr($content,$p0+strlen($arg),$p2);
      
$found=true;
    }else{
      
$found=false;
      break;
    }
  }
  
  if(!
$found) return false;
  if(
$result_text$result_text.="...";

  
$Site_Content=$result_text;

  return 
true;
}
  
function 
FormatSearchString($search){
  
$chars=".:-_,;!§$%&/()=#+*~'?\[|]{^°}²³µ@€ äöüß1234567890abcdefghijklmnopqrstuvwxyz";
  for(
$i=0;$i<strlen($search);$i++){
    
$a=substr($search,$i,1);
    if(
stristr($chars,$a)) $s.=$a;
  }
  while(
strpos($s,"  ")){
    
$s=str_replace("  "," ",$s);
  }
  return 
trim($s);
}

function 
ReadDirs($DirArray,$ExtArray){
  
$fileArray=array();
  foreach(
$DirArray as $d){
    if(
$hDir opendir($d)){
      while(
$file=readdir($hDir)){
        if(!
is_dir($d."/".$file)){
            
// *** .*-Dateien (zB .htaccess) ignorieren ***
            
if(substr($file,0,1)!="."){
                foreach(
$ExtArray as $ext){
                    if(
substr(strtolower($file),strlen($file)-strlen($ext),strlen($ext))==strtolower($ext)){
                      
array_push($fileArray,$d."/".$file);
                        continue;
                    }
                  }
              }
          }
      }
      
closedir($hDir);
      }
  }
  return 
$fileArray;
}

function 
GetSiteTitle($content)

  
$p1=strpos(strtolower($content),"title>");
  if(!
$p1) return false;
  
$p2=strpos(strtolower($content),"</title>",$p1);
  if(!
$p2) return false;
  return 
trim(substr($content,$p1+7,$p2-$p1-7));
}

?>
__________________
Exklusives Webdesign
http://www.suptra.de
Mit Zitat antworten
  #5 (permalink)  
Alt 20.02.2007, 09:56
{ display: random;}
XHTMLforum-Kenner
 
Registriert seit: 08.09.2004
Ort: Stuttgart
Beiträge: 5.037
andir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblick
Standard

Erst einmal was mir bei der Nutzung deiner Suchfunktion aufgefallen ist:

Du verwendest bei der Ausgabe des Scripts viele Line-breaks, die nicht geschlossen sind.

zum Beispiel < br > -- das ist HMTL-Syntax, bei deinem Doctype ist aber < br / > richtig ( denke dir die Leerstellen bei den spitzen Klammern weg.)

Also: Nachbessern:

Zum Auszeichnen diverser Elemente verwendest Du spans. Soweit ok, aber du verwendest gleichzeitig id's, die mehrfach im Dokument vorkommen. Das darf nicht sein, ersetze also id durch die z.B. gleichnamige Klasse. Zwei leere h4 container sind ausserdem an Bord.
Ich persönlich bevorzuge es, id's und Klassen im HTML in " " zu setzen.
Du müsstest das in deinem Suchausgabescript anpassen, entweder das doppelte Anführungszeichen escapen oder nur einfache ' ' nehmen.

Das ist dieser Bereich:

PHP-Code:
if($Show_ResultNumber) echo $ResultCount.". ";
      echo 
"<a href=\"".$fn."\"><b>".$Site_Title."</b></a><br>\n";
      if(
$Meta_Description) echo $Meta_Description."<br>\n";
      if(
$Site_Content) echo "<span id=small><span id=grey>".$Site_Content."</span></span><br>\n";
      if(
$Show_Filename) echo "<span id=grey>Datei:</span> <span id=green>".$fn."</span>";
      if(
$Show_Filesize){
        if(
$Show_Filename) echo " - ";
        echo 
"<span id=grey>Größe:</span> <span id=green>".round(filesize($f)/1024,2)." KB</span>";
      }
      if(
$Show_Filename || $Show_Filesize) echo "<br>";
      echo 
"<br>\n";
    } 

Damit kannst Du die rund 264 Fehlermeldungen vermeiden die ich bekommen habe...


@Thema:


Dein Skript endet unwiderrruflich, wenn die Variable Search nicht existiert, also keine Sucheingabe erfolgt ist.

PHP-Code:
if(!$search) exit; 
Das ist uncool, weil nur eine leere Seite zu sehen ist.

Besser ist es :
PHP-Code:
if(!$search) die ("Bitte geben Sie einen Suchbegriff ein") ; 
zu verwenden.

Gleichzeitig bin ich mir nicht sicher, ob die oder exit hier die richtige Wahl ist, denn offensichtlich wird das Ausführen des gesamten Seitenscripts abgebrochen. Wie du im Browser und auch im Quelltext siehst, fehlt der footer komplett und natürlich die diversen im vorigen Posting angesprochenen Tags.

Entweder verbindest Du das Aussteigen aus dem Script mit einer entsprechenden Fehlerbehandlung ( if !$search... echo "div footer bla bla... UND DANN ERST DIE ( ) ) oder du läßt Dir was anderes einfallen.

Leider bin ich nicht so der php Crack, aber auch da haben wir ein forum für
__________________
Grüsse Andreas- auch mal wieder da...

Design isn't about the tools, it's about creating the best experience for the user. A design should be based on usability, accesibility, aesthetics, but never on floats, lists or background images. ( by Cameron Adams)
Wiedergelesen: > hier und hier

[Foren-Links] Dein Post? Klar, DAS vorher gelesen? Hilft. ## User-Landkarte
Mit Zitat antworten
  #6 (permalink)  
Alt 20.02.2007, 12:17
Webdesigner
neuer user
Thread-Ersteller
 
Registriert seit: 18.02.2007
Ort: München
Beiträge: 4
X-TREM befindet sich auf einem aufstrebenden Ast
Standard

Wahnsinn... vielen Dank Andreas

Hast mir sehr weitergeholfen!
__________________
Exklusives Webdesign
http://www.suptra.de
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP Kontaktforumlar allgemeiner aufbau Krulle Serveradministration und serverseitige Scripte 15 17.06.2010 12:44
Ajax: php formular absenden und ergebnisse auf selbe seite in div laden? sepp88 Javascript & Ajax 35 23.03.2010 10:17
Seite wird auf anderem Computer falsch dargestellt Patrick Egli CSS 3 01.11.2009 10:40
Element ausserhalb seite positionieren, so daß keine scrollbar entsteht st-SaHiB CSS 5 20.07.2009 08:49


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:47 Uhr.