• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

Hilfestellung benötigt : Php / Login / mysql_fetch_array

Z

Zugluft

Gast
Hilfestellung benötigt : Php / Login / mysql_fetch_array

Hi Community,

ich bin mir gerade ein wenig im umklaren darüber was bei meinem Versuch , einen Login-bereich zu erstellen, falsch sein könnte.
Meine Php-Kentnisse befinden sich auf unterem Level, weswegen ich eure Hilfe erbitte (bitte leicht verständlich erklären).


Folgenes hab ich verfasst:
<html>
<head>
<?
include 'datenbankzugang.php';
?>
<title>Login-bereich
</title>
</head>

<body>
<form method="post" action="login.php">
<label>Passwort:
</label>
<input name="userpass" type="password" id="userpass">
<input name="login" type="submit" id="login" value="Einloggen">
</form>

<?
mysql_connect($mysql_host, $mysql_user, $mysql_pw); // Zugangsberechtigungen verwenden
mysql_select_db($mysql_db); // Datenbank auswählen

$res_id = mysql_query ($sql);
$sql = "SELECT Passwort FROM login"; // Tabellenspalte und Tabelleaufrufen
$datenbank = mysql_fetch_array($res_id);
$verschluesseltespasswort = md5($_POST['userpass']);

if ($_Post['login']) // Buttonklick-ereignis
{
if ($verschluesseltespasswort == $datenbank) // Datenüberprüfung
{
echo "Geschafft"; // Erfolgreiches Login
}
else
{
echo "Too Bad"; // fehlgeschlagenes Login
};
};
?>
</body>
</html>

-Das Passwort findet sich auch in verschlüsselter Form auf der Datenbank wieder-
Mein Browser berichtet mir es sei ein Fehler in der, für euch, fett markierten Zeile. Ich wüsste jetzt aber nicht wo dort ein Fehler sein sollte.
(Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /Pfad/login.php on line 24)

PS: Pfiffige Leser haben schon bemerkt, das ich nur Passwort und keinen User abfrage will. Das liegt daran das dieser Login-bereich ausschließlich für mich sein soll.

Danke für eure Hilfe :)
 
AW: Hilfestellung benötigt : Php / Login / mysql_fetch_array

tauscht mal die zeilen so:

$sql = "SELECT Passwort FROM login";
$res_id = mysql_query ($sql);
$datenbank = mysql_fetch_array($res_id);

da der php-interpreter von oben nach unten ließt, die sql anweisung "select..." aber unter der mysql-funktion (mysql_query ($sql)) steht, wird die anweisung ($sql = ... )erst deklariert nachdem die funktion (mysql_query ($sql)) schon ausgeführt wurde.

deswegen wird praktisch nichts in mysql abgefragt und es gibt einen fehler.
 
AW: Hilfestellung benötigt : Php / Login / mysql_fetch_array

dA_TreFFniX am 14.04.2006 19:57 schrieb:
tauscht mal die zeilen so:

$sql = "SELECT Passwort FROM login";
$res_id = mysql_query ($sql);
$datenbank = mysql_fetch_array($res_id);

da der php-interpreter von oben nach unten ließt, die sql anweisung "select..." aber unter der mysql-funktion (mysql_query ($sql)) steht, wird die anweisung ($sql = ... )erst deklariert nachdem die funktion (mysql_query ($sql)) schon ausgeführt wurde.

deswegen wird praktisch nichts in mysql abgefragt und es gibt einen fehler.


Danke schön :) :top:

Die Fehlermeldung ist weg, nun funktioniert das ganze zwar immernoch nicht, aber ich denke mal das liegt irgendwo anders dran. Werd dann mal weiter rumexperementieren.
 
AW: Hilfestellung benötigt : Php / Login / mysql_fetch_array

hallo,
zunaechst wuerde ich $_POST immer gross schreiben, weiss grad nicht aus dem kopf ob das was ausmacht, besser ist es aber :)
des weiteren ist der grund dafuer dass es nicht funktioniert diese zeile
Code:
	if ($verschluesseltespasswort == $datenbank) // Datenüberprüfung
da ja $datenbank ein array ist (mysql_fetch_array()) und $verschluesseltespasswort ein string, kann das so nicht funktionieren. du musst $verschluesseltespasswort und $datenbank['datenbankfeld'] nehmen (klar, da die tabelle ja mehrere felder haben kann). hilfreich ist auch mal ein print_r($datenbank); .
das ganze saehe dann so aus:
Code:
<html>
<head>
<?php
 include 'datenbankzugang.php';
?>
<title>Login-bereich</title>
</head>

<body>
 <form method="post" action="login.php"> 
  <label>Passwort:</label>
  <input name="userpass" type="password" id="userpass"> 
  <input name="login" type="submit" id="login" value="Einloggen">
 </form>
	
<?php
 mysql_connect($mysql_host, $mysql_user, $mysql_pw);
 mysql_select_db($mysql_db);
 $sql = "SELECT Passwort FROM login";
 $res_id = mysql_query ($sql);
 $datenbank = mysql_fetch_array($res_id);
 $verschluesseltespasswort = md5($_POST['userpass']);
 if ($_POST['login']) {
  if ($verschluesseltespasswort == $datenbank['datenbankfeld']) { 
   echo "Geschafft";
  }
  else {
   echo "Too Bad";
  }
 }
?>
</body>
</html>

so muesste das funktionieren :)

PS: md5() verschluesselt nicht, sondern generiert einen hash-string des eingabestrings ;)
 
AW: Hilfestellung benötigt : Php / Login / mysql_fetch_array

marky68 am 15.04.2006 10:12 schrieb:
so muesste das funktionieren :)

Hui, danke. Ok das mit dem POST groß schreiben hab ich noch gestern gemerkt, trotzdem danke :)
Funktioniert auf jedenfall soweit jetzt alles.
Hab md5() nun ganz weggelassen, da ich denke das es bei einer privaten Website eh nicht so wichtig ist ;)
- Nun gehts an die nächsten paar Aufgaben

Recht herzlichen dank =)
 
AW: Hilfestellung benötigt : Php / Login / mysql_fetch_array

Ich hab dazu aber 4 Fragen...

1. Warum sind die Inputwerte allesamt nicht durchgeparsed?
2. Warum wird die SQL Verbindung nicht wieder geschlossen?
3. Warum befinden sich HTML und PHP in einer Datei?
4. Ist euch bewusst das einfache MD5 hashes als Passwort nicht sehr sicher sind und es im günstigsten Fall maximal 2 Stunden dauert ein Passwort dazu herraus zu finden.
 
AW: Hilfestellung benötigt : Php / Login / mysql_fetch_array

ZAM am 16.04.2006 14:29 schrieb:
Ich hab dazu aber 4 Fragen...

1. Warum sind die Inputwerte allesamt nicht durchgeparsed?
2. Warum wird die SQL Verbindung nicht wieder geschlossen?
3. Warum befinden sich HTML und PHP in einer Datei?
4. Ist euch bewusst das einfache MD5 hashes als Passwort nicht sehr sicher sind und es im günstigsten Fall maximal 2 Stunden dauert ein Passwort dazu herraus zu finden.

Könnt mit einem Satz alles beantworten: "Seite befindet sich noch im frühem Stadium, also reine Testzwecke und Funktionsüberprüfung." :-D

1. Keine Ahnung, weiss nicht was du meinst.

2. Hatte ich noch vor, bin ich aber noch nicht zu gekommen.

3. Ordnung wird später erst dazukommen, da es für mich eher zweitrangig ist. Später wird auch quasi hinter jeder Php-Zeile ein Kommentar stehen, damit ich mich nach Jahren noch dran erriner was ich da gemacht habe (werd php auch noch auslagern - übersichts- und wartungshalber).

4. Nö war mir noch nicht bewusst. Wie gesagt google.de ist mein bester Freund, und wenn ich dort immer nur md5 zur verschlüsselung lese, dann geh ich davon aus das dies ein altbewertes Mittel ist, abgesehen von ssl was ich auch oft zum Thema gelesen habe. - Ist ja nur eine private Website, ok ich kenn auch einen dessen private Webspace von Hackern aus Brasilien gehackt wurde *lol*, aber ich geh mal stark davon aus das dies bei mir nicht der Fall sein wird.

PS: Ich hatte jetzt erstmal vor, mich darüber zu informieren, wie man so ein schönes Untermenu wie bei Alternate.de macht (Ich meine nicht das Treemenu links sondern das oben - Hardware - Software - Entertainment).
Und danach wollt ich mich drum kümmern wie man es mit Php schafft eine Tabelle automatisch an den Seiten anfang zu erstellen (für z.b. Gästebuch).

Und erst wenn ich das alles geschafft habe kommen Formsachen und die Zusammenstellung der Quellcodes zu einer Seite. =)
 
AW: Hilfestellung benötigt : Php / Login / mysql_fetch_array

Zugluft am 16.04.2006 14:51 schrieb:
PS: Ich hatte jetzt erstmal vor, mich darüber zu informieren, wie man so ein schönes Untermenu wie bei Alternate.de macht (Ich meine nicht das Treemenu links sondern das oben - Hardware - Software - Entertainment).
Und danach wollt ich mich drum kümmern wie man es mit Php schafft eine Tabelle automatisch an den Seiten anfang zu erstellen (für z.b. Gästebuch).

Neeeeeeeeeeeeeeeeeeeeeee... Diese Menus sind viel zu überladen und können sich performancelastig auf den Browser auswirken. Lass es lieber simpler gehalten.
 
AW: Hilfestellung benötigt : Php / Login / mysql_fetch_array

alpha stadium ;)
 
Zurück