SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 06.08.2009, 17:50:14
Auf der Mauer Auf der Mauer ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 43
Beiträge: 119
PHP Script erzeugt leere weiße Seite im Internet Explorer

Hallo,

ich habe ein Problem mit meinem Loginsystem. Im neuen Firefox (3.5) funktioniert alles wie es soll nur eben im IE 6 nicht. Wenn ich auf der Loginseite testweise einem Benutzernamen und ein Passwort eingebe und auf anmelden klicke kommt eine leere weiße Seite mit dergleichen URL. (login.php). Bei einem Refresh wird ordnungsgemäß die logincheck.php aufgerufen, durchlaufen und man wird zur memberbereich.php bzw. fehler.php weitergeleitet. Letztere natürlich nur wenn die Daten falsch waren. Es funktioniert also auch im IE allerdings nur nach einem Refresh der Seite. Jetzt konnte ich den Fehler im Skript leider nicht ausfindig machen der dafür verantwortlich ist. Eine Möglichkeit wäre einen automatischen Refresh einzubauen.

Hier sind alle dafür zuständigen php Dateien:

LOGIN.PHP

Sie besteht nur aus HTML. 2 Eingabefelder für Name und Passwort. Das Javascript überprüft vor dem Absenden ob die Felder ausgefüllt wurden.

HTML-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>TESTSEITE - LOGIN</title>
  <style type="text/css">
<!--
 <h4> { color:#999999; }
 #headline { font:small-caps 70% Verdana; }
 #normaltext { font:small-caps 90% Verdana; }
 a:link { color:#999999; text-decoration:none; }
 a:visited { color:#999999; text-decoration:none; }
 a:hover { color:#333333; text-decoration:none; }
 a:active { color:#999999; text-decoration:none; }
 #Aussentabelle { width:685px; margin-left:145px; }
 p { font-family:Verdana,Arial,serif;font-size:11px; }
 #p2 { font-family:Verdana,Arial,serif;font-size:11px;color:333333; }
 #letterbreite { font-family:Verdana,Arial,serif;font-size:10px;letter-spacing:0.0em;color:CC6600; }
div { border-width:1px; border-color:#787878; border-style:dashed; padding:10px; }
-->
  </style>
  <script language="JavaScript">
function chkFormular()
 {
  if(document.LOGIN.Pseudonym.value == "")
  {
   alert("Bitte gib dein Pseudonym ein!");
   document.LOGIN.Pseudonym.focus();
   return false;
  }
  if(document.LOGIN.Passwort.value == "")
  {
   alert("Bitte gib dein Passwort in das Feld ein!");
   document.LOGIN.Passwort.focus();
   return false;
  }
 }
</script>
</head>
<body background="background.jpg">
<table id="Aussentabelle" border="0"><td style="padding:20px">
<table border="0" bgcolor='#FFFFFF' cellspacing='0' cellpadding='0' width='650px'><td><a href="http://startseite.php"><img src='Logo3.gif' border='0'></a></td><td bgcolor='#EAEAEA' align="center"> <p id="p2"><b>SCHRITT 4</b></p></td></table>
<br><p style="font-family:Verdana,Arial,serif; font-size:13px; color:#CC6600;"><b>BENUTZER - LOGIN</b></p><br>
<p><b>BITTE GIB DEIN PSEUDONYM UND DEIN PASSWORT IN DIE EINGABEFELDER EIN.</b><br> (Achte dabei auf Groß,- u. Kleinschreibung)</p><br>
<form name="LOGIN" onSubmit="return chkFormular()" method="post" action="logincheck.php">
<div><table border="0" cellspacing='3'><td><p id="letterbreite"><b>PSEUDONYM</b></p></td><td><p id="letterbreite"><b>PASSWORT</b></p></td>
<tr><td><input name="Pseudonym" type="text"></td><td><input name="Passwort" type="password"></td><td><input type="submit" name="Submit" value="Anmelden"></td></tr>
</table></div>
</form>
<br><br><br><br><hr style="border:none; border-top: 1px dotted #999999; background-color: #FFFFFF;height: 1px;">
<p>© 2009 BY <a href="http://xxx.net"><b>xxx</b></a> - ALL RIGHTS RESERVED - <a href="http://xxx.net/html/impressum.html"><b>IMPRESSUM</b></a></p>
</td></table>
</body>
</html>
LOGINCHECK.PHP

Hier werden die Formulareingaben auf Richtigkeit überprüft. Ist alles in Ordnung wird die Session gestartet und man wird zum Memberbereich weitergeleitet. War Name oder Passwort falsch dann gibt es die Fehler.php

PHP-Code:
<?php
ob_start
();
error_reporting (E_ALL E_NOTICE);
// Verbindung zur Datenbank herstellen
include 'connect.php'

//Formulareingaben in Variabeln speichern
$Pseudonym $_POST["Pseudonym"];
$Passwort $_POST["Passwort"];

//Abfrage der Eingaben
$abfrage "SELECT Pseudonym, Passwort FROM table WHERE Pseudonym = '$Pseudonym' AND Passwort = '$Passwort' LIMIT 1";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_object($ergebnis))
{
//$Code32 = $row->Code32;
}
if(
mysql_num_rows($ergebnis))
{
session_start(); 
$_SESSION['Passwort'] = $Passwort;
$_SESSION['random_key'] = strtotime(date('Y-m-d H:i:s'));
$SESSID $_SESSION['random_key'];
$_SESSION['Pseudonym'] = $Pseudonym;
header("Location: http://xxx.net/memberbereich.php?Pseudonym=$Pseudonym&SESSID=$SESSID");
}
else 
{
header("Location: http://xxx.net/fehler2.php");
}
ob_end_flush();
?>
MEMBERBEREICH.PHP

Hier wird man mit seinem Namen begrüßt und findet seine hochgeladenen Bilder sortiert nach Datum vor. Es gibt eine Blätterfunktion. Hier kann man sich auch ausloggen.

PHP-Code:
<?php
session_start
(); 
$Pseudonym $_GET['Pseudonym'];
$SESSID $_GET['SESSID'];
$Passwort $_SESSION['Passwort'];

// Wenn $_SESSION['Passwort'] gesetzt ist und wenn $_SESSION['Passwort'] gleich $Passwort  ist, dann ist man im gesicherten Bereich
        
if(isset($_SESSION['Passwort']) && $_SESSION['Passwort'] == $Passwort) {

// Andernfalls wird eine Meldung ausgegeben, dass man nicht eingeloggt ist
} else {      
header("Location: http://xxx.net/fehler3.php");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title>xxx </title>
  
  <style type="text/css">
<!--
 <h4> { color:#999999; }
 #headline { font:small-caps 70% Verdana; }
 #normaltext { font:small-caps 90% Verdana; }
 a:link { color:#999999; text-decoration:none; }
 a:visited { color:#999999; text-decoration:none; }
 a:hover { color:#333333; text-decoration:none; }
 a:active { color:#999999; text-decoration:none; }
 #Aussentabelle { width:685px; margin-left:145px; }
 p { font-family:Verdana,Arial,serif;font-size:11px; }
 #letterbreite { font-family:Verdana,Arial,serif;font-size:12px;letter-spacing:0.3em;color:CC6600; }
div { border-width:1px; border-color:#787878; border-style:dashed; padding:0px; }
-->
  </style>
  
</head>

<body background="background.jpg">
<table id="Aussentabelle" border="0"><td style="padding:20px">
<table border="0" bordercolor='#FFFFFF' bgcolor='#EAEAEA' cellspacing='0' cellpadding='7' width='650px' rules='rows'>
<td><p><b>HALLO <?php echo "$Pseudonym" ;?></b><br><br>Willkommen in deinem privaten Bereich</p></td><td><?php echo "<a href='logout.php?SESSID=$SESSID'><p>Logout</p></a>"?></td></table>

<br><table border='1' bordercolor='#FFFFFF' bgcolor='#EAEAEA' cellspacing='0' cellpadding='15' rules='all' width='650px'"
style="font-family:Verdana, Arial, sans-serif; font-size:9px">
<tr>

<?php
$seite 
$_GET["seite"];  //Abfrage auf welcher Seite man ist

//Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
if(!isset($seite))
   {
   
$seite 1;
   }
//Verbindung zu Datenbank aufbauen

include 'connect.php';

       
$abfrage "SELECT Bilderlink, Thumb, Beschreibung FROM table WHERE Copyright = '$Pseudonym'";
       
$ergebnis mysql_query($abfrage);
       if(
mysql_errno()) echo mysql_error();
       
$num_rows mysql_num_rows($ergebnis);

echo 
" <p style=\"color:#000000;font-size:11px;font-family:verdana,Arial,serif;\"> <b>DU HAST BISHER (".$num_rows.") BILDER HOCHGELADEN</b></p><br>";
//Einträge pro Seite: Hier 15 pro Seite
$eintraege_pro_seite 4;

//Ausrechen welche Spalte man zuerst ausgeben muss:

$start $seite $eintraege_pro_seite $eintraege_pro_seite;

//Tabelle Abfragen
//Tabelle hei&szlig;t hier einfach: Tabelle
$abfrage "SELECT Bilderlink, Thumb, Beschreibung FROM table WHERE Copyright = '$Pseudonym' ORDER BY Erstellt DESC LIMIT $start, 

$eintraege_pro_seite"
;
$ergebnis mysql_query($abfrage);
if(
mysql_errno()) echo mysql_error();
while(
$row mysql_fetch_object($ergebnis))
    {
echo 
"<td><a href= '$row->Bilderlink' target='pic_haupt'><img src='$row->Thumb' title='$row->Beschreibung' width=126 height=126 border=0></a><br><br><input type='checkbox' name='delete'> LÖSCHEN<br></td>";

if (
$i == 3) echo "</tr><tr>";
    
$i++;
    }
?>  
</table>

<?php
//Jetzt kommt das "Inhaltsverzeichnis",sprich dort steht Seite: 1 2 
//Wieviele Einträge gibt es überhaupt
/*Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten also der gleiche Text wie in der Variable $abfrage, blo&szlig; das hier das LIMIT fehlt - Sonst funktioniert die Blätterfunktion nicht richtig, und hier kann nur 1 Feld abgefragt werden, also id*/

$result mysql_query("SELECT Bilderlink, Thumb, Beschreibung FROM table WHERE Copyright = '$Pseudonym' ORDER BY Erstellt DESC");
$menge mysql_num_rows($result);

//Errechnen wieviele Seiten es geben wird
$wieviel_seiten $menge $eintraege_pro_seite;

//Ausgabe der Seitenlinks:

echo "<br><p style='color:#000000;font-size:10px;font-family:verdana,Arial, serif'> <b>Seite:</b>";

//Ausgabe der Links zu den Seiten
for($a=0$a $wieviel_seiten$a++)
   {
   
$b $a 1;

   
//Wenn User sich auf dieser Seite befindet, keinen Link ausgeben
   
if($seite == $b)
      {
      echo 
"<b> $b </b>";
      }
   
//Auf dieser Seite ist der User nicht, also Link ausgeben
   
else
      {
      echo 
"<a href=\"?Pseudonym=$Pseudonym&SESSID=$SESSID&seite=$b\"> $b </a>"
      }
      }
      echo
"</p>";
?>

<br><br><br><hr style="border:none; border-top: 1px dotted #999999; background-color: #FFFFFF;height: 1px;">
<p>© 2009 BY <a href="http://xxx.net"><b>STARTSEITE</b></a> - ALL RIGHTS RESERVED - <a href="http://xxx.net/html/impressum.html"><b>IMPRESSUM</b></a></p><br><br>
</td></table>
</body>
</html>
Ich bin für jeden Tip dankbar

Gruß
René

Geändert von Auf der Mauer (06.08.2009 um 18:08:37 Uhr)
Mit Zitat antworten
  #2  
Alt 06.08.2009, 18:53:06
Auf der Mauer Auf der Mauer ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 43
Beiträge: 119
AW: PHP Script erzeugt leere weiße Seite im Internet Explorer

Ich habe eine nicht mehr benötigte Passage aus dem Quelltext in der memberbereich.php entfernt, jetzt funktioniert der Login auch auf anhieb im Internet Explorer. Da war wohl irgendeine Wegfahrsperre in der Weiterleitung eingebaut. Das Problem der weißen Seite besteht jetzt nicht mehr.

Eine Frage habe ich allerdings noch zum Logout in der memberbereich.php , da ja jetzt alle benötigten Dateien schon in diesem Thread sind. Ich habe mich Testweise mal gleichzeitig mit unterschiedlichen Benutzeraccounts angemeldet. Das funktioniert auch ganz gut. Es werden nach dem erfolgreichen einloggen jedem Benutzer automatische Session Ids zugewiesen und auch in der memberbereich.php werden die jeweiligen Informationen/Bilder des Benutzers angezeigt. Das Problem ist aber das wenn ich den einen Benutzer über die logout.php abmelde auch der andere Benutzer seine Rechte an der Sitzung verliert. Verstehe nicht warum das so ist da es sich doch um 2 Sitzungen mit zwei unterschiedlichen Sitzungs ID's handelt.

Hier ist noch die LOGOUT.PHP

PHP-Code:
<?php
    
// Die Session wieder starten
    
session_start();
    
$SESSID $_GET['SESSID'];
    
// Und die Session beenden
    
session_destroy();
    
    
// Weiterleitung zum Login-Formular (oder eine beliebigen anderen Datei)
    
header('Location: http://xxx.net/html/startseite.php');
?>
Gruß
René
Mit Zitat antworten
  #3  
Alt 06.08.2009, 19:09:38
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: PHP Script erzeugt leere weiße Seite im Internet Explorer

also grundsätzlich sind da einige fehler im html, und die session-daten dürften nicht geschrieben werden: http://mrfoo.de/archiv/23-Header-Loc...P-Problem.html
Mit Zitat antworten
  #4  
Alt 06.08.2009, 20:04:37
Auf der Mauer Auf der Mauer ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 43
Beiträge: 119
AW: PHP Script erzeugt leere weiße Seite im Internet Explorer

Hallo Feuervogel,

doch das mit den Sessions klappt ziemlich gut, nur beim ausloggen gibt es ein Problem, sollte aber eigentlich nichts mit dem geschriebenen zu tun haben. Die Session ID wird ja mittels GET an die anderen Seiten übertragen. (Auch an die logout.php)

Kann es sein das die Fehlertoleranz sowohl bei dem älteren IE 6 als auch dem neusten Firefox recht hoch ist? Die HTML fehler sorgen bis jetzt für keine Darstellungsfehler. Kannst du mal ein kleines Beispiel nenen wo es zum Beispiel im HTML Code hakt?

Gruß
René
Mit Zitat antworten
  #5  
Alt 06.08.2009, 20:44:46
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: PHP Script erzeugt leere weiße Seite im Internet Explorer

ich glaube ein tr-tag wird nicht geschlossen sowie ein a tag. am besten du kopierst das html (oder den link zur seite) in den w3c-validator: http://validator.w3.org/
Mit Zitat antworten
  #6  
Alt 06.08.2009, 21:02:01
Auf der Mauer Auf der Mauer ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 43
Beiträge: 119
AW: PHP Script erzeugt leere weiße Seite im Internet Explorer

Vielen Dank für den Link, die Seite ist richtig gut.
Da bin ich ja mal gespannt was dort alles so zum Vorschein kommt.

Gruß
René
Mit Zitat antworten
  #7  
Alt 06.08.2009, 21:03:17
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: PHP Script erzeugt leere weiße Seite im Internet Explorer

<tr>...</tr> fehlen komplett und dazu kommt noch:

Line 23, Column 32: required attribute "TYPE" not specified
Line 47, Column 101: ID "LETTERBREITE" already defined

Viel Arbeit an 'nem Fussballabend ;-)
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #8  
Alt 07.08.2009, 09:15:08
Auf der Mauer Auf der Mauer ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 43
Beiträge: 119
AW: PHP Script erzeugt leere weiße Seite im Internet Explorer

@ vt1816

ja genau ;-)
Trotz Fussball bin ich meine Seiten durchgegangen und es wurden einige HTML Fehler gefunden. Wobei es erstaunlich ist das diese eigentlich überhaupt nicht zu Darstellungsproblemen geführt haben. Die Toleranzgrenze ist da wohl recht hoch in den Browsern. Jetzt habe ich aber ein gutes Gefühl.

Zitat:
Congratulations
This document was successfully checked as HTML 4.01 Transitional!
Vielen Dank für die Hilfe und den Tip mit der Seite. Habe gleich mal ein Lesezeichen darauf gesetzt. Wieder ein Problem weniger.

Jetzt hakt es nur noch beim ausloggen. Hat da jemand noch eine Idee? Beim abmelden von User A wird automatisch auch User B abgemeldet obwohl es zwei Sitzungen mit zwei unterschiedlichen Session ID's sind. Wenn ich beide Seiten aktualisiere bleiben die unterschiedlichen Session ID's erhalten und sie werden auch mittels GET an die logout.php übergeben.

Gruß
René
Mit Zitat antworten
  #9  
Alt 08.08.2009, 17:52:23
Auf der Mauer Auf der Mauer ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 43
Beiträge: 119
AW: PHP Script erzeugt leere weiße Seite im Internet Explorer

Das Problem mit dem ausloggen war garkeins.
Abmelden und Session destroy aus demselben Browser ist eben keine gute Idee ;-)
IE und Mozilla Firefox gleichzeitig überhaupt kein Problem.

Mhh schön wie die ganzen Zahnrädchen in meinem Projekt langsam anfangen sich zu drehen ;-)

Gruß
René
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Seite wechseln per PHP Raffo PHP für Fortgeschrittene und Experten 2 15.04.2003 19:57:39
daten an php script übergeben c-m-m PHP für Fortgeschrittene und Experten 2 28.10.2002 09:33:44
php Seite automatisch alle 14 Tage aufrufen - ist das möglich? Moses PHP für Fortgeschrittene und Experten 8 27.08.2002 15:15:07
Wie ist PHP - Seite aufgebaut? Limbi PHP Grundlagen 10 14.07.2002 02:56:38
Mit PHP überprüfen ob eine Seite im Frame geladen wurde AndreD PHP für Fortgeschrittene und Experten 6 02.06.2002 18:49:04


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:08:36 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt