Externes Login mit Forendaten

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
speedtouch92
Mitglied
Beiträge: 104
Registriert: 11.12.2005 16:52
Kontaktdaten:

Externes Login mit Forendaten

Beitrag von speedtouch92 »

Hallo, ich wollte mir ein Downloadbereich basteln, wo man Sachen gegen Cash mod punkte downloaden kann. Man kann sich zwar einloggen, aber sobald man das Formular abschickt kommt ein weisser Bildschirm, ich glaube das kommt daher, dass das passwort nicht richtig verglichen wird.

Code: Alles auswählen

<?php
if($_POST['do']=="") {
?>
<center><h1>Login für Game-Bereich</h1></center>
<h2>Um dieses Spiel herunterladen zu können, müssen Sie sich einloggen</h2><br>
Dies geht ausschließlich mit den Zugangsdaten des Forums.<br>
Falls Sie noch keinen Account haben, können Sie sich <a href="forum/profile.php?mode=register">HIER</a> kostenlos registrieren<br>
<form action="download.php" method="POST">
<table border="0">
<tr><td>Benutzername:</td><td> <input type="text" name="username"></td></tr>
<tr><td>Passwort:</td><td> <input type="password" name="password"></td></tr>
<tr><td><input type="hidden" name="do" value="1"><input type="hidden" name="id" value="<?php echo"$id"; ?>"></td></tr>
<tr><td><input type="submit" value="Spiel herunterladen"></td></tr>
</table>
</form>
<?php
}
if($_POST['do']=="1") {
  mysql_connect("localhost", "speedtouch92_01","********");
  mysql_select_db("speedtouch92_01");
  $abfrage = "SELECT * FROM phpbb_users WHERE username LIKE '$username'";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_object($ergebnis))
{
$pass = md5($password);
if($_POST['row->user_password']==$pass) {
  mysql_connect("62.75.209.33", "speedtouch92","**********");
  mysql_select_db("db_speedtouch92_1");
  $abfrage = "SELECT * FROM phpbb_downloads WHERE id LIKE '$id'";
  $ergebnis = mysql_query($abfrage);
  while($download = mysql_fetch_object($ergebnis))
{
  mysql_connect("localhost", "speedtouch92_01","*********");
  mysql_select_db("speedtouch92_01");
  $abfrage = "SELECT user_cash FROM phpbb_users WHERE username LIKE '$username'";
  $ergebnis = mysql_query($abfrage);
  while($phpbb = mysql_fetch_object($ergebnis))
{

if($phpbb->user_cash < $download->cost) {
echo"Sie haben nicht genug Speedys um sich diese Datei herunterladen zu können.<br>Sie brauchen mindistens $download->cost Speedys.";
}
else {
$zahlen = $phpbb->user_cash - $download->cost;
  $aendern = "UPDATE phpbb_users Set user_cash = '$zahlen' WHERE username = '$username'";
$update = mysql_query($aendern);
header("Location: $download->file");
}}}}}}
?>
Woran liegt hier der Fehler???
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag von hagily »

speedtouch92
Mitglied
Beiträge: 104
Registriert: 11.12.2005 16:52
Kontaktdaten:

Beitrag von speedtouch92 »

Hab ich gemacht, aber wenn ich die Seite aufrufe, dann zeigt er mir den header, und den footer an, aber keinen Inhalt. Ganz egal ob ich eingeloggt bin oder nicht.

So sieht mein Code nun aus:

Code: Alles auswählen

<?php
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);


//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Meine Seite';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

  mysql_connect("62.75.209.33", "speedtouch92","*******");
  mysql_select_db("db_speedtouch92_1");
  $abfrage = "SELECT * FROM phpbb_downloads WHERE id LIKE '$id'";
  $ergebnis = mysql_query($abfrage);
  while($download = mysql_fetch_object($ergebnis))
{
  mysql_connect("localhost", "speedtouch92_01","********");
  mysql_select_db("speedtouch92_01");
  $abfrage = "SELECT user_cash FROM phpbb_users WHERE username LIKE '$username'";
  $ergebnis = mysql_query($abfrage);
  while($phpbb = mysql_fetch_object($ergebnis))
{

if($phpbb->user_cash < $download->cost) {
echo"Sie haben nicht genug Speedys um sich diese Datei herunterladen zu können.<br>Sie brauchen mindistens $download->cost Speedys.";
}
else {
$zahlen = $phpbb->user_cash - $download->cost;
  $aendern = "UPDATE phpbb_users Set user_cash = '$zahlen' WHERE username = '$username'";
$update = mysql_query($aendern);
header("Location: $download->file");
}}}

//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag von hagily »

Code: Alles auswählen

   mysql_connect("62.75.209.33", "speedtouch92","*******");
  mysql_select_db("db_speedtouch92_1");
  $abfrage = "SELECT * FROM phpbb_downloads WHERE id LIKE '$id'";
  $ergebnis = mysql_query($abfrage);
  while($download = mysql_fetch_object($ergebnis))
{
  mysql_connect("localhost", "speedtouch92_01","********");
  mysql_select_db("speedtouch92_01");
  $abfrage = "SELECT user_cash FROM phpbb_users WHERE username LIKE '$username'";
  $ergebnis = mysql_query($abfrage);
  while($phpbb = mysql_fetch_object($ergebnis))
{

if($phpbb->user_cash < $download->cost) {
echo"Sie haben nicht genug Speedys um sich diese Datei herunterladen zu können.<br>Sie brauchen mindistens $download->cost Speedys.";
}
else {
$zahlen = $phpbb->user_cash - $download->cost;
  $aendern = "UPDATE phpbb_users Set user_cash = '$zahlen' WHERE username = '$username'";
$update = mysql_query($aendern);
header("Location: $download->file"); 
Also wenn das so ist, muss im obrigen code der wurm drin sein.
Kontrolliere den nocheinmal
Felix


EDIT
Lass mal vor dem Footer eine Klammer weg. also statt
speedtouch92
Mitglied
Beiträge: 104
Registriert: 11.12.2005 16:52
Kontaktdaten:

Beitrag von speedtouch92 »

Geht auch nicht. habe eine } weggelassen, aber dann kam diese meldung:

Code: Alles auswählen

Parse error: parse error, unexpected $ in /usr/export/www/vhosts/funnetwork/hosting/speedtouch92/forum/download.php on line 43
Ich glaube das liegt daran, dass die Variable $username leer ist. denn wenn ich vor meinem Code

Code: Alles auswählen

echo"$username";
Dann zeigt er nichts an.
M0rtz
Mitglied
Beiträge: 34
Registriert: 10.09.2005 18:03
Wohnort: Dresden
Kontaktdaten:

Beitrag von M0rtz »

hiho,
ich kann zwar keine konstruktive antwort auf das letzte problem geben, aber ich hab eine ähnliche frage, die vllt auch dir helfen kann.

Ich habe DAS gefunden und habe diesen in mein Menü eingebaut: Meine Site

Dann hab ich:
<form method="post" action="http://deineurl.de/forum/login.php">
in
<form method="post" action="http://mortz.mo.funpic.de/menu2.php" target="_self">
umgeändert, in der Hoffnung, dass er mir menu2 im selben Frame wie menu1 öffnet. Leider hats nich ganz geklappt, er öffnet mir menu2 im selben fenster...

Jedenfalls war man einloggt, wenn man die url seines Forums eingegeben hat... Was mich ja auf die idee gebracht hat das menuframe als target zu benutzen... tja

Kann mir jemand helfen? :D


Mortz
speedtouch92
Mitglied
Beiträge: 104
Registriert: 11.12.2005 16:52
Kontaktdaten:

Beitrag von speedtouch92 »

Sorry, aber ich verstehe dein Problem nicht, meinst du, dass wenn man sich einloggt, dass dann links neben deinem Forum dein Menü angezeigt werden soll? oder wie???????
Ach ja, ich weiss nicht ob du das schon behpben hast, aber in deiner Menüseite ist dir beim liginformular ein Fehler unterlaufen:
Es heisst in deiner Page:

Code: Alles auswählen

<form action="http://mortz.mofunpic.de/phpbb2/login.php" method="post"> 
Benutzername: <input type="text" name="username"><br> 

Passwort: <input type="password" name="password"><br> 
Autologin? <input type="checkbox" name="autologin"><br> 
<input type="hidden" name="redirect" value="http://mortz.mo.funpic.de/index.php"> 
<input type="submit" name="login" value="Login"> 
</form>
Du hast beim action Feld im formularfeld ein Fehler.
es müsste heissen:
<form action="http://mortz.mo.funpic.de/phpbb2/login.php" method="post">
Benutzername: <input type="text" name="username"><br>

Passwort: <input type="password" name="password"><br>
Autologin? <input type="checkbox" name="autologin"><br>
<input type="hidden" name="redirect" value="http://mortz.mo.funpic.de/index.php">
<input type="submit" name="login" value="Login">
</form>
Ist dir eigentlich schon ausgefallen, dass deine phpBB Memberlist nicht geht?
Immer wenn man im Forum auf Mitgliederliste klickt, kommt folgende Meldung:

Code: Alles auswählen

Could not query users

DEBUG MODE

SQL Error : 1054 Unknown column 'user_wowname' in 'field list'

SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_wowname, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar FROM phpbb_users WHERE user_id <> -1 ORDER BY user_regdate ASC LIMIT 0, 50

Line : 155
File : memberlist.php
 
Es scheint mir, dass dein Forum noch nicht richtig installiert ist.
Wenn du möchtest, dann würde ich es dir KOSTENLOS installieren.



Achja, mein Problem ist gelöst, es lag nur daran, dass das mir von hagily vorgeschlagene Formular die mit der funktion GET übergebene Variable id gelöscht wurde.
Auch existiert die $username nicht. Statdessen muss man $userdata['username'] eingeben um den Username zu erhalten.
Wer an diesem Script interessiert ist, dem schicke ich es gerne zu.
Hier mein script:

Code: Alles auswählen

<?php
$klsdfjghjdklfkldjgfkldfgdlkfgdkghdlkgjdkgfncbgd = $id;
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
  $abfrige = "SELECT user_cash FROM phpbb_users WHERE username = '" .$userdata['username']. "'";
  $ergibnis = mysql_query($abfrige);
  while($row = mysql_fetch_object($ergibnis))
    {
  $abfrage = "SELECT cost, file, counter FROM phpbb_downloads WHERE id = '" .$klsdfjghjdklfkldjgfkldfgdlkfgdkghdlkgjdkgfncbgd. "'";
  $ergebnis = mysql_query($abfrage);
  while($riw = mysql_fetch_object($ergebnis))
    {
if($row->user_cash < $riw->cost) {
echo"Sie haben nicht genug Speedys um sich diese Datei herunterladen zu können.<br>Sie brauchen mindistens $riw->cost Speedys.<br><br>Es kann aber auch sein, dass sie nicht engeloggt sind.";
} else {
$zahlen = $row->user_cash - $riw->cost;
echo"$zahlen";
  $aendern = "UPDATE phpbb_users Set user_cash = '$zahlen' WHERE username = '" .$userdata['username']. "'";
$update = mysql_query($aendern);
$count= $riw->count + 1;
  $aendern = "UPDATE phpbb_downloads Set counter = '$count' WHERE id = '" .$klsdfjghjdklfkldjgfkldfgdlkfgdkghdlkgjdkgfncbgd. "'";
$update = mysql_query($aendern);
echo"Vielen Dank, die Speedys wurden nun abgebucht.";
header("Location: $riw->file");
}}}
?>
M0rtz
Mitglied
Beiträge: 34
Registriert: 10.09.2005 18:03
Wohnort: Dresden
Kontaktdaten:

Beitrag von M0rtz »

Vielen Dank, aber das mit dem installieren bekomm ich schon hin

mir gehts erstmal darum, das ich mich auf meiner startseite einloggen kann und dass dann für die member 2 neue links sichtbar werden und das sie gleich im Forum angemeldet sind.
zur zeit kann ich meine daten zwar angeben, werde aber immernoch auf eine 404-seite weitergeleitet.

mein code:

Code: Alles auswählen

<?php 
//Benötigte Dateien und Variablen von phpBB 
define('IN_PHPBB', true); 
$phpbb_root_path = 'phpbb2/'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 


//Session auslesen und Benutzer-Informationen laden 
$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata);
echo "<form action=\"http://mortz.mo.funpic.de/login.php\" method=\"post\">"; 
echo "Benutzername: <input type=\"text\" name=\"username\"><br> ";
echo "Passwort: <input type=\"password\" name=\"password\"><br> ";
echo "Autologin? <input type=\"checkbox\" name=\"autologin\"><br> ";
echo "<input type=\"hidden\" name=\"redirect\" value=\"http://mortz.mo.funpic.de/index2.php\"> ";
echo "<input type=\"submit\" name=\"login\" value=\"Login\"> ";
echo "</form>";
?>
hab schon vieles ausgetestet, komme aber zu keinem ergebnis
den fehlenden . hab ich auch schon bemerkt :D aber danke

Mortz
speedtouch92
Mitglied
Beiträge: 104
Registriert: 11.12.2005 16:52
Kontaktdaten:

Beitrag von speedtouch92 »

Du hast schonwieder ein Problem mit dem Formular:
im actionfeld steht: <form action="http://mortz.mo.funpic.de/login.php">
es muss aber heissen: <form action="http://mortz.mo.funpic.de/phpbb2/login.php">
M0rtz
Mitglied
Beiträge: 34
Registriert: 10.09.2005 18:03
Wohnort: Dresden
Kontaktdaten:

Beitrag von M0rtz »

ich schussel... sowas passiert mitten in der nacht

leider funzt es immernoch net
ich versuch jetz das:
wenn ich mich erfolgreich eingeloggt habe, soll das menu2 geladen werden, wo die 2 neuen links stehen...

Code: Alles auswählen

echo "<input type=\"hidden\" name=\"redirect\" value=\"http://mortz.mo.funpic.de/menu2.php\" target=\"links\"> ";
in meiner index.php steht

Code: Alles auswählen

echo "            <div id=\"links\" name=\"links\">\n"; // linker rand    
include "menu.php";   
echo "            </div>\n";
jetz weiß ich nur nicht, ob der den linken frame auch als target ansieht bzw. wird die id als target angesehen? dann wäre das "name" ja sinnlos

Mortz
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“