Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „schuetzen von PHP Seiten funktioniert nicht!“

mathi77

Nicht mehr ganz neu hier

Hallo Ihr Lieben,

bitte mal wieder um Eure Hilfe:

hab eine schuetzen.inc.php erstellt mit folgenden Inhalt:

PHP:
session_start(); //Beginn der Session
        if(!isset($_SESSION["schuetzen"]) || $_SESSION["schuetzen"]!=1)
        {
            header("Location: login.php");
            exit;
        }
diese inkludierte ich in meiner Hauptseite mit
PHP:
<?php require ("includes/schuetzen.inc.php"); 
       require ("includes/connect.inc.php");
      require ("includes/error.inc.php");
?>
Beim Login setze ich die $_SESSION["schuetzen"] = 1;

So, leider funktioniert in keinster Weise meine Header-Umleitung:
der Location Pfad ist korrekt! Erhalte auch keine Fehlermeldung durch error_reporting(E_ALL); Die Seite bleibt einfach nur weiß!

Die einzelnen Content-Seiten lade ich mit
PHP:
<?php include ("navi.inc.php"); ?>   
  
  <div id="mainContent">
    
        <?php if($HTTP_GET_VARS['page'] == "")
                    {
                     include"kalender.php";
                    }
                elseif ($HTTP_GET_VARS['page'] == "kalender") include"kalender.php";
                elseif ($HTTP_GET_VARS['page'] == "firmen") include"firmen.php";
                    elseif ($HTTP_GET_VARS['page'] == "firmaneu") include"firmaneu.php";
                elseif ($HTTP_GET_VARS['page'] == "agenturen") include"agenturen.php";
                        elseif ($HTTP_GET_VARS['page'] == "agenturneu") include"agenturneu.php";
                        elseif ($HTTP_GET_VARS['page'] == "ag_details.php") include"ag_details.php";
                elseif ($HTTP_GET_VARS['page'] == "einstellungen") include"einstellungen.php";
                elseif ($HTTP_GET_VARS['page'] == "newsletter") include"newsletter.php";
                elseif ($HTTP_GET_VARS['page'] == "website") include"website.php";
                elseif ($HTTP_GET_VARS['page'] == "logout") include"logout.php";

            
         ?>
Woran liegt das?

Danke im voraus & lg Mathi
 

saila

Moderatorle

AW: schuetzen von PHP Seiten funktioniert nicht!

Hi,

PHP:
<?php
header('Location: page.php', true);
exit();
?>
 

mathi77

Nicht mehr ganz neu hier

AW: schuetzen von PHP Seiten funktioniert nicht!

Hi Saila,

Danke für Deine rasche Antwort, jedoch funktionierts leider nicht! :-(

lg Mathi
 

saila

Moderatorle

AW: schuetzen von PHP Seiten funktioniert nicht!

Naja - ich weis zwar nicht was in der login alles von statten geht, aber es wird wohl kein html eingebunden oder irgendwo ist in einer Prüfung ein Fehler.

Du hast sicherlich eine if/else oder if/elseif/else. Hau da mal ein echo 'test'; rein um geh diese Prüfung entsprechend durch. Dann kannst du sehen wo du hängst ;)

Im übrigen nimmt man nicht mehr HTTP_GET_VARS sondern $_GET!
 

mathi77

Nicht mehr ganz neu hier

AW: schuetzen von PHP Seiten funktioniert nicht!

die Echo-Ausgabe im Header wird angezeigt, wenn ich das nach der Header-Umleitung eingebe... soweit so gut... d.h. es kann nur im login.php liegen?

schuetzen.inc.php
PHP:
<?php session_start(); //Beginn der Session
        if(!isset($_SESSION["schuetzen"]) || $_SESSION["schuetzen"]!=1)
        {
        header('Location: login.php', true);
        echo("test");
        exit();
        }
?>
login.php enthält schon html - formular
PHP:
<?php 

     $connection = mysql_connect ("XXX","XXX","XXX") or die("Keine Verbindung hergestellt");
     mysql_select_db("XXX") or die("Konnte die Datenbank nicht waehlen.");

$msg="";
$anz=0;

if(count($_POST)>0){
    $sql = "SELECT * FROM tbl_benutzerdaten WHERE(benutzername = '".$_POST["Benutzername"]."' AND passwort = '".$_POST["Passwort"]."')";

    $result =  mysql_query($sql) or die("ERROR: ".mysql_error());
    if($data = mysql_fetch_array($result)) {
        session_start();
        $_SESSION["schuetzen"] = 1;    
        $_SESSION["user-id"] = $data ["Id"];
        $_SESSION["user-benutzername"] = $data ["benutzername"];
        $_SESSION["user-vorname"] = $data ["vorname"];
        $_SESSION["user-nachname"] = $data ["nachname"];
        
        //echo("SUCCESS");
        header ("Location: eManager.php");
    }
    else {
        //echo("FEHLER");
        //header("Location: login.php");
        $anz = $_POST['anzVersuche']+1;
        $msg = '<p class="error">Login fehlgeschlagen! Bitte versuchen Sie es erneut!</p>';
    }
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>.:: Greif-Werbung - Login ::.</title>
        
<script language="javascript" type="text/javascript" src="js/forms.js"></script>
<link rel="stylesheet" type="text/css" href="css/login.css" /> 
    
</head>

<body>
<div id="wrap">
    <div id="login_left"><img src="http://www.psd-tutorials.de/modules/Forum/images/Greif_logo.gif" alt="Greif Werbung" /></div>

    <div id="login_right">
<?php 

    if($anz<3){
       echo    ('
      <form name="frmLogin" id="frmLogin" method="post" action="">
        <input type="hidden" name="anzVersuche" value="'.$anz.'" />
        <label for="Benutzername" class="Pflicht">Benutzername:</label><input type="text" name="Benutzername" class="Pflicht"  />
        <label for="Passwort" class="Pflicht">Passwort:</label><input type="password" name="Passwort" class="Pflicht" />
        <input type="submit" class="button" value="Login&raquo;" onclick="ueberpruefe(this.form.name);" />
      </form>
        '); 
       } 
    else{ 
        $msg = '<p class="error">Alle Versuche fehlgeschlagen! Bitte wenden Sie sich an Ihren Administrator!</p><br/>
               <p><a href="#">Passwort vergessen?</a></p>';
        } 
?>
    </div><!--login_right end-->
    
<div id="message"><?php echo($msg);?></div>
</div><!--wrap end-->

</body>
</html>
Session_Übergabe funktioniert, da ich die $_Session in der nächsten Datei mit echo ausgeben kann!

danke & lg Mathi
 
Zuletzt bearbeitet:

ChrisvA

Aktives Mitglied

AW: schuetzen von PHP Seiten funktioniert nicht!

Mir sind 2 Dinge aufgefallen.
Wenn "test" noch erscheint, funktioniert die Weiterleitung nicht, denn falls sie gehen würde, würde test nur kurz aufblinken, bevor es wieder verschwindet.
Noch zu deinem 1. Post: Statt der sehr langen if...elseif... Schleife würde ich entweder switch-case benutzen, oder ein Array, was jeweils den String als Schlüssel hat und den Dateipfad als Wert. Dann musst du vereinfacht nur noch include($pages[$_GET['page']]) schreiben.
Außerdem schau mal bitte in dein Postfach, ich habe dir einen Nachricht geschickt.
 

mathi77

Nicht mehr ganz neu hier

AW: schuetzen von PHP Seiten funktioniert nicht!

Hi Chris,

vielen Dank für Deinen Tipp! Werds gleich mal umsetzen!

glg Mathi
 

saila

Moderatorle

AW: schuetzen von PHP Seiten funktioniert nicht!

Hi,

echo nach einem Header führt zu einem Exception (Fehler). Das echo solltest du eigentl. in der Seite einbauen und zwar in der if/else. Damit kannst du erkennen wo die seite hängt bzw. stehen bleibt.

Und ob if/else oder switch ist völlig egal. Wobei man eigentl. switch für kurze Bedingungen wählt und if/elseif/else eben für längere Bedingungen. Das gleiche verhält sich auch für den Inhalt bei if/else bzw. switch.
 

mathi77

Nicht mehr ganz neu hier

AW: schuetzen von PHP Seiten funktioniert nicht!

Hallo Saila,

danke für den Tipp! Das Echo bleibt hängen!
Und im Quelltext erhalt ich als 1. Ausgabe eine 1 :?::mad:

Kann es sein das PHP 4.3.9 eine header ("Location: ...") nicht unterstützt?!
Habs auf PHP 5.3.9 getestet, da funzts die Umleitung :D ... ?

Wie & wo genau finde ich diese Angabe dann in meiner phpinfo.php?

DANKE DANKE!

glg Mathi
 

ChrisvA

Aktives Mitglied

AW: schuetzen von PHP Seiten funktioniert nicht!

Die header() Elemente muss eigentlich nicht PHP sondern der Browser verstehen. An den werden die header() nämlich gesendet. Ob sie ankommen, kannst du mal mit Firefox-Plugins wie Firebug, oder Domain Details feststellen.
Hast du mal verschiedene Browser ausprobiert?
Ansonsten kannst du eine Weiterleitung auch durch HTML erreichen. Indem du
PHP:
<meta http-equiv="refresh" content="5; URL=http://de.selfhtml.org/">
im Kopfteil einbaust.
 

saila

Moderatorle

AW: schuetzen von PHP Seiten funktioniert nicht!

Die Funktion header() gibt es seit PHP3. Der Unterschied (weis ich jetzt nicht aus dem Kopf) könnte mit dem zweiten Parameter zusammenhängen. Sprich fürVersion 4 ist header('Location: page.php'); ausreichend, während in PHP5 die header-Funktion sauber mit dem zweiten Parameter arbeitet.

Hast du nun in der login.php in jedem Prüfzweig (if/elseif/else) ein echo '1' ..2..3 usw. gesetzt? Wenn ja, kannst du erkennen, wo du auf der Login stehen bleibst. Wichtig - auch in der login.php das echo vor einer header-Funktion setzen.
 

Chickenshooter

Alter Mann

AW: schuetzen von PHP Seiten funktioniert nicht!

Moin,

auch um den Schutz Deiner Daten solltest Du Dir Sorgen machen

PHP:
if(count($_POST)>0){
    $sql = "SELECT * FROM tbl_benutzerdaten WHERE(benutzername = '".$_POST["Benutzername"]."' AND passwort = '".$_POST["Passwort"]."')";
Das SQL-Satatement ist für eine SQL-Injection prima geeignet weil Du die
Werte
PHP:
$_POST["Benutzername"] und $_POST["Passwort"]
ungefiltert an deine MySQL-Dataenbank weiter gibst, Du checkst nicht im
Geringsten was drinn steht (sehr gefährlich).
"Nerver trust a userinput" sollte man (Frau) sich auf die Fahne schreiben.

Deine erste if Abfrage ist sehr komisch mach es so
PHP:
/* in diesem If Konstrukt wird gecheckt ob der Benutzername gepostet wurde 
wenn ja wird auch noch das gepostete Passwort auf Existenz gecheckt, wenn 
Benutzername nicht vorhanden ist mit der if "Geschichte" Schluss das PW wird 
nicht mehr gecheckt.*/

if( isset($_POST["Benutzername"]) && isset($_POST["Passwort"]) )
{
   /*mit diesen functionen entschärfst Du die Strings*/
   $username = mysql_real_escape_string( $_POST["Benutzername"] );
  $password = mysql_real_escape_string( $_POST["Passwort"] ); 
   /*

   Dein Code

   */
}
MfG
 

Kaede

Nicht mehr ganz neu hier

Probier mal, im header()-Befehl mit doppelten Anführungszeichen zu arbeiten. Wobei das bei mir nur einmal gewirkt hat, weiß der Himmel warum.
Ansonsten einfach mal vorher ein
check_headers
durchführen, und gucken, was schon so gesendet wurde.
 
Zuletzt bearbeitet:

mathi77

Nicht mehr ganz neu hier

AW: schuetzen von PHP Seiten funktioniert nicht!

Hallo,

vielen Dank für die zahlzeichen Tipps, habs umgesetzt und alles funktioniert einwandfrei.

Danke, ohne Eure Hilfe hätt ich schon aufgegeben und bin schon einige Schritte vorwärts gekommen... und es macht mir sogar Spaß :D

:danke: glg Mathi
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.155
Beiträge
2.581.858
Mitglieder
67.222
Neuestes Mitglied
Gregor
Oben