if(isset($_GET['_login'])) problem ?!

NetPerformance

Erfahrenes Mitglied
hallo

ich habe eine login-oberfläche..

die eingegebenen login-daten werden per <form action = "index.php" method = "post"> an index.php
übergeben.

innerhalb von index.php soll z.b. das login-feld passwort überprüft werden. (wenn z.b. in login.php als passwort "x" eingegeben wurde, soll ein echo ausgegeben werden.

if(isset($_GET['_login'])) {
if(_email == "x"){
print "Sie haben x eingegeben";
}
}

mein erstes problem :

if(!isset($_GET['_login'])) <-- wenn ich das "!" nicht entferne, funktioniert mein $_GET nicht
why ?.. isset($_GET['_login'] bedeutet doch .. falls die Variable "_login" existiert, soll x und y gemacht werden.
aber das ganze bei mir nur negiert !

mein zweites problem:

if(_email == "x"){
print "Sie haben das richtige passwort eingegeben";

hier wird mir ein parse-fehler angezeigt :(

Parse error: parse error, unexpected '!', expecting T_STRING or T_VARIABLE or '$' in C:\apachefriends\xampp\htdocs\index.php


bedanke mich im vorraus für die hilfe
aaron
 
Zu dem Ersten...wenn du ein Formular per 'post' sendest, musst du die Variablen auch per $_POST und nicht per $_GET in Empfang nehmen.

Zum Zweiten...das scheint nicht die fehlerhafte Zeile zu sein...poste mal ca. die letzten 5 Zeilen vor dieser Zeile....in irgendeiner davon müsste ein !stehen.
 
huhu .. danke für die schnelle antwort:
poste am besten beide php dateien..

index.php
-------------
Code:
<?php
    error_reporting(E_ALL);

    echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n";
    echo "         \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
    echo "<html>\n";
    echo "    <head>\n";
    echo "        <title>Meine Seite</title>\n";
    echo "        <link rel=\"stylesheet\" type=\"text/css\" href=\"page.css\" />\n";
    echo "        <meta http-equiv=\"Content-Type\"
                        content=\"text/html; charset=ISO-8859-1\" />\n";
    echo "    </head>\n";
    echo "    <body>\n";

    echo "        <div id=\"root\">\n"; // ganz oberer Div-Holder
    echo "            <div id=\"header\">\n"; 
    include "header.php";
    echo "            </div>\n";
    echo "            <div id=\"links\"><br>\n"; 

	include "login.php";
	
	if(isset(!$_GET['_login'])) {
		if(_email == "x"){
			print "Sie haben das richtige passwort eingegeben";
		}
	}

    echo "            </div>\n";
    echo "            <div id=\"mitte\">\n"; 
    include "willkommen.php";
    echo "            </div>\n";
    echo "            <br style=\"clear:both;\" />\n"; // css-float beenden
    echo "       </div>\n";
    echo "    </body>\n";
    echo "</html>\n";
?>

-----------------------------------------------------------

login.php
------------

Code:
<html>
<head>
<title></title>
</head>
<body bgcolor="#CCCCCC">
<form action = "index.php"  method = "post">

<p>E-Mail:</p>
  <p> 
    <input name="_email" type="text" id="_email">
  </p>

<p>Passwort:</p>
  <p> 
    <input name="_passwort" type="password" id="_passwort">
  </p>

  <p> 
    <input name="_login" type="submit" id="_login" value="Login">
  </p>
  <p><a href="passwort_vergessen.php" target="mainFrame">Passwort vergessen ?</a></p>
<p><a href="neu_anmeldung.php" target="mainFrame">Neu Anmeldung</a></p>

</form>
</body>
</html>

aso.. !$_GET funktioniert soweit... werde aber trotzdem das ganze nun in $_POST änden !

gruß
aaron
 
Zuletzt bearbeitet:
Ich sehe da keinen Parse-Fehler.

Dass einzige, was ins Auge springt, ist dass du '_email' falsch ansprichst...da sollte $_POST['_email'] hinkommen.

Wozu gibst du eigentlich den ganzen HTML-Code per echo aus....:rolleyes:
 
Original geschrieben von WinRar
1 php.rar: Datei "index.php" Kopf zerstört
2 php.rar: Datei "login.php" Kopf zerstört
3 php.rar: Datei "willkommen.php" Kopf zerstört
4 php.rar: Unbekannte Methode in willkommen.php
5 php.rar: Keine Dateien zum Entpacken
Ich hab aber die Tomaten von meinen Augen genommen, und den Fehler entdeckt :suspekt:

diese Abfrage da muss heissen:
PHP:
if(isset(!$_POST['_login'])) 
  {
  if($_POST['_email'] == 'x')
    {
    print "Sie haben das richtige passwort eingegeben";
    }
  }
...if(isset(!$_GET['_login'])) ist da der Fehler gewesen.
Zum einen erzeugt das Ausrufezeichen den Parse-Error(es gehört vor 'isset'), zum anderen ist diese Abfrage überflüssig....isset($_GET['irgendwas']) ist immer 'false', da das Formular eben per Post versendet wird.
 
Zuletzt bearbeitet:
Zurück