isset Befehl ignoriert?

  • #1
F

Fooulaz

Aktives Mitglied
Themenersteller
Dabei seit
31.08.2006
Beiträge
43
Reaktionspunkte
0
Hallo, ich mal wieder!

Kann das sein, das mein PHP meine isset Befehle ignoriert?

Die werden nie ausgeführt!
z.B. Beim Loginin Memberbereich, will ich, dass wenn nix ausgefüllt wird im Formular das passiert:
Code:
<?php if ((!isset($username)) OR (!isset($passwort))) { die(Bitte Login-Daten eingeben!); } ?>

Funktioniert aber net! Wird einfach übersprungen!

Oder, beim ausfüllen des Gästebuchs; wenn nichts ausgefüllt wird, dann soll das passieren:
Code:
<?php if (!isset($_POST['Autor'],$_POST['Titel'],
		  $_POST['Inhalt'], $_POST['EMail']))
	{ $err=true; echo Bitte Formular ausfüllen! <br />; die (<a href=\guestbook.php\>---Zum Inhalt---</a><br />\n); ?>

Auch das wird übersprungen!

Muss ich in PHP.INI was abändern?

Mfg
Fooulaz

P.S. Wohl immer noch blutiger Anfänger :'(
 
  • #2
Hab noch ein weiteres Problem:

ich führe den Befehl aus:

Code:
<?php session_register('username');  ?>

dann mit header in eine andere Location.
In dieser neuen Seite starte ich Session wieder und will dann das:

Code:
<?php echo Hallo .$username. !\n;  ?>

kommt Fehlermeldung:

Notice: Undefined variable: username in C:\Server\htdocs\Fooulaz\MEMBER.php on line 5

dabei habe ich genau einn Befehl vorher das ausführen lassen:
Code:
<?php if (!(session_is_registered('username'))) { die (Zugang verweigert!);  } ?>

und der Befehl klappt auch sicher!

Mal wieder RATLOS! :-\

Macht grad keinen Spa?!echt!!! :| :tickedoff:
 
  • #3
Hi,

auch leere POST- bzw. GET-Variablen existieren ja!!!
Also werden sie von isset() auch gefunden.

Willst du prüfen ob sie leer sind dann entweder unschön so:
if ($eingabe=) {
}

oder mit einem regulären Ausdruck

grieß
 
  • #4
Buzz-Net schrieb:
auch leere POST- bzw. GET-Variablen existieren ja!!!
Also werden sie von isset() auch gefunden.

Erspart mir Schreibarbeit mml

Buzz-Net schrieb:
Willst du prüfen ob sie leer sind dann entweder unschön so:
if ($eingabe=) {
}

oder mit einem regulären Ausdruck

Warum nicht ein Stinknormales empty() ;)
 
  • #5
Hi,

also mit session_start() kannst du eine session starten oder wiederaufnehmen.

d.h. du musst bei deiner ertsne Seite erstmal session_start(); eingeben und bei der anderen location, bei der du ja auf die session-variable zugreifen möchtest auch!!

Nun musst du erstmal auf deiner ersten Seite eine Session-Variable definieren:

$_SESSION[username]=$username;

willst du nun auf deiner anderen location den usernamen aus der session-variable ausgeben:

session_start();
echo $_SESSION[username];

Müsste gehn.

Sieht ja ganz nach nem Session basiertem Loginbreich aus???
Hab sowas bei mir auch laufen...

grieß
 
  • #6
PCDConny schrieb:
Warum nicht ein Stinknormales empty() ;)

Hi,

ok das wäre ja wohl ne Möglichkeit... :| :| :| :| :| :tickedoff:

grieß
 
  • #7
  • #8
  • #9
Ok! Cool!
Hört sich ja mal alles gut an. Werd ich jetzt gleich mal ausprobieren!

Ja wird Login-Bereich! Hoffentlich klappts!

Bis dann!
 
  • #10
:D Ich dreh durch!

Ist schon spät morgen denkt sichs besser!

Sende mal meine Codes, vielleicht kann man mir ja so helfen!

Das ist Seite mit Login Formular:
Code:
<?php

	 session_start(); 

	echo <!DOCTYPE HTML PUBLIC \-//W3C//DTD HTML 4.01 Transitional//EN\\n;
	echo  \[url]http://www.w3.org/TR/html4/loose.dtd\>\n;[/url]
	echo <html>\n;
	
	echo <head>\n;
	echo <meta http-equiv=\Content-Style-Type\ content=\text/css\>\n;
	echo <meta name=\author\ content=\\>\n;
	echo <meta name=\description\ content=\Diese Seite...\>\n;
	echo <meta name=\keywords\ content=\Folus\>\n;
	echo <title>Fooulaz</title>\n;
	echo <link rel=\stylesheet\ type=\text/css\ href=\./fooulaz_screen.css\>\n;
	
	echo </head>\n;
	
	
	echo <body>\n;
	
	echo <table width=\100%\ height=\100%\>\n;
	echo <tr><td id=\banner\ rowspan=\3\ width=\12%\>Platz für Werbung</td><td id=\Titel\ colspan=\3\ align=\left\><img src=\./Logo_3.jpg\></td></tr>\n;
	echo <tr>\n;
	
	echo <td id=\navigation\ align=\center\ valign=\top\ width=\12%\ height=\600\>\n;
	echo <p>\n;
	echo <br /><br />\n;
	echo <a href=\./FooulazHOME.php\><img src=\./homebutton.gif\ alt=\Home\ title=\Home\></a><br />\n;
	echo <a><img src=\./memberbutton.gif\></a><br />\n;
	echo <a><img src=\./weblinks.gif\></a><br />\n;
	echo <a href=\./guestbook.php\><img src=\./gbbutton.gif\ alt=\Guestbook\ title=\Guestbook\></a><br />\n;
	
	echo </p>\n;
	echo </td>\n;
	
	echo <td width=\5%\></td>\n;
	
	
	echo <td valign=\top\>\n;
	
	include ../../php_includes/konfigurationfooulaz.php;	

	echo <h1>MEMBER-Login</h1><br />\n;
	echo <form action=\./FooulazMEMBERLOGIN.php\ method=\post\>\n;
	echo Username: <br />\n;
	echo <input type=\text\ name=\username\ size=\20\ maxlength=\20\><br />\n;
	echo Passwort: <br />\n;
	echo <input type=\password\ name=\passwort\ size=\20\ maxlength=\32\><br />\n;
	echo <input type=\submit\ name=\absenden\ value=\Login\><br />\n;
	echo </form>\n;

	$_SESSION['username']=$username;
	$_SESSION['passwort']=$passwort;
	
	
	
	echo </td>\n;
	echo </tr>\n;
	echo </table>\n;
	echo <hr border=\1\>\n;
	
	
	
	echo </body>\n;
	
	echo </html>\n;
?>

Hier die FooulazMEMBERLOGIN.php auf die action-Befehl verweist:
Code:
<?php

	session_start();
	include ../../php_includes/konfigurationfooulaz.php;
	
	
	

	if ((empty($_SESSION['username'])) OR (empty($_SESSION['passwort']))) { die(Bitte Login-Daten eingeben!); } 

	

	$query = SELECT Passwort FROM member WHERE Name =->.$username.' ;
	$result = mysql_query($query) OR die (mysql_error());

	$datenholen = mysql_fetch_array($result, MYSQL_ASSOC);
	
	if(!$datenholen) { die (Zugang verweigert!);  }
	if($datenholen['Passwort'] != $_SESSION['passwort']) { die(Zugang verweigert! Passwort ist falsch!);  }
	
	

	session_register('username');
	

	header (Location:MEMBER.php);
	
	

?>

Und hier MEMBER.php:
Code:
<?php

	session_start();
	include ../../php_includes/konfigurationfooulaz.php;	
	

	echo <!DOCTYPE HTML PUBLIC \-//W3C//DTD HTML 4.01 Transitional//EN\\n;
	echo  \[url]http://www.w3.org/TR/html4/loose.dtd\>\n;[/url]
	echo <html>\n;
	
	echo <head>\n;
	echo <meta http-equiv=\Content-Style-Type\ content=\text/css\>\n;
	echo <meta name=\author\ content=\\>\n;
	echo <meta name=\description\ content=\Diese Seite...\>\n;
	echo <meta name=\keywords\ content=\Folus\>\n;
	echo <title>Fooulaz</title>\n;
	echo <link rel=\stylesheet\ type=\text/css\ href=\./fooulaz_screen.css\>\n;
	
	echo </head>\n;
	
	
	echo <body>\n;
	
	echo <table width=\100%\ height=\100%\>\n;
	echo <tr><td id=\banner\ rowspan=\3\ width=\12%\>Platz für Werbung</td><td id=\Titel\ colspan=\3\ align=\left\><img src=\./Logo_3.jpg\></td></tr>\n;
	echo <tr>\n;
	
	echo <td id=\navigation\ align=\center\ valign=\top\ width=\12%\ height=\600\>\n;
	echo <p>\n;
	echo <br /><br />\n;
	echo <a href=\./FooulazHOME.php\><img src=\./homebutton.gif\ alt=\Home\ title=\Home\></a><br />\n;
	echo <a><img src=\./memberbutton.gif\></a><br />\n;
	echo <a><img src=\./weblinks.gif\></a><br />\n;
	echo <a href=\./guestbook.php\><img src=\./gbbutton.gif\ alt=\Guestbook\ title=\Guestbook\></a><br />\n;
	
	echo <br /><br /><br /><input type=\button\ name=\logout\ value=\Logout\ onClick=\location.href='logout.php'\>\n;
	
	echo </p>\n;
	echo </td>\n;
	
	echo <td width=\5%\></td>\n;
	
	
	echo <td valign=\top\>\n;
	
	echo <p><h1 align=\center\>MEMBERZONE</h1></p>\n;

	if (!(session_is_registered('username'))) { die (Zugang verweigert!);  }

	echo Hallo .$_SESSION['username']. !\n;
	

	
	
	
	echo </td>\n;
	echo </tr>\n;
	echo </table>\n;
	echo <hr border=\1\>\n;
	
	
	
	echo </body>\n;
	
	echo </html>\n;
?>

Da ich schon stundenlang rumprobiere, codes kopiere, verschiebe, neue dazu, und wieder weg,..., kann es wohl sein das es chaotisch aussieht und sich vielleicht auch deshalb Fehler eingeschlichen haben!

Naja! :buck2: Gut Nacht!

Mfg
Fooulaz
 
  • #11
Das ist Seite mit Login Formular:
Code:
<?php
	echo <!DOCTYPE HTML PUBLIC \-//W3C//DTD HTML 4.01 Transitional//EN\\n;
	echo  \[url]http://www.w3.org/TR/html4/loose.dtd\>\n;[/url]
	echo <html>\n;
	echo <head>\n;
	echo <meta http-equiv=\Content-Style-Type\ content=\text/css\>\n;
	echo <meta name=\author\ content=\\>\n;
	echo <meta name=\description\ content=\Diese Seite...\>\n;
	echo <meta name=\keywords\ content=\Folus\>\n;
	echo <title>Fooulaz</title>\n;
	echo <link rel=\stylesheet\ type=\text/css\ href=\./fooulaz_screen.css\>\n;
	
	echo </head>\n;
	
	
	echo <body>\n;
	
	echo <table width=\100%\ height=\100%\>\n;
	echo <tr><td id=\banner\ rowspan=\3\ width=\12%\>Platz für Werbung</td><td id=\Titel\ colspan=\3\ align=\left\><img src=\./Logo_3.jpg\></td></tr>\n;
	echo <tr>\n;
	
	echo <td id=\navigation\ align=\center\ valign=\top\ width=\12%\ height=\600\>\n;
	echo <p>\n;
	echo <br /><br />\n;
	echo <a href=\./FooulazHOME.php\><img src=\./homebutton.gif\ alt=\Home\ title=\Home\></a><br />\n;
	echo <a><img src=\./memberbutton.gif\></a><br />\n;
	echo <a><img src=\./weblinks.gif\></a><br />\n;
	echo <a href=\./guestbook.php\><img src=\./gbbutton.gif\ alt=\Guestbook\ title=\Guestbook\></a><br />\n;
	
	echo </p>\n;
	echo </td>\n;
	
	echo <td width=\5%\></td>\n;
	
	
	echo <td valign=\top\>\n;
	
	include ../../php_includes/konfigurationfooulaz.php;	

	echo <h1>MEMBER-Login</h1><br />\n;
    // siehe Action und Method!!!!
	echo <form action=\./FooulazMEMBERLOGIN.php\ method=\post\>\n;
	echo Username: <br />\n;
	echo <input type=\text\ name=\username\ size=\20\ maxlength=\20\><br />\n;
	echo Passwort: <br />\n;
	echo <input type=\password\ name=\passwort\ size=\20\ maxlength=\32\><br />\n;
	echo <input type=\submit\ name=\absenden\ value=\Login\><br />\n;
	echo </form>\n;
	
	echo </td>\n;
	echo </tr>\n;
	echo </table>\n;
	echo <hr border=\1\>\n;
	
	echo </body>\n;
	
	echo </html>\n;
?>

Hier die FooulazMEMBERLOGIN.php auf die action-Befehl verweist:
Code:
<?php

	include ../../php_includes/konfigurationfooulaz.php;

    //Variablen von der Seite mit Login-Formular hohlen
    $username=$_POST[username];
    $passwort=$_POST[passwort];	

	if ((empty(username)) OR (empty($passwort))) { die(Bitte Login-Daten eingeben!); }
  	
    //aufgrund der Sicherheit immer mysql_real_escape_string auf Benutzereingaben anwenden, bevor diese in einen SQL-Statement verwendet werden!!!

	$query = SELECT Passwort FROM member WHERE Name =->.mysql_real_escape_string($username).' && Passwort='.mysql_real_escape_string($passwort) ;
	$result = mysql_query($query) OR die (mysql_error());
    while ($row=mysql_fetch_object($result)) { !   
	
    //wird nur bei korrekten Login-Eingaben ausgeführt!!
    session_start();

    //Variablen von der Seite mit Login-Formular in Session-Variablen übernehmen 
   
    $_SESSION[username]=$_POST[username]; 
    $_SESSION[passwort]=$_POST[passwort];
    $_SESSION[status]=eingeloggt;	
    }

	header (Location:MEMBER.php);
	

?>

Und hier MEMBER.php:
Code:
<?php
  
    //damit besteht die möglichkeit auf mögliche session-variablen zuzugreifen
	session_start();
	include ../../php_includes/konfigurationfooulaz.php;	
	

	echo <!DOCTYPE HTML PUBLIC \-//W3C//DTD HTML 4.01 Transitional//EN\\n;
	echo  \[url]http://www.w3.org/TR/html4/loose.dtd\>\n;[/url]
	echo <html>\n;
	
	echo <head>\n;
	echo <meta http-equiv=\Content-Style-Type\ content=\text/css\>\n;
	echo <meta name=\author\ content=\\>\n;
	echo <meta name=\description\ content=\Diese Seite...\>\n;
	echo <meta name=\keywords\ content=\Folus\>\n;
	echo <title>Fooulaz</title>\n;
	echo <link rel=\stylesheet\ type=\text/css\ href=\./fooulaz_screen.css\>\n;
	
	echo </head>\n;
	
	
	echo <body>\n;
	
	echo <table width=\100%\ height=\100%\>\n;
	echo <tr><td id=\banner\ rowspan=\3\ width=\12%\>Platz für Werbung</td><td id=\Titel\ colspan=\3\ align=\left\><img src=\./Logo_3.jpg\></td></tr>\n;
	echo <tr>\n;
	
	echo <td id=\navigation\ align=\center\ valign=\top\ width=\12%\ height=\600\>\n;
	echo <p>\n;
	echo <br /><br />\n;
	echo <a href=\./FooulazHOME.php\><img src=\./homebutton.gif\ alt=\Home\ title=\Home\></a><br />\n;
	echo <a><img src=\./memberbutton.gif\></a><br />\n;
	echo <a><img src=\./weblinks.gif\></a><br />\n;
	echo <a href=\./guestbook.php\><img src=\./gbbutton.gif\ alt=\Guestbook\ title=\Guestbook\></a><br />\n;
	
	echo <br /><br /><br /><input type=\button\ name=\logout\ value=\Logout\ onClick=\location.href='logout.php'\>\n;
	
	echo </p>\n;
	echo </td>\n;
	
	echo <td width=\5%\></td>\n;
	
	
	echo <td valign=\top\>\n;
	
	echo <p><h1 align=\center\>MEMBERZONE</h1></p>\n;

   
    //falls die Variablen vorhanden sind und der status eingeloggt ist
    if (isset($_SESSION[status])&&isset($_SESSION[username])) {
     if ($_SESSION[status]==eingeloggt) {
	  echo Hallo .$_SESSION['username']. !\n;
      }
    }
	

	
	
	
	echo </td>\n;
	echo </tr>\n;
	echo </table>\n;
	echo <hr border=\1\>\n;
	
	
	
	echo </body>\n;
	
	echo </html>\n;
?>



Hi,

also hier mal die NOCH NICHT VOLLSTÄNDIG KORRIGIERTEN skripts.
Warum echost du immer die ganze Seite??

grieß
 
  • #12
Hallo!

Also Danke erstmal für deine Mühen! :1
-Hab jetzt am Wochenede wahrscheinlich keine Zeit um weiter zu machen, werde dann aber nächste Woche deine Version testen!

-Hab mir PHP über die Seite phpquake.net (oder so ähnlich) angeignet und dort wurde immer alles geechot!

-Zum Thema Sicherheit, hab ich so ne Funktionsdatei in konfigurationfooulaz, die XSS zumindest teilweise verhindern soll!

-Muss mich wohl nochmal in SELFHTML über Formulare informieren. Hab wohl noch Probleme mit action und method. Hab nämlich nicht verstanden was du damit meinst, ich soll mir das nochmal anschauen!

Also ich meld mich dann wenn ichs nochmal probiert hab (wohl erst Montag Abend).

Bis dann!

Mfg
Fooulaz
 
  • #13
So da bin ich wieder!
Hab meine codes geändert! Und es KLAPPT!! :V
Jetz hab ich schonmal einen Memberbereich :coolsmiley:
Hoffentlich ist der auch sicher!
Ein weiterer Schritt zur Homepage! mml Danke!

Mfg
Fooulaz
 
Thema:

isset Befehl ignoriert?

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben