|
You last visited: Today at 20:20
Advertisement
Brauche dringend hilfe in PHP
Discussion on Brauche dringend hilfe in PHP within the Web Development forum part of the Coders Den category.
09/28/2012, 07:09
|
#1
|
elite*gold: 0
Join Date: Feb 2012
Posts: 267
Received Thanks: 50
|
Brauche dringend hilfe in PHP
Hallo liebe Community
Ich brauche dringend hilfe bei einem Script.
Ich benötige ein login für dieses Script.
Es ist soweit fertig, nur leider weiss ich nicht wie ich dazu ein login schreiben soll.
Wenn ein benutzer z.b diese adresse eingibt:
sollte ein login kommen, in dem der Benutzer seine Login daten für die datenbank eingeben muss, und erst dann sollte sich das Iframe öffnen das in dem Script enthalten ist.
Quasi eine UserID zuweisung über das login script.
Ich hoffe es kann mir jemand helfen, ich weiss das es nicht schwer zu machen ist, und nur wenige Minuten dauert, dennoch bin ich nicht in der lage dazu da meine PHP kenntnisse nicht ausreichen
Hier ist der bereits "fast" fertige code, es fehlt wie gesagt nur ein login script.
Wichtig hierbei ist, das dieses Script komplett SQL-injection (Exploit) Sicher ist.
Code:
<?php
date_default_timezone_set('Europe/Berlin');
function ms_escape($data) { //Zu jeder Benutzereingabe hinzufügen!
if(!isset($data) or empty($data)) return '';
if(is_numeric($data)) return $data;
$non_displayables = array(
'/%0[0-8bcef]/', // url encoded 00-08, 11, 12, 14, 15
'/%1[0-9a-f]/', // url encoded 16-31
'/[\x00-\x08]/', // 00-08
'/\x0b/', // 11
'/\x0c/', // 12
'/[\x0e-\x1f]/' // 14-31
);
foreach($non_displayables as $regex)
$data = preg_replace($regex,'',$data);
$data = str_replace("'","''",$data);
return $data;
}
if (!$link = mssql_connect('Server-IP', 'Name', 'Passwort'))
die ('Konnte keine Verbindung zur Datenbank herstellen. Bitte stellen Sie sicher, dass Sie die Login Daten für die Datenbank richtig eingegeben haben.');
else {
$sql = "SELECT [UserID], [Point] FROM [PS_UserData].[dbo].[Users_Master] WHERE [UserUID] = '$UserUID'";
$res = mssql_query($sql);
$fet = mssql_fetch_array($res);
$ucp = '<div class="ub">Eingeloggt als '.$fet[0].' - Deine AP: '.number_format($fet[1], 0, ',', '.').'</div>
$UserID = ms_escape($fet[0]);
$useruid = $UserUID;
$userid = $UserID;
if (isset($_SERVER['HTTP_REFERER']))
$ref = $_SERVER['HTTP_REFERER'];
else
$ref = '';
$zeit = time();
}
if (isset($UserUID) && $UserUID != false)
echo '<iframe src="http://wallapi.com/api/ps/?key=372f7c56b14a8d1920f2e07adff9aa62&uid&uid='.$UserUID.'&widget=p1_1" " name="frame1" scrolling="auto" frameborder="no" align="center" height = "1200px" width = "100%"></iframe>';
?>
Ich bin für wirklich jede hilfe Dankbar.
|
|
|
09/28/2012, 07:49
|
#2
|
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,258
|
Off Topic -> Web Development
#moved
|
|
|
09/28/2012, 09:31
|
#3
|
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
|
Hier ein simples http auth via PHP
PHP Code:
<?php if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="My Realm"'); header('HTTP/1.0 401 Unauthorized'); echo 'Zugang nicht gestattet'; exit; } else { //do stuff } ?>
|
|
|
09/28/2012, 10:14
|
#4
|
elite*gold: 0
Join Date: Feb 2012
Posts: 267
Received Thanks: 50
|
Naja, das ist aber kein Login script, wo sich der user anmelden kann um dann eine UserUID zugewisen zu bekommen.
Vestehst du was ich meine?
Dennoch vielen dank für deine mithilfe
|
|
|
09/28/2012, 11:20
|
#5
|
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
|
Überprüfe die Eingabe mit der Abfrage des Users in der DB.
Bei übereinstimmung ne Session starten und die Werte setzen.
Danach einfach immer auf die Sessionwerte überprüfen.
Sofern dass im OP kein Copy&Paste Code ist sollte der Einbau des Prinzips verständlich sein.
|
|
|
09/28/2012, 12:09
|
#6
|
elite*gold: 0
Join Date: Feb 2012
Posts: 267
Received Thanks: 50
|
Naja, ich hatte oben bereits erwähnt das meine Kenntnisse nicht ausreichend sind.
Ich hatte gehofft, das dies jemand für mich machen kann.
Ich würde auch ein endgeld dafür zahlen.
Grüße.
|
|
|
09/30/2012, 05:51
|
#7
|
elite*gold: 0
Join Date: Feb 2012
Posts: 267
Received Thanks: 50
|
Kann mir denn niemand helfen?
|
|
|
09/30/2012, 08:53
|
#8
|
elite*gold: 1
Join Date: Aug 2012
Posts: 742
Received Thanks: 85
|
adde mich mal Skype.
Kann dir helfen verstehe nur net was du meinst.
|
|
|
09/30/2012, 23:12
|
#9
|
elite*gold: 1
Join Date: Oct 2011
Posts: 660
Received Thanks: 147
|
Mach das doch über Sessions.
Geht jemand auf die Homepage wird überprüft ob eine Session vorhanden ist.
Wenn ja, wird der Frame angezeigt, wenn nicht dann das Login.
bsp.
PHP Code:
if(isset($_SESSION['user])
{
include('frame.php');
}
else
{
include('loginform.php')
}
So würde ich das Lösen...
|
|
|
10/01/2012, 00:13
|
#10
|
elite*gold: 0
Join Date: Feb 2012
Posts: 267
Received Thanks: 50
|
Ich habe da nicht soviel ahnung von, ich brauche jemanden der mir das fertig codet.
Ich versuche es mal besser zu beschreiben.
Es ist nur eine datei.php in dieser datei soll alles drin sein.
Ein user ruft die datei.php auf (nicht eingeloggt)<- Er wird nun dazu aufgefordert sich einzuloggen.
Das login ist ebenfalls in der datei.php:
Code:
if (!$UserUID = session::check());
else {
$sql = "SELECT [UserID], [Point] FROM [PS_UserData].[dbo].[Users_Master] WHERE [UserUID] = '$UserUID'";
Jetzt gibt der user seine daten ein, und folgendes Iframe wird geöffnet:
Code:
if (isset($UserUID) && $UserUID != false)
echo '<iframe src="http://wallapi.com/api/ps/?key=372f7c56b14a8d1920f2e07adff9aa62&uid&uid='.$UserUID.'&widget=p1_1" " name="frame1" scrolling="auto" frameborder="no" align="center" height = "1200px" width = "100%"></iframe>';
else
echo 'Bitte erst einloggen';
Ich bekomme das allein leider nicht hin.
So sieht der Code für die Datenbank aus:
Code:
function ms_escape($data) { //Zu jeder Benutzereingabe hinzufügen!
if(!isset($data) or empty($data)) return '';
if(is_numeric($data)) return $data;
$non_displayables = array(
'/%0[0-8bcef]/', // url encoded 00-08, 11, 12, 14, 15
'/%1[0-9a-f]/', // url encoded 16-31
'/[\x00-\x08]/', // 00-08
'/\x0b/', // 11
'/\x0c/', // 12
'/[\x0e-\x1f]/' // 14-31
);
foreach($non_displayables as $regex)
$data = preg_replace($regex,'',$data);
$data = str_replace("'","''",$data);
return $data;
}
if (!$link = mssql_connect('Server_IP', 'Datenbank_Name', 'Passwort'))
die ('Konnte keine Verbindung zur Datenbank herstellen. Bitte stellen Sie sicher, dass Sie die Login Daten für die Datenbank richtig eingegeben haben.');
|
|
|
10/01/2012, 00:15
|
#11
|
elite*gold: 1
Join Date: Oct 2011
Posts: 660
Received Thanks: 147
|
Ja, funktioniert über Sessions.
Schreib mich mal per PN an, kann dir sicherlich helfen.
Edit:
Ich würde es etwas anders machen.
Wie gesagt, würde einfach eine Session machen.
Also ein login Block und der Block mit dem iFrame.
auf Deutsch gesagt:
wenn(Session['benutzer'] == wahr)
{
da ist dann dein iFram
}
wenn falsch
{
zeigt es den Login Block an
}
|
|
|
10/01/2012, 01:05
|
#12
|
elite*gold: 0
Join Date: Sep 2012
Posts: 33
Received Thanks: 7
|
Wie Zettabytes schon sagt ist es echt simpel mit einer If/else combo zu lösen !
Code:
if(Session==wahr){
öffne das iframe }else{
ansonsten die Login Form
}
|
|
|
10/01/2012, 13:04
|
#13
|
elite*gold: 5
Join Date: Jun 2012
Posts: 176
Received Thanks: 214
|
Ich glaube du suchst das hier xD
Code:
<?php
function ms_escape($data) { //Zu jeder Benutzereingabe hinzufügen!
if(!isset($data) or empty($data)) return '';
if(is_numeric($data)) return $data;
$non_displayables = array(
'/%0[0-8bcef]/', // url encoded 00-08, 11, 12, 14, 15
'/%1[0-9a-f]/', // url encoded 16-31
'/[\x00-\x08]/', // 00-08
'/\x0b/', // 11
'/\x0c/', // 12
'/[\x0e-\x1f]/' // 14-31
);
foreach($non_displayables as $regex)
$data = preg_replace($regex,'',$data);
$data = str_replace("'","''",$data);
return $data;
}
$dbhost = '127.0.0.1';
$dbuser = 'Shaiya';
$dbpass = 'Shaiya123';
mssql_connect($dbhost, $dbuser, $dbpass);
session_start();
if (isset($_SESSION['UserUID']))
echo '<iframe src="http://wallapi.com/api/ps/?key=372f7c56b14a8d1920f2e07adff9aa62&uid&uid='.$_SESSION['UserUID'].'&widget=p1_1" " name="frame1" scrolling="auto" frameborder="no" align="center" height = "1200px" width = "100%"></iframe>';
else if (isset($_POST['login'])) {
$userid = ms_escape($_POST['userid']);
$password = ms_escape($_POST['password']);
$res = mssql_query("SELECT [UserUID], [UserID], [Point] FROM [PS_UserData].[dbo].[Users_Master] WHERE [UserID] = '".$userid."' AND [Pw] = '".$_POST['password']."'");
if (mssql_num_rows($res) == 0){
?>
<h1>Login erforderlich!</h1>
<br>
<font color="red">Kein Benutzer gefunden.</font>
<br>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
<table>
<tr><td>Benutzername: </td><td><input type="text" name="userid" value="Benutzername"></td></tr>
<tr><td>Passwort: </td><td><input type="password" name="password" value="Passwort"></td></tr>
<tr><td></td><td><input type="submit" name="login" value="Einloggen"></td></tr>
</table>
</form>
<?php
exit();
}
$useruid = mssql_fetch_array($res);
$_SESSION['UserUID'] = $useruid[0];
Header("Location: ".$_SERVER['PHP_SELF']);
} else {
?>
<h1>Login erforderlich!</h1>
<br>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
<table>
<tr><td>Benutzername: </td><td><input type="text" name="userid" value="Benutzername"></td></tr>
<tr><td>Passwort: </td><td><input type="password" name="password" value="Passwort"></td></tr>
<tr><td></td><td><input type="submit" name="login" value="Einloggen"></td></tr>
</table>
</form>
<?php
}
?>[CODE]
[/CODE]
|
|
|
10/01/2012, 13:13
|
#14
|
elite*gold: 99
Join Date: Apr 2011
Posts: 730
Received Thanks: 236
|
PhP-Self ist soweit ich weiß eine große Sicherheitslücke, hat mir mal jemand gesagt, kann aber sein das ich mich täusche^^
|
|
|
10/01/2012, 13:20
|
#15
|
elite*gold: 5
Join Date: Jun 2012
Posts: 176
Received Thanks: 214
|
Stimmt. Das habe ich selber noch nicht gewusst, danke  PHP_SELF bietet 'ne recht einfache Möglichkeit für XSS.
Hier mit SCRIPT_NAME anstatt von PHP_SELF:
Code:
<?php
function ms_escape($data) { //Zu jeder Benutzereingabe hinzufügen!
if(!isset($data) or empty($data)) return '';
if(is_numeric($data)) return $data;
$non_displayables = array(
'/%0[0-8bcef]/', // url encoded 00-08, 11, 12, 14, 15
'/%1[0-9a-f]/', // url encoded 16-31
'/[\x00-\x08]/', // 00-08
'/\x0b/', // 11
'/\x0c/', // 12
'/[\x0e-\x1f]/' // 14-31
);
foreach($non_displayables as $regex)
$data = preg_replace($regex,'',$data);
$data = str_replace("'","''",$data);
return $data;
}
$dbhost = '127.0.0.1';
$dbuser = 'Shaiya';
$dbpass = 'Shaiya123';
mssql_connect($dbhost, $dbuser, $dbpass);
session_start();
if (isset($_SESSION['UserUID']))
echo '<iframe src="http://wallapi.com/api/ps/?key=372f7c56b14a8d1920f2e07adff9aa62&uid&uid='.$_SESSION['UserUID'].'&widget=p1_1" " name="frame1" scrolling="auto" frameborder="no" align="center" height = "1200px" width = "100%"></iframe>';
else if (isset($_POST['login'])) {
$userid = ms_escape($_POST['userid']);
$password = ms_escape($_POST['password']);
$res = mssql_query("SELECT [UserUID], [UserID], [Point] FROM [PS_UserData].[dbo].[Users_Master] WHERE [UserID] = '".$userid."' AND [Pw] = '".$_POST['password']."'");
if (mssql_num_rows($res) == 0){
?>
<h1>Login erforderlich!</h1>
<br>
<font color="red">Kein Benutzer gefunden.</font>
<br>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
<table>
<tr><td>Benutzername: </td><td><input type="text" name="userid" value="Benutzername"></td></tr>
<tr><td>Passwort: </td><td><input type="password" name="password" value="Passwort"></td></tr>
<tr><td></td><td><input type="submit" name="login" value="Einloggen"></td></tr>
</table>
</form>
<?php
exit();
}
$useruid = mssql_fetch_array($res);
$_SESSION['UserUID'] = $useruid[0];
Header("Location: ".$_SERVER['SCRIPT_NAME']);
} else {
?>
<h1>Login erforderlich!</h1>
<br>
<form action="<?php echo $_SERVER['SCRIPT_NAME'];?>" method="POST">
<table>
<tr><td>Benutzername: </td><td><input type="text" name="userid" value="Benutzername"></td></tr>
<tr><td>Passwort: </td><td><input type="password" name="password" value="Passwort"></td></tr>
<tr><td></td><td><input type="submit" name="login" value="Einloggen"></td></tr>
</table>
</form>
<?php
}
?>
|
|
|
 |
|
Similar Threads
|
[RL - HILFE] Leute ich brauche dringend eure hilfe :/
06/14/2012 - Main - 2 Replies
Hej liebe Community!
Seit ein paar Tagen date ich 3 Mädels... (DAS IST MEIN VÖLLIGER ERNST!)
Die 3 sehen schon heiß aus, aber das Problem liegt darin, dass alle 3 auf mich abfahren...
Ich weiß nicht, was ich machen soll & ein Arschloch bin ich ja auch nicht!
Ich lag mit allen 3 schon in der Kiste & fühle mich gerade wie der größte Stecher Berlin's...
Ist eigentlich ganz cool, aber wie Carlos will ich nicht enden!!!! :rtfm:
|
Brauche dringend und zwar wirklich dringend eure Hilfe
09/18/2011 - Metin2 Private Server - 0 Replies
Bei mir auf dem Rootserver verlieren alle Teamler nach
wenigen Minuten die GM Rechte, das war gestern noch
nicht so...
Woran könnte das liegen und wie beheben?
Hoffe auf schnelle antwort
Wäre mir sogar 10 e*Gold wert für eine Hilfestellung die
funktioniert.
|
Brauche Dringend Hilfe! Bin Metin spieler aber Brauche Hilfe
12/30/2009 - Metin2 Private Server - 0 Replies
Es gehört hier zwar nicht rein , aber ich weiß keine andere Lösung
Ich habe seit einigen Tagen ein Problem...
Microsoft Windows Search Protocol Host funktioniert nicht mehr
Die Anwendung wird Aufgrund eines Problems nicht mehr richtig Ausgeführt.
Ich weiß nicht was das ist und wie ich es loswerde.
|
All times are GMT +1. The time now is 20:21.
|
|