• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

post durch php hervorrufen

Status
Für weitere Antworten geschlossen.
kannst du mir erklären wie das mit sessions funktionieren würde?
und wie kann ich, wenn ich das über get machen würde, das pw vor dem abschicken nach eingabe im textfeld verschlüsselt wird? (mit md5() )

mfg, fätzminator
 
Werbung:
zu ersterem gibt es tutorials, zu zweiterem: ich hab doch schon gesagt, es geht nicht vor dem abschicken, du sollst ja dann einfach mit isset($_POST['notDecrypted']) $_POST['key'] = md5($_POST['key']); arbeiten. dazu setzt du dann ein verstecktes feld im formular, welches notDecrypted auf irgend einen wert setzt ...
 
ow ja stimmt hast du ja gesagt... ja dann werde ichs wohl wieder so machen...
wenn ich einen cookie setze, und die zeit auf 0, ist er dann so lange vorhanden bis ich auf einen link klicke oder bis ich das browser-fenster schliesse?
 
Werbung:
Werbung:
iso viel ich verstehe hast du ein geschützten bereich. und da du das passwort nicht über alle seiten per GET anzeigen willst möchtest du dies per post machen. richtig?

wen ja, ein kleiner TIP:
ich habe beim login den user eine sessionvariable zu gewiesen z.b.[php:1:32ac192676]<?php
$_SESSION['user_login']; ;)
?>[/php:1:32ac192676]
habe sogar ne berechtigungs ebene kreiert(z.b. Adminbereich und Gast bereich)
[php:1:32ac192676]<?php
$_SESSION['user_berechtigung']; ;)
?>[/php:1:32ac192676]

nach dem login wir man auf die startseite des bereiches weitergeleitet. nun hast du das problem, das man bei der Startseite mit der sessionsvariable nichts anfangen kann...
zweiter tip;
include datei mit der anweisung für die SESSIONSvariable.(dan must du nicht immer den ganzen quelltext von datei zu datei kopieren, und bei änderungen musst du nur eine datei abändern)

mit dem kannst du sicher noch nichts anfangen... wen du ein wenig gedult hast, und bis am abend warten kannst, gebe ich dir gerne ein gleiner denkanstos.

dies funktioniert tip top, wen du es programmiert hast... :lol: 8)
 
Werbung:
ich habe es jetzt einfach so gemacht, dass ich mehrere variablen habe...
hier die 2 wichtigsten:
$key
$md5

wenn ich mich einlogge steht in $key das pw und in $md5 "False" (oder "no" o.ä.)! dann wird $key mit md5($key) verschlüsselt, $md5 auf "True" gesetzt und die site (home.php?seite=admin) nochmals geladen...! so mache ich es auch mit dem login... stimmt $key NICHT wird in home.php admin.php (das wird sowieso) und in admin.php login.php eingebunden...! sonst wird es über $get durchgegeben wo ich mich befinde und mit weiteren variablen wie z.b. $todo was ich gerade machen will...
hier ein beispiel:
192.168.1.41/schmidi/thinkquest/home.php?seite=admin&get=ben&user=Schmidi&key=*ichbinleidernichtzuveranschaulichung :wink: *&todo=loes&ben=Goczall
 
die IP ist ein INTRANET adressierung... sprich nicht für das öffendliche netz.

ich gebe dir am abend gleich noch die anleitung. (sprich den hinweis) ev komst du nach.

greifst du über SQL auf das passwort zu?
 
ich weiss, dass diese url für ein intranet ist (ich hab ja auch den apache dafür installiert :lol: ) :roll: das ist sollte nur ein beispiellink für den variablen transport sein...
nein, ich greife auf die datei benutzer.txt zu, die folgendermassen aussieht:
user1,md5(pw1),rechte1
user2,md5(pw2),rechte2
...
 
Werbung:
meins wissens ist diese art von übertragungen nicht schlau. wen du den wert true am richtigen ort in deinem url-link einbaust hast du die selbe wirkung.(so weit ich mich noch an das gelesene besinnen mag)
weist du was, ich gebe dir netterweise mein script. umbauen must du ihn aber selber. ok(git nicht viel arbeit)
 
also hier der code für den loginbereich
[php:1:22a20054ed]<?php
//öffnung des userlogin session
session_register('Login-berechtigung');


if (isset($_POST['login_name'])) {
$loginUsername=$_POST['login_name'];//usernamefeld von login
$password=md5($_POST['login_passwort']);//passwortfeld von login
$login_positiv = "index2.php";//verweis bei erfolgreichem login
$login_negativ = $_SERVER['PHP_SELF'];//weisung bei fehler im login

//SQL datenbank zuweisung
mysql_select_db($SQL_datenbank, $SQL_verbindung);
$LoginSQL__query=sprintf("SELECT User_Name, Passwort, Berechtigung FROM user_data WHERE User_Name='%s' AND Passwort='%s'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
//SQL zugriff für die datenbank abfrage
$LoginSQL = mysql_query($LoginSQL__query, $SQL_verbindung) or die(mysql_error());
$login_user_gefunden = mysql_num_rows($LoginSQL);
if ($login_user_gefunden) {

$login_userberechtigung = mysql_result($LoginSQL,0,'Berechtigung');

//deviniere die globale variable für user und berechtigung
$GLOBALS['Login_username'] = $loginUsername;
$GLOBALS['Login_berechtigung'] = $login_userberechtigung;

//aktivierung der user und berechtigungs sessionen
session_register("Login_username");
session_register("Login_berechtigung");

if (isset($_SESSION['Login-berechtigung']) && false) {
$login_positiv = $_SESSION['Login-berechtigung'];
}
header("Location: " . $login_positiv );
}
else {
header("Location: $login_negativ?err=Fehler beim Anmelden");//sagt ja schon alles.err ist ein $_GET['err']; befehl
}
}
?>[/php:1:22a20054ed]
das kommt in alle andere datei für den gesperrten bereich
[php:1:22a20054ed]<?php
require('include-require/berechtigung/berechtigung.php');//Zutrittsberechtigungen für gesperrte seiten

?>[/php:1:22a20054ed]
und hier kommt die require datei[php:1:22a20054ed]<?php
session_start();
$user_berechtigung = "Administrator";
$fehler_im_login = "false";

function ist_authorisiert($start_user, $start_gruppe, $UserName, $user_gruppe) {
$ist_gueltig = False;

if (!empty($UserName)) {
$arrUsers = Explode(",", $start_user);
$arrGroups = Explode(",", $start_gruppe);
if (in_array($UserName, $arrUsers)) {
$ist_gueltig = true;
}

if (in_array($user_gruppe, $arrGroups)) {
$ist_gueltig = true;
}
if (($start_user == "") && false) {
$ist_gueltig = true;
}
}
return $ist_gueltig;
}

$fehler_verweis = "index.php?err=Bitte einloggen";
if (!((isset($_SESSION['Login_username'])) && (ist_authorisiert("",$user_berechtigung, $_SESSION['Login_username'], $_SESSION['Login_berechtigung'])))) {
header("Location: ". $fehler_verweis);
exit;
}
?>[/php:1:22a20054ed]

den rest must du selbst herausfinden...
habe dir jetzt ein fast fertigen code gegeben
 
ja so könnte man es auch machen....
aber schlussendlich kommt es doch aufs gleiche raus... (aber ich werde es mir trotzdem anschauen...)
das mit dem "auf-true-setzen" stimmt nicht...
wenn md5==false ist wirde einfach der key mit md5 verschlüsselt und die site nochmals geladen... (ohne md5=false) erst dann wird $key und $user mit der datei verglichen... und das bei jeder bewegung im admin menu...

mfg, fätzminator
 
Werbung:
für ein guten hacker ist eine MD5 verschlüsselung eh nicht das problem.
schlussentlich mus der script ja sein sin und zweck erfüllen.

das problem bei get ist, das die zeichen in der URL begrenzt sind.(späteres ausbauen oder bei weis nicht was für angaben könnte es problematisch werden)
 
ich glaube 1024 zeichen sind erlaubt, oder...?
hier mein script für den login (vieleicht nicht gerade erste sahne, aber es funtktioniert):
[php:1:93a9600298]<?php
$get=$_GET["get"];
$key=$_GET["key"];
$user=$_GET["user"];
$md5=$_GET["md5"];
$a="a";
$login="";

if($get=="login" || $get=="") {
//******************************
include "admin/login.php";
//******************************
} else {
if($md5=="no") {
$key=md5(md5($_GET["key"]));
echo "<meta http-equiv=\"refresh\" content=\"0;url=home.php?seite=admin&get=" . $get . "&user=" . $user . "&key=" . $key . "\">";
exit();
} else {
$key=$_GET["key"];
}
if($key=="" || $user=="") {
echo "<meta http-equiv=\"refresh\" content=\"0;url=home.php?seite=admin&get=login&f=1\">";
} else {
$user_datei="haupt/admin/benutzer.txt";
if(file_exists($user_datei)) {
$fp=fopen($user_datei,"r");
while(!feof($fp)) {
$zeile=fgetcsv($fp,4096);
if(count($zeile)>=2) {
$login_csv[]=$zeile;
}
}
fclose($fp);
for($i=0;$i<count($login_csv);$i++) {
if($key==$login_csv[$i][1]) {
if($user==$login_csv[$i][0]) {
$login="true";
echo "<p align=\"right\">als " . $user . " eingeloggt";
echo " | [<a href=\"home.php?seite=admin&get=index&user=" . $user . "&key=" . $key . "\" class=\"a\">Hauptmen&uuml;</a>]";
echo " | [<a href=\"home.php?seite=admin&get=login&f=3\" class=\"a\">Logout</a>]
<hr>";
//******************************
if($get=="index") {
include "admin/index.php";
} elseif($get=="ben") {
include "admin/users.php";
} elseif($get=="ord") {
include "admin/ordner.php";
} elseif($get=="dat") {
include "admin/dateien.php";
} else {
include "admin/404.php";
}
//******************************
echo "<hr>";
}
}
}
}
}
if($login=="") {
echo "<meta http-equiv=\"refresh\" content=\"0;url=home.php?seite=admin&get=login&f=2\">";
}
}
?>[/php:1:93a9600298]
 
mit[php:1:43a53b8520]<?php
header("Location: $login_negativ?err=Fehler beim Anmelden")
?>[/php:1:43a53b8520] musst du den [php:1:43a53b8520]<?php
<meta http-equiv=\"refresh\" content=\"0;url=home.php?seite=admin&get=" . $get . "&user=" . $user . "&key=" . $key . "\">
?>[/php:1:43a53b8520] nicht schreiben..

header ist die PHP version von http-equiv="refresh\" content=....
 
Werbung:
und den text komt in jeder deiner geschützten seiten?
wie hast du das gedacht, wen du einmal ausbauen möchtest? oder deine programmierung komplexer wird?

ach ja, jetzt kommt mir was in den sinn. wegen der sicherheit. wen du von einem öffentlichen computer aus auf deine geschützte seite gehst, oder sonst welchem computer(sei es im geschäft bei einem freund in der schule oder weis nicht wo) must du jedesmal die history löschen mit 90% wahrscheinlichkeit speicherts die angaben in der URL liste und in der history. wen du das vergisst, kommt jeder auf dem spezifischen gerät an deine geschützte seite. :roll:
hast du dies auch bedacht?
 
ja das weiss ich,aber ich werde nur von der schule aus drauf gehen... und da bin ich der einzige, der php kann und versteht, ausser ein kamerad, der eben der 2. admin ist :mrgreen:
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben