Hallo erstmal,
ich bin noch ein Anfänger in PHP, deswegen nicht böse sein wenn alles schief und krumm ist.
Bei einer seite die ich als Praktikant basteln muss weiß ich nicht so wirklich ob alles richtig ist
Ich bin mir nicht sicher wie ich diesen html Teil in in den PHP Teil einbinden soll.
passchange2.php
PHP-Code:
<?php session_start();
error_reporting(E_ALL);
include 'sessionhelpers.inc.php';
$_POST['username']=$username;
$_POST['oldpass']=$oldpass;
$_POST['password']=$password;
$_POST['passwordh']=$passwordh;
$userid=ceck_user($username,$oldpass);
if(check_user($username,$oldpass)==false){
echo'Deine Daten waren nicht korrekt';
}else
{
if($password==$password){
change_pass($uderid,$password);
echo'Dein Passwort wurde geändert';
}
else{
echo'Passwortbestätigung falsch!';
}
}
?>
sessionhelpers.inc.php
PHP-Code:
<?php
function connect()
{
$con= mysql_connect('Server','User','PASS') or die(mysql_error());
mysql_select_db('DB',$con) or die(mysql_error());
}
function check_user($name, $pass)
{
$sql="SELECT UserId
FROM users
WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
LIMIT 1";
$result= mysql_query($sql) or die(mysql_error());
if ( mysql_num_rows($result)==1)
{
$user=mysql_fetch_assoc($result);
return $user['UserId'];
}
else
return false;
}
function change_pass($userid, $password)
{
$sql="UPDATE users
SET UserPass=MD5('".$password."')
WHERE UserId=".$userid;
mysql_query($sql);
}
function login($userid)
{
$sql="UPDATE users
SET UserSession='".session_id()."'
WHERE UserId=".$userid;
mysql_query($sql);
}
function logged_in()
{
$sql="SELECT UserId
FROM users
WHERE UserSession='".session_id()."'
LIMIT 1";
$result= mysql_query($sql);
return ( mysql_num_rows($result)==1);
}
function logout()
{
$sql="UPDATE users
SET UserSession=NULL
WHERE UserSession='".session_id()."'";
mysql_query($sql);
}
function check_pass($username, $oldpass)
{
$sql="SELECT UserId
FROM users
WHERE UserName='".$username."' AND UserPass=MD5('".$oldpass."')
LIMIT 1";
$result= mysql_query($sql) or die(mysql_error());
if ( mysql_num_rows($result)==1)
{
return true;
}
else
return false;
}
connect();
?>
(Wenn irgendwelche fehler verhanden sind sagt es mir bitte.)
Ich hab über PuTTY eine Linux-Maschine angezapft zum reinstellen(von win zu linux halt, nur lokal nicht online)
Leider weiß ich nicht wie ich eine MySQL-Datenbank auf Linux erstelle oder insgesamt anwende um das hier zu testen.
19.01.2011, 15:37
#
2
.:Philipp:.
Registriert seit: 05.11.2008
Beiträge: 1.826
So ich habe das jetzt erstmal ein wenig aufgeräumt
Brauchst du nun Hilfe beim erstellen der Datenbank oder bei deinem Script selbst?
Grüße
20.01.2011, 08:47
#
3
Gian1307
Threadstarter
Registriert seit: 06.10.2010
Beiträge: 97
Danke erstmal.
1.Ich muss wissen ob das was ich geschrieben hab richtig ist und was ich noch verändern muss.
2.Ich möchte eine MySQL-Datenbank auf einer Linux-Kiste erstellen (MySQL ist schon installiert) um die ganze Sache zu testen (d.h. mit 2-3 "Usern", das ich mal gucken kann ob das script einwandfrei funktioniert und ob sich das Passwort tatsächlich ändert).
20.01.2011, 09:04
#
4
FreewareGuide
Moderator
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Wie richtig der komplette Code ist können wir Dir so jetzt auch kaum sagen, nur vom angucken übersieht man doch gerne Probleme, d.h. da müsstest Du schon konkretere Fehler melden.
Um die Datenbank zu bearbeiten gibt es drei Wege, über Kommandozeile ("PuTTY"), über ein Desktop-Programm wie HeidiSQL (wenn der Server überhaupt so konfiguriert ist, dass er Anfragen "von außen" entgegen nimmt) oder über Weboberfläche wie phpMyAdmin, da Du ja eh gerade an einer Website bastelst.
Alles nichts was man mal so aus dem Ärmel schüttelt, insbesondere kennen wir Deine Einschränkungen nicht, wo der Server steht, wie er abgeschottet ist und wofür der eigentlich dient bzw. wie der bereits konfiguriert ist?
Grüße,
Thorsten
20.01.2011, 09:22
#
5
.:Philipp:.
Registriert seit: 05.11.2008
Beiträge: 1.826
Bastel dir eine PHP Datei in der du deine Daten sendest / überprüfst:
//mysql connect $con= mysql_connect('Server','User','PASS') or die(mysql_error()); mysql_select_db('DB',$con) or die(mysql_error());
$userid = ceck_user($username,$oldpass);
...restlichen Funktionen
//mysql verbindung schließen mysql_close($con); ?>
Das include aus der index.php herrausnehmen und im formular dein PHP Script angeben.
20.01.2011, 09:52
#
6
Gian1307
Threadstarter
Registriert seit: 06.10.2010
Beiträge: 97
Zum Server:
Ich greife über PuTTY auf die Linux_Kiste und da hört es bei meinen Wissensstand schon auf. Ich weiß nur das dort MySQL drauf ist und mehr nicht. Ich bräuchte eine Anleitung oder ein HowTo damit ich mal weiß wo und wie ich dort anfangen muss,
Zum Script:
Das meiste davon hab mir schon in anderen Foren zusammen "geklaut", zum Beispiel die sessionhelper weiß ich garnicht was da alles steht. Deswegen muss ich genau wissen wo was hinein kommt.
Also das was du geschrieben hast in die passchange2.php Datei und die sessionhelper brauche garnicht?
Ich bin wirklich noch ein ganz blutiger Anfänger, bitte nicht böse sein oder anfangen mich zu beleidigen, weil ich das meiste vom Script kopiert habe.
Entweder helfen (bis jetzt sehr hilfreich, danke leute) oder bitte den Mund halten.
---------- Doppelpost zusammengeführt am 20.01.2011 um 08:53 ----------
Sorry wegen Mund halten, aber ich hatte deswegen schon schlechte Erfahrung.
20.01.2011, 10:22
#
7
.:Philipp:.
Registriert seit: 05.11.2008
Beiträge: 1.826
Zitat:
Zitat von Gian1307
Ich bin wirklich noch ein ganz blutiger Anfänger, bitte nicht böse sein oder anfangen mich zu beleidigen, weil ich das meiste vom Script kopiert habe.
Entweder helfen (bis jetzt sehr hilfreich, danke leute) oder bitte den Mund halten.
Ist ja kein Problem, dafür ist ein Forum ja da
Eine Grundlegende Frage habe ich noch. Sollen verschiedene Personen ein bzw. das eigene Passwort ändern können oder gibt es ein "Admin" der das alleine ändert?
__________________
"Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren." - Bertolt Brecht
20.01.2011, 10:28
#
8
Gian1307
Threadstarter
Registriert seit: 06.10.2010
Beiträge: 97
Jeder Nutzer sollte sein Passwort ändern können.
20.01.2011, 13:06
#
9
Gian1307
Threadstarter
Registriert seit: 06.10.2010
Beiträge: 97
Falls ihr mir ein komplett anderes Script anbieten würdet (was auch eine große Hilfe wäre und ich unteranderem brüßen würde), muss das Formular in dieser Tabellenform sein wie bei meinem.
20.01.2011, 13:11
#
10
.:Philipp:.
Registriert seit: 05.11.2008
Beiträge: 1.826
Das Problem liegt nun darin das es 1000 verschiedene Varianten gibt so etwas zu programmieren. Um soetwas zu programmieren muss man wissen wie die webseite aufgebaut ist usw.
Das mache ich zwar ungerne aber ich empfehle dir mal einen PHP, MySql Grundkurs durchzulesen. Was du nacher können musst ist nur den User identifizieren, Daten an ein PHP Script senden dass dann das Passwort in die Datenbank einträgt.
Falls du Hilfe in einzelnen Bereichen benötigst kannst du dich aber gerne melden.
Grüße
__________________
"Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren." - Bertolt Brecht
20.01.2011, 13:12
#
11
FreewareGuide
Moderator
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Also ich bin hier halbwegs raus, kann kaum noch folgen. Willst Du Schritt zwei vor dem ersten machen? Hast Du jetzt ein System, auf dem man sich bereits mit einem Passwort einloggen kann, wo bestimmte Inhalte/Funktionen nur eingeloggt verfügbar sind und Du willst es nur noch dahin gehend erweitern, dass die Nutzer ihr eigenes Passwort auch noch ändern können? Das passt nicht damit zusammen, dass Du anfangs nicht mal auf die Datenbank zugreifen konntest, oder habe ich das missverstanden?
Mir würde helfen, wenn Du grundsätzlich erst mal erklären würdest, was Du bereits hast und was ganz am Ende rauskommen soll. Danach kann man dann besser schauen wie man die einzelnen Schritte dahin am besten geht. Nur "Passwort ändern" ist ja reichlich unsinnig, solange nichts Passwort-geschützt ist. Oder ist dir vielleicht mit einem fertigen "Produkt" besser geholfen, z.B. einem einfachen CMS, bei dem auch eine Nutzverwaltung mitgeliefert wird?
20.01.2011, 13:20
#
12
Gian1307
Threadstarter
Registriert seit: 06.10.2010
Beiträge: 97
Also,
ich hab eine HTML-Seite geschreiben, die die Felder Nutzername, altes Passwort, neues Passwort und neues Passwort bestätigen in tabellenform enthält.
Im Prinzip brauche ich jetzt nur ein Script,Tutorial oder eine Anleitung wie ich die Seite praktisch zum leben erwecke.
D.h. PHP-Scripten.
Das wegen der Datenbank habe ich gefragt um das Script wenn dann irgendwann vorhanden zesten zu können.
Ich möchte das jetzt auch nicht zu einer Lebensaufgabe machen und auch nicht unbedingt einen Grundkurs dazu machen, desswegen habe ich das aus andern Foren mir zusammengereimt und ich wollte hlt wissen obs richtig ist.
20.01.2011, 13:23
#
13
.:Philipp:.
Registriert seit: 05.11.2008
Beiträge: 1.826
Wie FreewareGuide aber schon schrieb, was kann denn ein User auf deiner HTML Seite schon machen? Wenn er sich nicht einloggen kann und somit kein "privater" Bereich vorhanden ist, macht deine Passwortänderungstool keinen Sinn.
__________________
"Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren." - Bertolt Brecht
20.01.2011, 13:31
#
14
Gian1307
Threadstarter
Registriert seit: 06.10.2010
Beiträge: 97
Dafür ist ja das Nutzername und altes Passwort Feld da wenn die Daten verglichen wurden und richtig sind wird vom User das Passwort geändert.
20.01.2011, 13:37
#
15
.:Philipp:.
Registriert seit: 05.11.2008
Beiträge: 1.826
Dies bedeutet das sich der Benutzer über die kombination von Name und altem Passwort identifizieren soll und das auf einer "statischen" Seite wo jeder Zugriff drauf hat?
20.01.2011, 13:40
#
16
FreewareGuide
Moderator
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
@.hilipp:. und ich sind uns da ziemlich einig. Etwas Grundverständnis von HTML/PHP/SQL wirst du auch in jedem Fall brauchen, nur mit Copy&Paste wirst Du Dein (mir immer noch unbekanntes) Ziel nicht erreichen. Heißt nicht, dass Du da erst Wochen und Monate lernen musst, etwas Grundverständnis, den Rest kann man dann nachschlagen und lernt beim tun.
Die Struktur Deiner HTML-Tabelle ist völlig egal, Du hast darin Formularfelder mit passenden Namen, dann kannst Du ihre Inhalte nach Abschicken des Formulars zuordnen und so in eine Datenbank abbilden wie Du möchtest. Die Idee, erst mal so was mit HTML/PHP zu machen und die Datenbank später ist schon mal nicht schlecht. Darum würde ich aber nicht die Passwortänderung zuerst machen sondern mich zuallererst um ein- und ausloggen kümmern. Ich hatte hier mal ein Stück Code veröffentlicht, mit dem sowas geht: (PHP) Passwortabfrage funzt nicht :( Wenn Du da die "index.php" wirklich verstanden hast und weißt, wie die "Configuration" in der "login.php" zu machen ist, dann hast Du schon mal was in der Hand, wo Du die wichtigen Dinge im Griff hast. Das dann später mit Datenbank zu machen ist dann gar nicht so schwer, aber der zweite Schritt erst...
Grüße,
Thorsten
20.01.2011, 13:43
#
17
Gian1307
Threadstarter
Registriert seit: 06.10.2010
Beiträge: 97
Die Seite soll nicht ins Internet sondern in ein internes Netztwerk.
---------- Doppelpost zusammengeführt am 20.01.2011 um 13:08 ----------
Könnt ihr mir vieleicht noch eine Anleitungs-Link geben wo ich eine MySQL Datenbank anlegen kann (für Linux über PuTTY), damit ich mal das Script, was ich schon hab, testen kann.
Wie gesagt das einzige was ich weiß, ist das MySQL schon installiert ist.
20.01.2011, 14:09
#
18
FreewareGuide
Moderator
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Zitat:
Zitat von Gian1307
Die Seite soll nicht ins Internet sondern in ein internes Netztwerk.
Ja und? D.h. es geht nur darum irgendwas in einer Datenbank zu ändern (was zufällig Passwörter sind), Login/Logout ist unnötig?
Entschuldige, konnte ich nicht ahnen, dann ist in Deinem Ausgangsposting der ganze "sessionhelpers.inc.php"-Kram eigentlich völlig überflüssig, oder?
Das ist das Problem mit Copy&Paste und der Reduzierung eines Problems auf einen kleinen Teilaspekt, ohne um das große Ganze zu wissen.
Dann solltest Du für einen Anfang Dein Problem noch weiter reduzieren, nämlich einfache Formularverarbeitung mit HTML/PHP, Du machst eine leere neue PHP-Seite mit einem einfachen Eingabefeld und einen Button und lernst, wie Du dort Inhalte einträgst, den Button drückst und danach in der PHP-Seite die Inhalte empfängst, sie z.B. einfach auf der Seite ausgibst. Dass es sich um Login/Passwort handelt ist für Deine Aufgabe erst einmalö völlig unerheblich.
Danke,
also brauch ich den ganzen Plunder nicht, großes Kino.
Dann mach ich das mal.
20.01.2011, 14:18
#
20
FreewareGuide
Moderator
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Zitat:
Zitat von Gian1307
Könnt ihr mir vieleicht noch eine Anleitungs-Link geben wo ich eine MySQL Datenbank anlegen kann (für Linux über PuTTY), damit ich mal das Script, was ich schon hab, testen kann.
Wie gesagt das einzige was ich weiß, ist das MySQL schon installiert ist.
Ehrlich gesagt wäre es besser, Du versuchst Dich an einer der beiden anderen Lösungen die ich Dir oben genannt habe, es wird ja wohl einen Sysadmin geben bei euch, oder?