code hilfe [keiner hat geantwortet..]
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
abfragen
artikel
bedanken
benutzername
code
datei
datum
gefundene einloggen
http
leib
log
null
problem
schleife
session
target
vergleich
versuchen
zuweisung
-
Hi.
Als mir keiner in nem alten Thread geantwortet hat habe ich diesen geschrieben. Es geht um folgendes Problem:
In diesem Code ist etwas nicht in Ordnung, denn erst zeigt er alles richtig an, das ich net eingeloggt bin, aber dann zeigt das Ding an das ich eingeloggt bin wenn ich aktualisieren dr?cke!!!
Hier der Code:
<?php
session_start();
include ('dbconnect.php');
?>
<html>
<head>
<title>
Log IN
</title>
</head>
<body text="#000000" background="BACKGR+D.jpg" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<?php
$query = mysql_query ('SELECT `keyword` FROM `user` WHERE `name` = "'.$_POST['inputname'].'"');
$db = mysql_fetch_array($query);
/* hier sollte es eigentlich $pass = $db['keyword']; hei?en und nicht $pass = $db[0]; da du die daten mit mysql_fetch_array und nicht mysql_fatch_row abholst */
$pass = $db['keyword'];
/* die while-schleife war unn?tig, da du hoffentlich die benutzernamen nur einmalig 'vergibst', au?erdem k?nnte sich bei der vorherigen 'version' sowieso nur der zuletzt mit dem namen 'gefundene' einloggen*/
if ($_POST['inputkey'] == $pass)
{
/*$_SESSION['eingeloggt']==1; das ist ein vergleich und keine zuweisung.
sprich $_SESSION['eingeloggt'] bleibt leer^^*/
/* session_register war a.) in der konstelation falsch und b.) veraltet */
$_SESSION['eingeloggt'] = 1; // ein = f?r die zuweisung
}
else
{
echo "Falscher Benutername oder Passwort!";
}
?>
<br>
<br>
<br>
<br>
<?php
if ($eingeloggt==1)
{
echo ('Du bist eingeloggt!');
}
else
{
echo ('Du bist NICHT eingeloggt!');
}
?>
<form>
Username:<br>
<input name="inputname" maxlength=10><br>
Passwort:<br>
<input name="inputkey" maxlength=10><br>
<input type=button value="Log In"><br>
</form>
</body>
</html>
PS: die DBconnect.php ist schon richtig...
edit: wie kann man denn das aktualisiren verbieten, dann mpsste das ja gehen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hi. also. zuerst solltest du mal nen richtiges formular machen, bei mir funkt das n?mlich ?berhaupt nicht!
<?php
session_start();
include ('dbconnect.php');
?>
<html>
<head>
<title>
Log IN
</title>
</head>
<body text="#000000" background="BACKGR+D.jpg" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<?php
$query = mysql_query ('SELECT `keyword` FROM `user` WHERE `name` = "'.$_POST['inputname'].'"');
$db = mysql_fetch_array($query);
/* hier sollte es eigentlich $pass = $db['keyword']; hei?en und nicht $pass = $db[0]; da du die daten mit mysql_fetch_array und nicht mysql_fatch_row abholst */
$pass = $db['keyword'];
/* die while-schleife war unn?tig, da du hoffentlich die benutzernamen nur einmalig 'vergibst', au?erdem k?nnte sich bei der vorherigen 'version' sowieso nur der zuletzt mit dem namen 'gefundene' einloggen*/
if ($_POST['inputkey'] == $pass)
{
/*$_SESSION['eingeloggt']==1; das ist ein vergleich und keine zuweisung.
sprich $_SESSION['eingeloggt'] bleibt leer^^*/
/* session_register war a.) in der konstelation falsch und b.) veraltet */
$_SESSION['eingeloggt'] = 1; // ein = f?r die zuweisung
}
else
{
echo "Falscher Benutername oder Passwort!";
}
?>
<br>
<br>
<br>
<br>
<?php
if ($eingeloggt==1)
{
echo ('Du bist eingeloggt!');
}
else
{
echo ('Du bist NICHT eingeloggt!');
}
?>
echo "<form action=$PHP_SELF method=POST>
Username:<br>
<input name=inputname maxlength=10><br>
Passwort:<br>
<input name=inputkey maxlength=10><br>
<input type=submit value=Log In><br>
</form>";
</body>
</html>
PS: die DBconnect.php ist schon richtig...
das andere problem ist das:
wenn du dann nochmals das formular absendest, und kein passwort bzw benutzername ?bergeben wird, sind beide = NULL, das "$db['keyword']" ist auch NULL, weil ja kein benutzername gefunden wurde, daher auch nichts gesetzt... da deine if-abfrage dann auch fragt, ob
"if ($_POST['inputkey'] == $pass)"
gibt das nat?rlich TRUE zur?ck, weil beides ja NULL ist, deswegen setzt er die session und alles l?uft den weg ab, wenn die session gesetzt wurde...
verstanden, kompliziert erkl?rt, aber m?sste eigtnlcih verstanden werden, wenn nich, pm, ich helf gern weiter...
mfg -
Hmm, du hast mir den Grund gesagt, aber net wie ich das Problem beheben kann!
edit: ich glaube ich ahbe einen l?sungsweg gefunden...mal scheuen... -
nimm das... hab dir das n bissl ge?ndert... m?sste eigentlich auch sicher sien...
<?php
session_start();
include ('../_Rangliste/db_connect.php');
?>
<html>
<head>
<title>
Log IN
</title>
</head>
<body text="#000000" background="BACKGR+D.jpg" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<?php
$query = mysql_query ('SELECT `keyword` FROM `user` WHERE `name` = "'.$_POST['inputname'].'" AND `keyword` = md5("'.$_POST['inputkey'].'")');
$db = mysql_num_rows($query);
/* hier sollte es eigentlich $pass = $db['keyword']; hei?en und nicht $pass = $db[0]; da du die daten mit mysql_fetch_array und nicht mysql_fatch_row abholst */
/* die while-schleife war unn?tig, da du hoffentlich die benutzernamen nur einmalig 'vergibst', au?erdem k?nnte sich bei der vorherigen 'version' sowieso nur der zuletzt mit dem namen 'gefundene' einloggen*/
if ($db==1)
{
/*$_SESSION['eingeloggt']==1; das ist ein vergleich und keine zuweisung.
sprich $_SESSION['eingeloggt'] bleibt leer^^*/
/* session_register war a.) in der konstelation falsch und b.) veraltet */
$_SESSION['eingeloggt'] = 1;
echo "<br>session gesetzt!";
// ein = f?r die zuweisung
}
else
{
echo "<br>Falscher Benutername oder Passwort!";
}
?>
<br>
<br>
<br>
<br>
<?php
if ($eingeloggt==1)
{
echo ('Du bist eingeloggt!');
}
else
{
echo ('Du bist NICHT eingeloggt!');
}
echo "<form action=$PHP_SELF method=POST>
Username:<br>
<input name=inputname maxlength=10><br>
Passwort:<br>
<input name=inputkey maxlength=10><br>
<input type=submit value=Log In><br>
</form>";
?>
</body>
</html>
solltest du deine pwd?s nicht md5 verschl?sselt speichern, musst du das md5 wegnehmen....
um dieses script weiterhin zu nutzen, m?sstest du auch das eingabeformular in einer if abfrage (z.B. if ($eingeloggt!=1) ) machen, sonst wird das auch angezeigt, wenn du eigentlich eingeloggt bist...
hoffe hat dir geholfen..
mfg
-
ich hab schon ne l?sung gefunden, du hast mich drauf gebracht als du das mit den Werten null gesagt hast.
Aber wie geht das mit Md5? W?re ja sicherer, h?tte ich shcon gerne...
und wie macht man ienen automatischen link?! -
dann is ja gut das du ne l?sung hast...
das mit md5 is so:
damit verschl?sselst du das passwort nach einen in php integrierten algorythmus... diese passw?rter kannst du aber auch nicht mehr auffrufen, d.h. sollte ein user ein pwd vergessen, kannst du ihm das nicht per mail erneut zuschicken, sondern kannst ihm nur ein neues erstellen und wieder md5 verschl?sselt in der datenbank abspeichern....
so f?gst du das in die tabelle ein...
$sql = "INSERT INTO " . $table_prefix . "mitglieder (pwd)";
$sql .= "VALUES (md5('$pwd'))";
$result = mysql_query($sql);
aufrufen tust du das dann alles so, wie ich es schon geschrieben hatte....
kurze zwischenfrage: willst du ein browsergame proggen? wenn ja, lass es, denn deine erfahrungen scheinen echt noch nich sehr weit zu sein... is jetz keine beleidigung oder so, aber is so... aber versuchen kannst du?s ja trotzdem -
Ich werde es versuchen, und mit seinen fehlern wird man besser. Soll hei?en:
Mit allen Problemen die ich bisher hatte habe ich gelernt!!!
Und wenn ich die PW's dann net mehr abfragen kann mach ich das leiber net... -
Hallo adrians!
"Abfragen" brauchst du die Passw?rter auch nicht. Wenn sich jemand einloggt, erzeugst du einfach aus dem angegebenen Passwort eine verschl?sselte Version und vergleichst diese mit dem vorher verschl?sselt abgelegte Passwort. Sind die verschl?sselten Werte gleich, ist das eingegebene Passwort richtig. Das ist sicherer, als wenn die Passw?rter unverschl?sselt irgendwo auf dem Server rumliegen.
MfG
alopex -
Und wie mach ich jetzt direkte Links, mit include() gehts ja net...
Und Md5 werde ich dann wohl doch machen, mal schauen. Und der Artikel ist auch nicht schlecht, wenn auch ein wenig...langweilig.^^
Danke im Voraus wegen dem Link^^
edit: okay, ich wollte jetzt in meinem Registrierscript noch ne funktion einbauen, wei? aber nicht wie. Denn immer wenn ich die regist.php ?ffne schreibt wer schon eine leere user datei in meine db, und dann wenn ich aktualisiere auch nochmal, sonst klappt alles, aber wie kreig ich es hin das er nur das sendet was ich will, also so eine art on click? Aber ich habe gelesen im PHP gibts kein On Click(ja, ich habe die boardsuche und google gnutzt!) gibt.
Bitte um hilfe...hier der Link zum code:
http://adrians.pyrokar.lima-city.de/browsergame/uebungen/registcode.txt
Mbdg im Voraus... -
Und wie mach ich jetzt direkte Links, mit include() gehts ja net...
Wasmeinstndudamit?? Wie man externe Web-Seiten in eigene einbindet?
Guckst du hier:
http://alopex.pyrokar.lima-city.de/xlink.php/216826
Mbdg im Voraus ...
Jaja, das ham wa gerne, im Voraus bedanken!
MfG
alopex -
Ich meine das so:
Ich klicke auf einen Button und melde mich damit an. Wenn ich das dann habe werde ich autmotaisch auf eine andere Seite gelinkt, die das Target _haupt hat!
Mit fopen geht das doch net, und mit include erst recht net!
edit: ich hab jetzt den code gefunden, aber ob ichs mit dem hinkrieg wei? ich net...
<meta http-equiv="refresh"content="0;URL=http://www.agra2000.de"> -
Hi adrians!
Das Verfahren nennt man Redirection, oder auf Deutsch: Weiterleitung.
MfG
alopex -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage