Loginscript fehler ?

Darkhell

Erfahrenes Mitglied
Hi. Ich habe 2 Probleme mit einem Script.

Erstmal poste ich hier das script:

PHP:
<?php
include '../config.inc.php';
$pass = $_POST['password'];
$nomen = $_POST['adminick'];
function login() {
if ($nomen = "$set_adminnick") {
echo "Benutzername prüfen.... richtig";
} else {
echo"Benutzername prüfen... FALSCH! neue Eingabe von Passwort und Nickname!";
}
if ($pass = "$set_adminpass") {
echo"Passwort prüfen.....Okay, Logging in....";
} else {
echo"Passwort prüfen.....FALSCH!, Neu eingeben...";
}

}

?>
<html>
<head>
<title></title>
<meta name="author" content="gabba-gandalf">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<br>
<br>
<br>
<br>
<br>
<table width="100%"    bordercolorlight="" bordercolordark="" >
<form action="<?php login(); ?>" method="POST" target="">
<tr>
 <td bgcolor="#0090E0" bordercolor="#000000" border="1"><div style="font-weight: bold; font-size: small;"></font>Login </td>
</tr>
<tr>
 <td>Benutzername:&nbsp;&nbsp;<input type="Text" name="adminick" value="" size="" maxlength=""> </td>
</tr>
<tr>
 <td>Passwort: <input type="Password" name="password" value="" size="" maxlength=""></td>
</tr>
<tr>
 <td><input type="Submit" name="" value="Login"><input type="reset"></form></td>
</tr>
</table>
</body>
</html>

Also. das erste Problem Lautet, dass er grundsätzlich die echos in dem Script eingebaut sind in die Addresszeile setzt. Dass sieht dann so aus:

http://10.0.100.137/data/admincente.... richtigPasswort prüfen.....Okay, Logging in....

und das zweite Problem ist, das das Passwort und Der Benutzername immer Okay ist, egal was ich eingebe, das Passwort ist immer okay.

Könnt ihr mir helfen?
 
Das 2te Problem ist einfach
PHP:
<?php
include '../config.inc.php';
$pass = $_POST['password'];
$nomen = $_POST['adminick'];
function login() {
if ($nomen = "$set_adminnick") {  //Hiers der Fehler es heisst == <das 2mal
echo "Benutzername prüfen.... richtig";
} else {
echo"Benutzername prüfen... FALSCH! neue Eingabe von Passwort und Nickname!";
}
if ($pass = "$set_adminpass") {
echo"Passwort prüfen.....Okay, Logging in....";
} else {
echo"Passwort prüfen.....FALSCH!, Neu eingeben...";
}

}

?>

du musst wenn du Werte vergleichst == machen:
PHP:
<?php
include '../config.inc.php';
$pass = $_POST['password'];
$nomen = $_POST['adminick'];
function login() {
if ($nomen == "$set_adminnick") {
echo "Benutzername prüfen.... richtig";
} else {
echo"Benutzername prüfen... FALSCH! neue Eingabe von Passwort und Nickname!";
}
if ($pass = "$set_adminpass") {
echo"Passwort prüfen.....Okay, Logging in....";
} else {
echo"Passwort prüfen.....FALSCH!, Neu eingeben...";
}

}

?>
 
Dein 1. Problem hab ich nicht ganz verstanden, aber zu deinem 2. Problem:
Du musst bei einer if-Abfrage immer mit 2 = vergleichen also bsp:
PHP:
if ($nomen == "$set_adminnick") {
echo "Benutzername prüfen.... richtig";
} else {
echo"Benutzername prüfen... FALSCH! neue Eingabe von Passwort und Nickname!";
}
dasselbe beim Passwort.
Gruß Spechter
 
Ein weiteres Problem wird sein, dass die Variablen „$set_adminnick“ und „$set_adminpass“ innerhalb der Variable nicht existent sind. Informiere dich mal über den Geltungsbereich von Variablen.
Und was soll überhaupt der Aufruf der login()-Funktion in der action-Attributdeklaration?
 
Ja gut, dass das Ergebnis der Passwortüberprüfung in der Adresszeile steht, ist nicht weiterverwunderlich, hast du doch die Funktion als Action-Adresse angegeben. Da ghört entweder nur php self rein oder aber, wenn du z.B. mit Queries arbeitest folgendes:

PHP:
<form action="<?php 
        $cdub_page = $PHP_SELF;
        $cdub_query = $QUERY_STRING;
        echo"http://www.deinehomepage.de/$cdub_page?$cdub_query"; 
         ?>" method="POST" target="">
 
venyl hat gesagt.:
Vllt enthält die inclidierte Datei die Variablen?
Das ändert aber nichts an der Tatsache, dass innerhalb von Funktionen nur auf globale oder dort definierte Variablen zugegriffen werden kann.
 
huhu

also 1. funktioniert der include überhaupt so? hab ich noch nie so gesehn, versuch es mal mit :
PHP:
<?php
  include ('../config.inc.php');
?>

2. wird das mit dem funktionsaufruf so nicht klappen, versuch es mal mit :

PHP:
if($_GET['action'] == "login"){

  if ($nomen == "$set_adminnick") echo "Benutzername prüfen.... richtig";
  else echo"Benutzername prüfen...FALSCH! neue Eingabe von Passwort und Nickname!";

  if ($pass == "$set_adminpass")echo"Passwort prüfen.....Okay, Logging in....";
  else echo"Passwort prüfen.....FALSCH!, Neu eingeben...";
 
}
...
<form action="?action=login" method="POST">
 
Die Klammern bei include und seinen Verwandten sind optional, da dies ein Sprachkonstrukte und keine Funktionen sind. Gleiches gilt übrigens auch für echo.
 
Zurück