 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
05.03.2005, 13:50
|
#1
|
|
TP-Member
Registriert seit: Mar 2005
|
MySQL & Login
Hallo, ich schreibe grad nen login script...
da wollte ich fragen, wie man in eine Datenbank über ein script in die Tabelle schreibt...
Und diese Daten dann beim einloggen abfragt, und überprüft ob username und pw zusammenpassen...
Kann mir einer Helfen?
Hab schon SQL und PHP Dokus gelesen, hab nicht viel daraus entnehmen können...

|
|
|
05.03.2005, 13:58
|
#2
|
|
TP-Veteran
Registriert seit: Jun 2004
Ort: Stuttgart
|
Einmal die Sucher hier benutzen und fertig.
Das Problem hatte so ziemlich jeder schonmal.
in eine MySql-DB schreibst du mit einem INSERT-Statement und der PHP-Anweisung mysql_query($statement);
Ein Login ist nicht besonders kompliziert. Du fragst einfach ob es in der DB einen Datensatz gibt, in dem Passwort und Nickname gleich dem eingegebenen sind. Wenn ja, dann hat das Login geklappt. Wenn nicht, dann eben nicht. Ganz easy eigentlich.
Aber such mal nach Login hier im Traum-Dynamik-Forum, du wirst ganz sicher nicht enttäuscht werden 
|
|
|
05.03.2005, 14:16
|
#3
|
|
TP-Member
Registriert seit: Mar 2005
|
Danke, ich such gleich mal 
|
|
|
05.03.2005, 14:16
|
#4
|
|
TP-Moderator
Registriert seit: Jun 2004
Ort: Hannover
|
Bevor du dich gleich in ein Script hängst, würde ich mich an deiner Stelle erstmal mit den Grundlagen von MySQL auseinandersetzen. Diese findest du hier:
http://dev.mysql.com/doc/
|
|
|
05.03.2005, 14:21
|
#5
|
|
TP-Member
Registriert seit: Mar 2005
|
habe ich schon gelesen 
|
|
|
05.03.2005, 14:41
|
#6
|
|
TP-Member
Registriert seit: Mar 2005
|
Ich hab jez sowas geschrieben:
Das ist ein Teil der Registrierung:
HTML-Code:
<form method="post" action="register1.php">
Username:
<input name="username" type="text"><br>
Password:
<input name="password" type="password"><br>
<input type = submit>
</form>
das ist register1.php:
PHP-Code:
<?
$data = host,user,pw
mysql_connect($data)
mysql_select_db(db1)
$un = $_POST['username']
$pw = $_POST['password']
mysql_query(INSERT INTO tabelle(user, pw) VALUES($un, $pw)
mysql_close()
?>
würde das funzen?
|
|
|
05.03.2005, 14:45
|
#7
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
$data = host,user,pw
das geht so nicht
So gehts:
mysql_connect($host,$user,$pw);
Ausserdem musst Du jede Zeile mit ; abschliessen
|
|
|
05.03.2005, 14:53
|
#8
|
|
TP-Member
Registriert seit: Mar 2005
|
Oh, ja stimmt....
Aber so würde das funktionieren?
|
|
|
05.03.2005, 15:02
|
#9
|
|
TP-Member
Registriert seit: Mar 2005
|
Jetzt hab ich ein Login system:
PHP-Code:
<?php
$host = bla;
$user = drimascus;
$pass = bla;
mysql_connect($host, $user, $pass);
mysql_select_db(db1);
$un = $_POST['username'];
$pw = $_POST['password'];
mysql_query("SELECT * FROM tabelle WHERE user = '$un' AND pw = '$pw");
if user==$un
{
$_SESSION['authorized']==true;
}
else
{
?>
Login failed, try again...
<form method="post" action="register1.php">
Username:
<input name="username" type="text"><br>
Password:
<input name="password" type="password"><br>
<input type = submit>
</form>
<? ;} ?>
Ist das in Ordnung? 
|
|
|
05.03.2005, 15:10
|
#10
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
bis auf einige Sachen ja
$_SESSION['blabla']="nnn"
da geht nicht. Sessionvariabeln werden mit
session_register('blabla'); zugewiesen.
In Deinem Fall:
$authorized=true;
session_register('authorized');
und == ist ein Vergleichsoperator, = ist Zuweisung !
Ausserdem musst Du nach Deiner Select-Abfrage auch das Ergebnis auslesen !
$res=mysql_query("Select from ...");
if($res) $num=mysql_num_rows($res);
if($num==1) {// User existiert
...
Geändert von steffenk (05.03.2005 um 15:14 Uhr).
|
|
|
05.03.2005, 15:15
|
#11
|
|
TP-Member
Registriert seit: Mar 2005
|
Kannst du es genauer erklären?
Geändert von drimascus (05.03.2005 um 15:32 Uhr).
|
|
|
05.03.2005, 15:20
|
#12
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Zitat:
|
Zitat von St@eff.en
bis auf einige Sachen ja
$_SESSION['blabla']="nnn"
da geht nicht. Sessionvariabeln werden mit
session_register('blabla'); zugewiesen.
|
Tja, da muss ich Dich leider korrigieren - drimascus hat es korrekt gemacht!
Sessionvariablen wurden mit session_register zugewiesen, aktueller ist die Variante $_SESSION['name']='derwert'; ... wird auch in den PHP Dokus so empfohlen
@drimascus:
Bevor Du Sessions benutzt oder zuweist, musst Du sie session_start() quasi "einschalten". Das fehlt in Deinem Code - passen würde es vor Deine $_SESSION[]-Zuweisung.
Schreib keine SELECT * Queries. Das ist reinste Resourcenverschwendung
Selektier nur die Felder, die Du wirklich brauchst. In Deinem Fall wär das:
"SELECT user, pw FROM tabelle WHERE user = '$un' AND pw = '$pw"
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Geändert von Boris (05.03.2005 um 15:23 Uhr).
|
|
|
05.03.2005, 15:34
|
#13
|
|
TP-Member
Registriert seit: Mar 2005
|
Danke für die Hilfe!!!
Also, was genau ist jetzt hier noch falsch:
PHP-Code:
<?php
$host = bla;
$user = drimascus;
$pass = bla;
mysql_connect($host, $user, $pass);
mysql_select_db(db1);
$un = $_POST['username'];
$pw = $_POST['password'];
mysql_query("SELECT user, pw FROM tabelle WHERE user = '$un' AND pw = '$pw")
if user==$un
{
$authorized=true;
session_register(authorized);
}
else
{
?>
Login failed, try again...
<form method="post" action="register1.php">
Username:
<input name="username" type="text"><br>
Password:
<input name="password" type="password"><br>
<input type = submit>
</form>
@St@eff.en
Was genau machst du mit deiner Verbesserung ($res=...^^)?
Geändert von drimascus (05.03.2005 um 15:38 Uhr).
|
|
|
05.03.2005, 15:54
|
#14
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
@drimascus:
Hast Du meine andere Antwort nicht gelesen?!? Du hast ganz korrekt mit $_SESSION eine Variable gesetzt. Mach das auch so, St@eff.en Einwand war einfach nicht ganz korrekt.
Außerdem fehlt noch immer session_start() ...
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
05.03.2005, 15:55
|
#15
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Also, Du verstehst nicht, wie man MySQL-Abfragen behandelt.
Das Prinzip ist so:
Du sendest eine Abfrage an MySQL der Form
$res=mysql_query($Abfrage);
MySQL bearbeitet das und stellt die Ergebnisse zusammen in $res (ist aber nur der Zeiger auf die Ergebnisse)
Jetzt kannst Du die Ergebnisse auswerten
$num=mysql_num_rows($res); liefert die Anzahl der zurückgegebenen Datensätze.
Wenn es mehrere sind kannst Du durch die Ergebnisse wandern:
for($i=0;$i<$num;$i++) {
$row=mysql_fetch_row($res) // hole einen Datensatz
//Die einzelnen Felder stehen jetzt in $row[0] - $row[n]
}
Ausserdem die Anweisung von Boris beachten:
Am Anfang session_start();
und dann doch $_SESSION['authorizised']=true;
@boris - so ist das, wenn man was gelernt hat - man benutzt es, bis es nicht mehr funktioniert oder boris es einem mitteilt 
Geändert von steffenk (05.03.2005 um 16:00 Uhr).
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:15 Uhr.
|
 |
 |
| |