ERLEDIGT
NEIN
NEIN
ANTWORTEN
23
23
ZUGRIFFE
900
900
EMPFEHLEN
-
Guten Abend,
ich kann ja Vieles aber wenn ich eines mal gar nicht kann, dann ist es php
.
Ich probiere seid Stunden rum und habe es wenigstens mal annähernd geschafft nen Anmeldescript hinzubekommen, das oh wunder auch weitestgehend funktioniert
.
Ok ich gebe lieber zu, dass es mehr die Arbeit von Dreamweaver war, als von mir
. Unten das verwendete script:
Na ja er gibt jetzt ne Fehlernachricht aus wenn was falsch ist, was auch so gut ist, aber ich hätte die gerne z.b. unter die Zeile "Bitte E-Mail und Passwort angeben". Hab aber Null Ahnung wie ich das hinkriege. Denn die ganze Codezeile runterzukopieren ist sicher nicht richtig.PHP-Code:<?php require_once('Connections/db37926_news.php');
// *** Validate request to login to this site.
session_start();
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
$GLOBALS['PrevUrl'] = $accesscheck;
session_register('PrevUrl');
}
if (isset($_POST['email'])) {
$loginUsername=$_POST['email'];
$password=$_POST['password'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "home.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_db37926_news, $db37926_news);
$LoginRS__query=sprintf("SELECT email, password FROM phplist_en_user WHERE email='%s' AND password='%s'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
$LoginRS = mysql_query($LoginRS__query, $db37926_news) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";
//declare two session variables and assign them
$GLOBALS['MM_Username'] = $loginUsername;
$GLOBALS['MM_UserGroup'] = $loginStrGroup;
//register the session variables
session_register("MM_Username");
session_register("MM_UserGroup");
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
echo "Das Passwort oder die E-Mail ist nicht korrekt!";
}
}
?>
<form method=POST action="<?php echo $loginFormAction; ?>" name="subscribeform">
<table width="600" border="0" align="center" cellpadding="2" cellspacing="2">
Bitte E-Mail und Passwort angeben<br>
<!-- E-mail -->
<tr valign="top" height="20"><td width="290" align="right" class="Normalbold">
<b>E-mail: </b> </td>
<td width="296"><input type="text" name="email" size="40" value="" ></td>
</tr>
<!-- E-mail confirmation-->
<tr valign="top" height="20">
<td width="290" align="right" class="Normalbold">
<p><b>Passwort: </b> </p>
<p><br />
</p></td>
<td><input type="password" name="password" size="40" value="" > <span class="style26">*</span></td>
</tr>
</table>
<input type=submit name="subscribe" value="Anmelden" onClick="return checkform();">
</div>
</form>
</body>
</html>
Und als letztes versuche ich so eine Funktion wie Passwort zumailen hinzubekommen, wenn man das vergessen hat, aber da bin ich mal total gescheitert. Ich habe so einen Newsletter phplist, wenn den einer kennt und den habe ich auch zum laufen bekommen. Dachte das ich die Anmeldeseiten umbasteln kann aber das ist so verstrickt da muss ich ganz passen. Also daher so ein eigener Versuch. Vielleicht kann mir einer von euch aushelfen.
Danke TribunM
-
Setze einfach statt der Fehlermeldungsausgabe ein Flag und gib die Fehlermeldung später aus.
Markus Wulftange
-
Ja super das ich da nicht selber drauf gekommen bin, nur was ist ein Flag
Wie gesagt ich habe echt nicht die Ahnung davon und ich denke damit kann ich keine eMail bei einem vergessenen Passwort schicken oder?
-
Ein Flag bezeichnet bei der Programmierung eine Hilfs- oder Merkvariable, mit der bestimmte Zustände (etwa: es trat ein Fehler auf) für spätere Abgleiche gespeichert werden.
Markus Wulftange
-
Du scheinst anscheinend Ahnung von PHP zu haben. Ich bin mal ehrlich ich kann mit den Erklärungen dennoch nix anfangen. Ich weiß zwar jetzt ungefär was Flags sind, aber nicht wie man Sie einsetzt, insbesondere in meinem Script. Ich glaube dann lasse ich es mit dem Script, wenn mir nicht wer sagen kann, was ich direkt tun kann.
-
Ein einfachse Beispiel:
Code :1 2 3 4 5 6 7 8 9
if( <Bedingung für Fehlermeldung> ) { $fehler = true; } … if( !empty($fehler) ) { echo 'Es ist ein Fehler aufgetreten!'; }Markus Wulftange
-
07.02.07 22:44 #7
Hallo!
Schreibe die Fehlermeldung in eine Variable:
Dann kannst Du an beliebiger Stelle prüfen ob die Variable existiert und sie ausgeben:PHP-Code:$error = "Ein Fehler ist aufgetreten!";
Gruss Dr DauPHP-Code:<?php
if(isset($error)) {
echo $error;
}
?>Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
cool das habe sogar ich jetzt verstanden. Das klappt ja genau so wie gewünscht
Jetzt fehlt "nur" noch so ne Passwort vergessen Funktion und ich bin glücklich
-
Mach folgendes
nihm den Teil
und ändere es so abPHP-Code:if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
echo "Das Passwort oder die E-Mail ist nicht korrekt!";
}
Nun zum 2 Teil ändere denPHP-Code:if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
$Fehler="Das Passwort oder die E-Mail ist nicht korrekt!";
}
Folgend ab durchPHP-Code:<form method=POST action="<?php echo $loginFormAction; ?>" name="subscribeform">
<table width="600" border="0" align="center" cellpadding="2" cellspacing="2">
Bitte E-Mail und Passwort angeben<br>
<!-- E-mail -->
<tr valign="top" height="20"><td width="290" align="right" class="Normalbold">
<b>E-mail: </b> </td>
<td width="296"><input type="text" name="email" size="40" value="" ></td>
</tr>
Und mail senden kanste mitPHP-Code:<form method=POST action="<?php echo $loginFormAction; ?>" name="subscribeform">
<table width="600" border="0" align="center" cellpadding="2" cellspacing="2">
Bitte E-Mail und Passwort angeben<br>
<? echo $fehler ; ?> <br>
<!-- E-mail -->
<tr valign="top" height="20"><td width="290" align="right" class="Normalbold">
<b>E-mail: </b> </td>
<td width="296"><input type="text" name="email" size="40" value="" ></td>
</tr>
mail(mail adresse,betreff,inhalt,"From: Absendername <Absender_mailadresse>\n Content-Type: text/plain");Geändert von splasch (07.02.07 um 23:40 Uhr)
-
Ja das klappt gut. Nur mit dem mailen verstehe ich nicht ganz, weil er soll ja das Passwort schicken, welches zu der Mail passt.
Aber ich glaube ich lass das. Da muss man schon php richtig können um das zu machen, zumal zwar anmelden usw. geht, aber ich kann ja trotzdem auf die Seiten in den unteren Ebenen, auch wenn ich mich nicht anmelde. Hätte nicht gedacht, dass es so schwer ist, son script zu machen, welches nur die Mail und den user überprüft, aber nunja falsch gedacht
Hat nicht jemand son Tutorial wie man mit einfachen MItteln einen geschützten Bereich hinbekommt, der mit Session (glaube ich) funktioniert, die eben nur bei korrekter Passwort und eMail Überprüfung generiert werden. Ansonsten soll er eben nur wie schon beschrieben einen Fehler machen, was schon super funktioniert
. Und das mit den Sessions sollte für alle unterliegenden Seiten gelten. Sind so 20.
Mit dem vergessenen Passwort zuschicken versuche ich mir dann auch noch etwas einfallen zu lassen.
Na ja vielleicht hat wer ja Lust einen totalen Anfänger bei seinen ersten PHP Schritten zu begleiten.Geändert von TribunM (08.02.07 um 10:20 Uhr)
-
Klar nur ein login bring keinen Schutz du mußt schon auch die Geschützen Seiten überprüfen ob der User berechtig ist diese auch einzusehen. Am besten geht das mit einer Session.Da muss man schon php richtig können um das zu machen, zumal zwar anmelden usw. geht, aber ich kann ja trotzdem auf die Seiten in den unteren Ebenen, auch wenn ich mich nicht anmelde. Hätte nicht gedacht, dass es so schwer ist, son script zu machen, welches nur die Mail und den user überprüft, aber nunja falsch gedacht
Fals dir das alles zu schwer ist und du nur einen Schutz haben möchste damit nicht jeder deine Geheimen Seiten einsehen kann.Dann benutze den Verzeichniss schutz .htacces
-
08.02.07 13:46 #12
Nein, es gibt kein Tutorial.

Ich gaube auch nicht dass das Thema Login hier schon mal besprochen wurde.
Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
08.02.07 14:28 #13
- Registriert seit
- Sep 2005
- Ort
- Lübeck
- Beiträge
- 174
Hmh...
Ich weiss ja nicht, aber über des Script aus dem Tutorial kann man SQL Injections machen... Da gibts ja keinerlei sicherheitsmechanismen, ziemlich fahrlässig sowas sensibles als Tutorial zu veröffentlichen.
da könnt man per url folgendes machen:PHP-Code:$sql = "SELECT ".
"Id, Nickname, Nachname, Vorname ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname like '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
http://[domain]/[pfad]/login.php?name=namedesadmins&pwd=bla' OR id='1'
und zack müsste man eingeloggt sein. Warum? fehlende Sicherheitsmechanismen.
Erstens: Superglobale wie $GLOBAL und vor allem $_REQUEST nimmt man NICHT! IMMER die Superglobale nehmen, die auch übertragen wird, sprich $_GET oder $_POST. zudem sollte eine abfrage dann folgendermaßen aussehen:
nehnehneh... versteh ich nich, warum man tutorials schreibt, die so unsicher sind. Ich denke man sollte die User gleich mit der harten Realität konfrontieren und denen einbleuen, dass sie ihre Script sicher machen müssen. Zumindest nach bestem Wissen und Gewissen.PHP-Code:$name = $_POST['name'];
$pwd = $_POST['pwd'];
$sql = "SELECT ".
"Id, Nickname, Nachname, Vorname ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname like '".mysql_real_escape_string($name)."') AND ".
"(Kennwort = '".md5 ($pwd)."')";
$result = mysql_query ($sql);
ich selbst habe ein Loginscript entwickelt, bei dem ich 2 sessions nutze - eine PHPSession und eine eigene, die sich alle 60 sekunden erneuert und beim user und in der Datenbank abgespeichert ist. Somit ist es so ziemlich unmöglich den Account zu highjacken, denn einen 128bit schlüssel zu klauen oder nachzubilden dauert weit länger als 60 sekunden
. Die PHP-Session dient hierbei eher als zusätzliche Kontrolle und als Userdaten-Speicher
So, das dazu
worauf ich hinaus will: TribunM - mach dich DRINGEND mit der Sicherheit von PHP vertraut, bevor du etwas so sensibles wie datenbankbasierte Anwendungen (Loginscript, Newsscript etc) öffentlich nutzt.
Und vor allem: Gebe NIEMALS die PHP-Sessionid über die Url weiter, wie es teilweise in einigen Tutorials im Inet gemacht wird.. Benutze NIEMALS $GLOBAL und $_REQUEST, sondern frage immer die Methode ab, die du auch übergibst. Nutze bei Datenbankabfragen immer mysql_real_escape_string(); und strip_tags(); (damit werden HTML und PHP-Tags rausgefiltert).
Ansonsten viel spass
PHP ist nicht schwer, bis mans verstanden hat dauerts aber. Und bis dahin empfehle ich eher fertige CMS-Systeme zu nutzen und diese zu studieren, bevor du ein eigenes Loginsystem programmierst.
-
08.02.07 14:44 #14
Das Tutorial ist auch schon "etwas" älter.
Es dient also nicht zum "abschreiben", sondern zum anregen.
Letztenendes muss man viele Scripts anpassen (ob nun aus sicherheitstechnischer Sicht oder wegen persönlicher Bedürfnisse).
Darüber gibt es hier auch (recht aktuelle) andere Meinungen.
Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
09.02.07 09:55 #15
- Registriert seit
- Sep 2005
- Ort
- Lübeck
- Beiträge
- 174
Wo?
ma suchen gehn... Ich lass mich gern eines besseren belehren, aber da ich damit (bei meinen eigenen Scripten und auch bei fremden) schon erfolg hatte, denke ich mal darf man das auch weiterhin nich ausser acht lassen
Ähnliche Themen
-
QT-Designer: Ich kriegs einfach net hin
Von devilmc im Forum C/C++Antworten: 2Letzter Beitrag: 10.06.09, 13:12 -
PHP SOAP ich Kriegs einfach nicht hin!
Von jackisback im Forum PHPAntworten: 7Letzter Beitrag: 12.11.08, 13:14 -
Ich kriegs und kriegs einfach nicht hin. document.getElementByID
Von Acriss im Forum Javascript & AjaxAntworten: 15Letzter Beitrag: 08.09.07, 16:01 -
ich kriegs nicht hin mit dem cvs
Von Philipp_Frank im Forum Coders TalkAntworten: 6Letzter Beitrag: 16.02.06, 13:22 -
Glas: Ich kriegs einfach nicht hin...
Von Gonzo28 im Forum 3D Studio MaxAntworten: 9Letzter Beitrag: 20.08.05, 16:38





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren