php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
LOGIN in bestehende SQL datenbank


 
sven321
08-01-2010, 15:27 
 
Hallo zusammen,

ich habe folgendes Problem:

möchte über ein PHP Script weiteren Zugriff als LOGIN für eine andere Page installieren (gleiche Domain).
Die Tabelle, sprich vorh. Datenbank (auf Strato Server) ist von meinem Termin /Eventplaner (Event-List 3.8.4) und ebenfalls aktiv.

Es ist alles dort vorhanden, was man für ein LOGIN benötigt und ich möchte, das die User von der "anderen" Page in der selben Domain, sich dort ebenfalls registrieren können.
Gut, dann haben diese auch gleichzeitig Zugrif auf den Event Planer, das ist ok, denn dort ist auch gleichzeitig eine User Verwaltung integriert, mit Rechtevergabe.
Hier einmal die Struktur der Tabell des Strato Servers:

koc1_adminsessions
koc1_appointments
koc1_attachments
koc1_blockedips
koc1_blockedmail
koc1_captcha
koc1_categories
koc1_editgroups
koc1_editusers
koc1_groupmember
koc1_groups
koc1_holiday
koc1_options
koc1_permanentsearch
koc1_reminds
koc1_search
koc1_seccategory
koc1_series
koc1_style
koc1_users
koc1_vacation
koc1_wiw

Es würde ein einfaches LOGIN Script reichen, was auf die Struktur der bestehenden Tabelle zugreift, nur finde ich keins und eine zweite Datenbank kann ich NICHT installieren, lässt der Strato Account nicht zu, also, nur eine Datenbank.

Hoffe Ihr könnt mir da weiterhelfen...

danke im Voraus

Greeeetz
Sven

 
Kropff
08-01-2010, 15:33 
 
Bitte entferne die Verlinkungen oder setz einen korrekten Pfad. Im Moment bekomme ich immer einen 404. Hast du denn auch schon eigene Ansätze oder willst du ein fertiges Script. Im letzteren Fall verschiebe ich es zur Projekthilfe. Wenn du allerdings bereits bist, dafür zu zahlen, so poste es bei den Jobs (http://www.php-resource.de/jobs/)

Peter

 
AmicaNoctis
08-01-2010, 15:36 
 
Bitte die URLs entlinken und unter [Ändern], [Erweitert] den Haken bei "Links automatisch umwandeln" rausnehmen.

Danke

Edit: zu spät, aber jetzt weißt du dafür gleich, wie es geht. ;)

 
sven321
08-01-2010, 20:21 
 
Ich habe "Freeware" Scripte, nur wird dort verlangt, eine neue Tabelle anzulegen (phpAdmin bei Strato) und gerade das möchte ich ja nicht, ich habe ja eine Tabelle die so gut wie leer ist, grade mal 4 User drinne (Event Kalender)

xoxo
Sven

 
AmicaNoctis
08-01-2010, 21:51 
 
Hallo,

wo ist denn das konkrete Problem? Kannst du PHP? Wenn ja, kannst du doch ganz leicht ein Login Script bauen, das die vorhandene Tabelle benutzt. Wenn du noch am PHP lernen bist, können wir dir Tipps für konkrete (Teil-) Probleme geben.

Im Moment sieht es aber danach aus, als ob du einen Programmierer brauchst, der das für dich fix und fertig einrichtet. Wenn das zutrifft, benutz bitte die Rubrik Jobs (http://www.php-resource.de/jobs/).

Wenn nicht, konkretisier bitte die Problembeschreibung. Von einer Tabellenstruktur ist in dieser Auflistung nichts zu erkennen.

Ein genereller Tipp: Versuch doch einfach, das Login der anderen (bestehenden Seite) zu kopieren und auf die neue Seite anzupassen. Wenn das nicht geht, warum nicht?

Gruß,

Amica

 
sven321
09-01-2010, 19:10 
 
Hi Amica :0)

also die Tabelle steht, installiert habe ich diese bei Strato mit myPHPadmin, keine Errors, die Tabelle heißt USER.

Wo ich jetzt noch in der CONFIG.PHP das Problem sehe willich mal eben schreiben, denn bei LOGIN bekomme ich folgendes:

Es ist ein Fehler mit der Datenbank aufgetreten! Es konnte keine Verbindung hergestellt werden.

In der CONFIG.PHP scheint folgendes zu fehlen, die Adresse von Strato:
rdbms.strato.de ◄lautet so

Hier der AUSZUG aus der CONFIG.PHP

##############################################################
# Hauptkonfiguration
define("BASEHREF","http://www.name.de/mem_go.htm"); //URL zu diesem Verzeichnis (ohne /)
define("FROMEMAIL","BOYcraze Support<information@boycraze.de>"); //E-Mail-Adresse des Webmasters
define("MYSQLUSER","U1234567"); //mysql Username
define("MYSQLPASS","willi12x124"); //mysql Passwort
define("MYSQLDB","DB444444"); //mysql Datenbank-Name
###############################################################################
###############################################################################
# Weitere Einstellungen
define("STYLESHEET_HREF", BASEHREF."/style.css"); //Stylesheet-Link
define("TITLE","BOYcraze adult"); //Seitentitel
define("NORIGHTS", "Sie haben nicht die Berechtigung um auf diesen Bereich zuzugreifen!"); //Meldung, wenn keine Berechtigung

//E-Mail bei Passwort-Recovery:
define("MAIL_SUBJECT","Ihre Benutzerdaten"); //Der Betreff der E-Mail
define("MAIL_BODY",
"Hi [name]!"
."\n\r\n\r"
."Hier sind die von Dir angeforderten Benutzerdaten:"
."\n\r"
."E-Mail-Adresse: [email]"
."\n\r"
."Neues Passwort: [pwd]"
."\n\r\n\r"
."Mit freundlichen Grüßen, Dein BOYcraze Support");

###############################################################################


wie geasgt, die Tabelle funktioniert, keine Fehler, nur, auf die Datenbak kann nicht zugegriffen werden, weil die Adresse rdbms.strato.de fehlt.

In meinem Event Kalender sieht es so aus:
// mysqli - for MySQL 4.0 and later
$sqlmode="mysql";
// hostname or IP-Address of MySQL-Server
$mysqlhost = "rdbms.strato.de";
// username and password for database server
$mysqluser = "U1234567";
$mysqlpassword = "willi12x124";
// name of database
$mysqldb = "DB444444";
// number of calendar
$n = "1";
// put the data of your forum here if you want to use the forum integration

Momentan weiß ich net weiter *grummel*, wäre super, wenn Du mir sagen könntest, wie ich das bewerkstelligen kann und JA, in PHP tue ich mich schwer, obwohl ich in FLASH in Action Script 2.0 ein wenig programmiere, ebenso in HTML und JS, PHP ist ähnlich wie das Action Script basiernd auf "C", nur bei speziellen Sachen muß ich nachschlagen oder die Leutz fragen, die es beherrschen, man kann nicht alles können, wenn ich einem eine Geige schenke, heißt es noch lange net, das er darauf auch spielen kann, er muß es erlernen oder dazu lernen :0), dafür kann ich aber super mit fast allen Grafikprogrammen, 3D und CAD Programmen umgehen, auch ein Designer stößt an seine Grenzen *lol*.

LG and xoxo
Sven

 
wahsaga
09-01-2010, 19:13 
 
Das sind hoffentlich nicht deine realen Zugangsdaten ... andernfalls solltest du das Posting mal fix editieren.

 
2Bad4You
09-01-2010, 19:18 
 
Dann füge doch in der config etwas wie:

define("MYSQLHOST", "rdbms.strato.de");


hinzu. Dann musst du nur noch in der Datei welche die Verbindung zur Datenbank aufbaut die Verbindung ändern, bzw der funktion den host parameter mitgeben.

 
sven321
09-01-2010, 22:24 
 
NO keine REALEN Daten, um Gottes willen, dann wäre ich ja mit nem klammerbeutel gepudert^^

 
sven321
09-01-2010, 22:27 
 
Ich probiere das morgen einmal aus, 2Bad4You, danke Dir erst einmal, werde berichten ob es funzte^^

mercieeeeeee :)
Sven

 
sven321
10-01-2010, 14:10 
 
Hey Community,

booaaaaaaachhhhhh, so langsam bin ich frustriert, obwohl jetzt alles korrekt eingetragen ist, kommt immer wieder die Meldung:

Es ist ein Fehler mit der Datenbank aufgetreten! Es konnte keine Verbindung hergestellt werden.

Die Datenbank funzt, sonst würd ja der Kalender net gehen und wäre auch nicht zu administrieren...

Die neue Tabelle hängt unten an der Datenbank und heißt "USERS", OHNE FEHLER, hab ich mit MyPHPadmin überprüft, also ist sie OK, warum bekomme ich kein connect??? unlogisch... *nachdenk*, weiß im Moment net mehr weiter...:{

LG.
XoXo
Sven

 
AmicaNoctis
10-01-2010, 14:24 
 
Diese Fehlermeldung kommt nicht von PHP, daher muss ich dir nahelegen, mal das Error-Reporting anzuschalten und eventuell vorhandene Silence-Operatoren zu entfernen. Wie das alles geht, steht in den Forenregeln.

Zusätzlich suchst du in allen PHP-Dateien nach der Zeichenfolge "connect". Wenn du etwas wie mysql_connect oder mysqli_connect findest, siehst du dir genau an, was für Argumente übergeben werden. Eventuell wird ja dort der Host direkt als String übergeben, so dass du noch so viele Konstanten definieren kannst - die werden ja doch nicht genommen.

Trial and Error bringen einen halt nicht immer weiter. Irgendwann muss man sich auch mal ein paar Grundlagen anlesen. Oder die Forenregeln. ;)

Gruß,

Amica

 
2Bad4You
10-01-2010, 15:05 
 
Hast du nur die Konstante in die Config eingefügt oder hast du auch der funktion welche die Verbindung aufbaut diesen Parameter mitgegeben?
Sonst poste mal betreffende Datei welche die Datenbank verbindung aufbaut.

 
sven321
10-01-2010, 16:24 
 
Hi 2Bad4u, Amica,

ich poste hier mal die 'config.php', dort steht nun auch die ERROR Medung und ich vermute das der "Feher" in Zeile 121 ist mit localhost, denn auf meinen Rechner Daheim will ich ja net zugreifen...

ALLE USER DATEN sind natürlich wieder FIKTIV :-)

Die login.php poste ich darunter, hoffe Ihr reißt mir nicht die Ohren ab, wegen der Menge an Text^^...

Also config.php:
<?php
##############################################################
##############################################################
## PROFESSIONAL MEMBER v 4.2.0
##
## Copyright (©) 2008 by phpWave Productions
## Web: phpWave.com - Home
## E-Mail:
## Stand: Oktober2008
##
## Professional Member kommt mit absolute keiner Gewähr oder Garantie. Solange die
## Copyright-Vermerke in jeder Datei erhalten bleiben, darf dieses Script ohne Einschränkung
## verwendet und weitergereicht werden. Verwendung zu kommerziellen Zwecken siehe Website.
##
## Tipp: Werfen Sie doch einen Blick auf unser All-in-One Script << Ultimate Member v2 >>!
##
## Viel Erfolg mit PROFESSIONAL MEMBER wünscht das Team von phpWave.com!
##############################################################
##############################################################
# Hauptkonfiguration
define("BASEHREF","http://www.name.de/mem_go.htm"); //URL zu diesem Verzeichnis (ohne /)
define("FROMEMAIL","Crazy Support <immer@crazy.de>"); //E-Mail-Adresse des Webmasters
define("MYSQLUSER","U123456"); //mysql Username
define("MYSQLPASS","willi12x12"); //mysql Passwort
define("MYSQLHOST", "reiner.zufall.de"); //mysqlhost Prvoider-Name
define("MYSQLDB","DB654321"); //mysql Datenbank-Name
###############################################################################
###############################################################################
# Weitere Einstellungen
define("STYLESHEET_HREF", BASEHREF."/style.css"); //Stylesheet-Link
define("TITLE","Crazy"); //Seitentitel
define("NORIGHTS", "Sie haben nicht die Berechtigung um auf diesen Bereich zuzugreifen!"); //Meldung, wenn keine Berechtigung

//E-Mail bei Passwort-Recovery:
define("MAIL_SUBJECT","Ihre Benutzerdaten"); //Der Betreff der E-Mail
define("MAIL_BODY",
"Hi [name]!"
."\n\r\n\r"
."Hier sind die von Dir angeforderten Benutzerdaten:"
."\n\r"
."E-Mail-Adresse: [email]"
."\n\r"
."Neues Passwort: [pwd]"
."\n\r\n\r"
."Mit freundlichen Grüßen, Dein BOYcraze Support Webmaster");

###############################################################################
###############################################################################
# Funktionen
//Sicherheitsfunktionen gegen XSS
if(is_array($_GET) && count($_GET)>1)
{
foreach($_GET as $key=>$get_var)
{
unset($_GET[$key]);
$_GET[$key] = mysql_real_escape_string(str_replace("\\", "", htmlspecialchars(str_replace("\'", "", $get_var), ENT_QUOTES)));
}
}
if(is_array($_POST) && count($_POST)>1)
{
foreach($_POST as $key=>$post_var)
{
unset($_POST[$key]);
$_POST[$key] = htmlspecialchars(str_replace("\'", "", $post_var), ENT_QUOTES);
}
}

//Prüfe, ob Benutzer eingeloggt ist
function logincheck()
{
if(!isset($_SESSION['uid']) || !isset($_SESSION['pwd']) || !isset($_SESSION['allow_login']) || $_SESSION['uid']=="" || $_SESSION['pwd']=="" || $_SESSION['allow_login']!="yes")
{
$logout = true;
}
else
{
$result = mysql_query("select * from users where email='".$_SESSION['email']."'");
$num = mysql_num_rows($result);

if($num!==1)
$logout = true;

if(!$logout)
{
$result = mysql_query("select * from users where uid='".$_SESSION['uid']."' && email='".$_SESSION['email']."' && pwd='".$_SESSION['pwd']."'");
$num = mysql_num_rows($result);

if($num!==1)
$logout = true;
}
}

if($logout)
{
session_destroy();
session_start();

echo "<Script>alert('".NORIGHTS."')</script>";
echo "<Script>window.location='" . BASEHREF . "/login.php'</script>";
exit();
}
}

function db_connect()
{
global $db;
if($db)
return;
//Hier kann der Wert "localhost" geändert werden
if(!@mysql_connect("localhost", MYSQLUSER, MYSQLPASS)){
echo "Es ist ein Fehler mit der Datenbank aufgetreten! Es konnte keine Verbindung hergestellt werden.";
exit();
}

$db = mysql_connect("localhost", MYSQLUSER, MYSQLPASS);
mysql_select_db(MYSQLDB, $db);
if(!$db)
{
echo "Es konnte keine Verbindung mit der Datenbank hergestellt werden!\n";
exit();
}
}
function db_disconnect()
{
global $db;
if($db)
{
mysql_close($db);
$db = NULL;
}
}

if(!defined("BASEHREF") || BASEHREF=="http://******" || BASEHREF=="")
{
echo "Bitte editieren Sie die Konfigurationsdatei config.php. Weitere Informationen finden Sie in der Datei Installation.txt.";
exit();
}
db_connect();
?>


...und hier die login.php...
<?php
##############################################################
##############################################################
## PROFESSIONAL MEMBER v 4.2.0
##
## Copyright (©) 2008 by phpWave Productions
## Web: http://www.phpwave.com
## E-Mail: software@phpwave.com
## Stand: Oktober2008
##
## Professional Member kommt mit absolute keiner Gewähr oder Garantie. Solange die
## Copyright-Vermerke in jeder Datei erhalten bleiben, darf dieses Script ohne Einschränkung
## verwendet und weitergereicht werden. Verwendung zu kommerziellen Zwecken siehe Website.
##
## Tipp: Werfen Sie doch einen Blick auf unser All-in-One Script << Ultimate Member v2 >>!
##
## Viel Erfolg mit PROFESSIONAL MEMBER wünscht das Team von phpWave.com!
##############################################################
##############################################################
session_start();
include('config.php');

//Beim Absenden des Formulars
if(isset($_POST['submit']))
{
//Variablen werden aus dem Formular geholt
$email = $_POST['email'];
$pwd = $_POST['pwd'];

//Wenn E-Mail/Passwort nicht deklariert wurden, gehe zur Login-Seite
if($email=="" || $pwd=="")
{
echo "<Script>alert('Bitte geben Sie Ihre Benutzerdaten ein!')</script>";
echo "<Script>history.back();</script>";
exit();
}

//Ansonsten vergleiche sie mit der Datenbank
else
{
$pwd_md5 = md5($pwd);
$result = mysql_query("SELECT * FROM users WHERE (email='$email' || uid='$email') && pwd='$pwd_md5'");

//Bei richtigen Daten gehe zum Useraccount
if($result && mysql_num_rows($result)===1)
{
$users = mysql_fetch_array($result);

//Visits erhöhen
mysql_query("UPDATE users SET visits='".($users['visits']+1)."' WHERE uid='".$users['uid']."'");

$_SESSION['uid'] = $users['uid'];
$_SESSION['email'] = $users['email'];
$_SESSION['pwd'] = $users['pwd'];
$_SESSION['allow_login'] = "yes";

header("Location: ".BASEHREF."/useraccount/index.php");
exit();
}

//Ansonten, zeige Fehlermeldung
else
{
echo "<Script>alert('E-Mail-Adresse oder Passwort ist falsch!')</script>";
echo "<Script>history.back();</script>";
exit();
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php echo TITLE; ?></title>
</head>
<body>
<link href="<?php echo STYLESHEET_HREF; ?>" rel="stylesheet" type="text/css" />
<div class="promem_body">
<div class="promem_header">Login</div>
<form action="#" method="post">
<table class="promem_content">
<tr>
<td width="50%"><div class="promem_text">E-Mail-Adresse:</div></td>
<td width="50%"><input type="text" name="email" /></td>
</tr>
<tr>
<td width="50%"><div class="promem_text">Passwort:</div></td>
<td width="50%"><input type="password" name="pwd" /></td>
</tr>
<tr>
<td colspan="2"><div class="promem_text"><a href="<?php echo BASEHREF; ?>/forgot.php">Passwort vergessen?</a></div></td>
</tr>
<tr>
<td colspan="2"><div class="promem_text"><a href="<?php echo BASEHREF; ?>/signup.php">Jetzt Anmelden!</a></div></td>
</tr>
</table>
<div class="promem_button">
<input type="submit" value=" Login " name="submit" />
</div>
</form>
</div>
</body>
</html>


mercieeeeee

xoxo
Sven

 
onemorenerd
10-01-2010, 16:50 
 
Was glaubst du eigentlich, was mysql_connect('localhost', ...) macht? :goth:

Tip: Es verbindet nicht zu rdbms.strato.de. Warum wohl?

 
2Bad4You
10-01-2010, 16:50 
 
Wenn du PHP Code postest benutze bitte die php Tags und nicht die code Tags. Also diesen hier [ php] [ /php ](ohne Leerzeichen natürlich.

Und dann versuche mal folgendes. Ändere einfach in der "function db_connect()"
localhost auf die konstante. So sieht die Zeile dann so aus:

if(!@mysql_connect(MYSQLHOST, MYSQLUSER, MYSQLPASS)){

bzw die andere zeile auch:

$db = mysql_connect(MYSQLHOST, MYSQLUSER, MYSQLPASS);


Edit: onemorenerd war schneller^^

 
sven321
12-01-2010, 18:54 
 
Danke Dir 2Bad4You :0) hat alles geklappt, passe jetzt die Unterverzeichnisse in php an...mercieeeeee, löppt alles *froi*

xoxo
sven


Zu onemorenerd:

Was glaubst du eigentlich, was mysql_connect('localhost', ...) macht? :goth:

Tip: Es verbindet nicht zu rdbms.strato.de. Warum wohl?

1. sicher weiß ich was ein localhost ist und es ist mir auch klar, das es rdbms.strato.de NICHT sein kann!

2. hier ist ein Forum, wo man Fragen stellen kann und wenn sie teils noch so bekloppt sind, das kenne ich von meinen Usern bei Formieren nur zu gut und dennoch gebe ich Ratschläge in Bezug auf Grafiken ( z.B. wie man PNG Dateien in Ebenen mit Photoshop Transparenz zuweißt u.v.a. Tipps), Anwendungsprogramme in den Bereichen, daß ich Designer bin, (studiert habe ich Architektur - BDA) nur ist es schade, wenn man Menschen für zu blöde hält, wobei ich nebenbei noch Bibs für CAD Programme wie DrawBase erstelle.

Wenn ich einem eine Geige schenke, heißt es noch lange nicht, das er diese auch beherrscht.
Wenn ich Dir etwas über Statik erzähle, glaube ich nicht daß Du das auf auf Anhieb verstehst!

3. Ich verstehe alle Foren als Hilfestellung für User, die Hilfe benötigen, so wie ich auch meine Hilfe anbiete und wenn es mir noch so bescheuert erscheint, gebe ich sie ohne zynischen Kommentar.

Mit unter der einzige der mir hier wirklich positiv geholfen hat ist 2Bad4You, als User, von einem Moderator, auch in unserem Netzwerk verlange ich differenzierte Anworten und nicht, daß man für dumm hingestellt wird, ist net so gut und ich glaube es kommt dann auch nicht gut an, man kann nicht alles wissen, nur muß man entweder wissen WO es steht oder wissen, wer es wissen könnte OHNE hämische Randbemerkungen und Fingerzeig.

...aber dennoch danke für Deinen Tipp mit dem localhost...

xoxo
Sven

 
onemorenerd
13-01-2010, 06:28 
 
Deine Weltanschauung in allen Ehren, aber in diesem Fall hast du einfach gepennt.

Du hast selbst die richtige Stelle mit dem mysql_connect() gefunden und gefettet.
Dort hast du gelesen, dass der Wert "localhost" geändert werden kann.
Du weißt was "localhost" bedeudet, und dass es nicht der gewünschte Host ist.

Du bist nicht auf die Idee gekommen, "localhost" zu ändern?!

So wenig Mitdenken und Eigeninitiative wird in keinem Forum gern gesehen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:12 Uhr.