<?
function my_mysqli_result($res,$crow,$field)
{
// Array definieren
$feldname=array();
// Anzahl der Zeilen/Datensätze der SQL-Abfrage ermitteln
$num_lines = mysqli_num_rows($res);
if ($num_lines < 1)
{
// es gibt keine Datensätze zum Anzeigen
return false;
}
// alle Namen der Tabellenfelder/Tabellenspalten im Array $feldname speichern
for ($i=0;$feldinfo=mysqli_fetch_field($res);$i++)
{
$feldname[$i]=$feldinfo->name;
}
// den Ergebniszeiger der SQL-Abfrage wieder zur ersten Tabellenspalte rücksetzen
mysqli_field_seek($res,0);
// die gewünschte Zeile d.h. den gewünschten Datensatz suchen
for ($i=0; $row = mysqli_fetch_row($res); $i++)
{
if ($i == $crow) // wenn der gewünschte Datensatz gefunden ist
{
// Anzahl der Spalte ermitteln
$anz_spalten=count($row);
// die gewünschte Spalte d.h. das gewünschte Tabellenfeld suchen
for ($j=0; $j<$anz_spalten;$j++)
{
if ($feldname[$j] == $field) // das gewünschte Tabellenfeld ist gefunden
{
// den Ergebniszeiger der SQL-Abfrage wieder zum ersten Datensatz rücksetzen
mysqli_data_seek($res,0);
// die Daten im Datensatz sind in derselben Reihenfolge wie
// die Namen der zuvor ermittelten Tabellenfelder. Daher kann
// der Wert des gewünschten Tabellenfeldes zurückgeliefert werden
return $row[$j];
}
}
}
}
// den Ergebniszeiger der SQL-Abfrage wieder zum ersten Datensatz rücksetzen
mysqli_data_seek($res,0);
// das gewünschte Tabellenfeld wurde nicht gefunden
return false;
}
function check_md5_login_db(&$p_user,&$p_email,&$p_pwd)
{
//Defaultbelegung der lokalen Variablen
$uid="";
$email="";
$pwd="";
$fixed_pwd="";
// Formulardaten aus der POST-Umgebung auslesen
if (isset($_POST['uid']) && $_POST['uid'] != "")
{
$uid=$_POST['uid'];
}
if (isset($_POST['email']) && $_POST['email'] != "")
{
$email=$_POST['email'];
}
if (isset($_POST['pwd']) && $_POST['pwd'] != "")
{
$pwd=$_POST['pwd'];
}
// Sicherheitsdaten inkludieren
include("../sec/data.php");
//Verbindung zum Datenbankserver aufbauen
$con=mysqli_connect("localhost",$hk_db,$hk_pw,"leiserberge_at");
if (!$con)
{
echo ("Verbindung zu DB-Server/Datenbank kann nicht hergestellt werden: ".mysqli_connect_error()."<br>");
return false;
}
mysqli_set_charset($con,"utf8");
// SQL-Abfragestring festlegen
$sqlab="select secpwd from wspassword where uid='".$uid."';";
// Datenbankabfrage starten
$res=mysqli_query($con,$sqlab);
if (!$res)
{
// Datenbankabfrage liefert kein Ergebnis
return false;
}
$num=mysqli_num_rows($res);
if ($num > 1)
{
echo("Benutzer mehrmals in Datenbank vorhanden.<br>");
return false;
}
if ($num < 1)
{
// Benutzer nicht in Datenbank vorhanden
return false;
}
$fixed_pwd = my_mysqli_result($res,0,"secpwd");
// inhaltliche Passwortüberprüfung
if ($fixed_pwd != $pwd)
{
return false;
}
// Gutfall, alles OK
// Parameter für die Rückgabe und Rückgabewert setzen
$p_user=$uid;
$p_email=$email;
$p_pwd=$pwd;
return true;
}
function check_login_db(&$p_user,&$p_email,&$p_pwd)
{
//Defaultbelegung der lokalen Variablen
$uid="";
$email="";
$pwd="";
$fixed_pwd="";
// Formulardaten aus der POST-Umgebung auslesen
if (isset($_POST['uid']) && $_POST['uid'] != "")
{
$uid=$_POST['uid'];
}
if (isset($_POST['email']) && $_POST['email'] != "")
{
$email=$_POST['email'];
}
if (isset($_POST['pwd']) && $_POST['pwd'] != "")
{
$pwd=$_POST['pwd'];
}
// Sicherheitsdaten inkludieren
include("../sec/data.php");
//Verbindung zum Datenbankserver aufbauen
$con=mysqli_connect("localhost",$hk_db,$hk_pw,"leiserberge_at");
if (!$con)
{
echo ("Verbindung zu DB-Server/Datenbank kann nicht hergestellt werden: ".mysqli_connect_error()."<br>");
return false;
}
mysqli_set_charset($con,"utf8");
// SQL-Abfragestring festlegen
$sqlab="select pwd from wspassword where uid='".$uid."';";
// Datenbankabfrage starten
$res=mysqli_query($con,$sqlab);
if (!$res)
{
// Datenbankabfrage liefert kein Ergebnis
return false;
}
$num=mysqli_num_rows($res);
if ($num > 1)
{
echo("Benutzer mehrmals in Datenbank vorhanden."."<br>");
return false;
}
if ($num < 1)
{
// Benutzer nicht in Datenbank vorhanden
return false;
}
$fixed_pwd = my_mysqli_result($res,0,"pwd");
// inhaltliche Passwortüberprüfung
if ($fixed_pwd != $pwd)
{
return false;
}
// Gutfall, alles OK
// Parameter für die Rückgabe und Rückgabewert setzen
$p_user=$uid;
$p_email=$email;
$p_pwd=$pwd;
return true;
}
function check_login_data(&$p_user,&$p_email,&$p_pwd)
{
//Defaultbelegung der lokalen Variablen
$uid="";
$email="";
$pwd="";
$fixed_pwd="";
if (isset($_POST['uid']) && $_POST['uid'] != "")
{
$uid=$_POST['uid'];
}
if (isset($_POST['email']) && $_POST['email'] != "")
{
$email=$_POST['email'];
}
if (isset($_POST['pwd']) && $_POST['pwd'] != "")
{
$pwd=$_POST['pwd'];
}
// inhaltliche Prüfung des Passwortes
switch($uid)
{
case "herbert.koenig":
$fixed_pwd="pcz123";
break;
case "PCZ.TGM":
case "pcz.tgm":
$fixed_pwd="schule";
break;
default:
echo("<b>Fehler:</b> unbekannter Benutzer");
return false;
}
if ($fixed_pwd != $pwd)
{
echo("<b>Fehler:</b> Passwort falsch");
return false;
}
// Gutfall, alles OK
// Parameter für die Rückgabe und Rückgabewert setzen
$p_user=$uid;
$p_email=$email;
$p_pwd=$pwd;
return true;
}
function check_login_switch(&$p_user,&$p_email,&$p_pwd)
{
//Defaultbelegung der lokalen Variablen
$uid="";
$email="";
$pwd="";
$fixed_pwd="";
//Regular Expression für das Eingabefeld Benutzername
//Regeln wie bei der TGM-Kennung
$re_uid="/^[a-zA-Z0-9]{2,}\.[a-zA-Z0-9]{2,}$/";
//Regular Expression für das Eingabefeld Passwort
//mindestens fünf Zeichen von a bis z,alle Zahlen und die Zeichen üöäß.:!§$%&/(){}[] sind erlaubt
$re_pwd="/^[a-zA-Z0-9üöäß\.:!§\$%&\/(){}\[\]]{5,}$/";
//Regular Expression für das optionale Eingabefeld email
//Regeln wie bei der TGM-Kennung
$re_email="/^[a-zA-Z0-9]{2,}\.[a-zA-Z0-9]{2,} tgm.ac.at$/";
if (isset($_POST['uid']) && $_POST['uid'] != "")
{
$uid=$_POST['uid'];
if (!preg_match($re_uid,$uid))
{
echo("<b>Fehler:</b> Benutzername syntaktisch fehlerhaft");
return false;
}
}
else
{
echo("<b>Fehler:</b> Benutzername fehlt");
return false;
}
if (isset($_POST['email']) && $_POST['email'] != "")
{
$email=$_POST['email'];
if (!preg_match($re_email,$email))
{
echo("<b>Fehler:</b> E-Mail syntaktisch fehlerhaft");
return false;
}
}
if (isset($_POST['pwd']) && $_POST['pwd'] != "")
{
$pwd=$_POST['pwd'];
if (!preg_match($re_pwd,$pwd))
{
echo("<b>Fehler:</b> Passwort syntaktisch fehlerhaft");
return false;
}
}
else
{
echo ("<b>Fehler:</b> Passwort fehlt");
return false;
}
// inhaltliche Prüfung des Passwortes
switch($uid)
{
case "herbert.koenig":
$fixed_pwd="pcz123";
break;
case "PCZ.TGM":
case "pcz.tgm":
$fixed_pwd="schule";
break;
default:
echo("<b>Fehler:</b> unbekannter Benutzer");
return false;
}
if ($fixed_pwd != $pwd)
{
echo("<b>Fehler:</b> Passwort falsch");
return false;
}
// Gutfall, alles OK
// Parameter für die Rückgabe und Rückgabewert setzen
$p_user=$uid;
$p_email=$email;
$p_pwd=$pwd;
return true;
}
function set_mysession_mypath()
{
// absoluten Pfad des aktuellen Verzeichnisses ermitteln
$cwd=getcwd();
// Falls im Pfad ein Doppelpunkt vorhanden ist, dann ist es ein ...
if (strstr($cwd,":")) // Windows-Pfad und damit ein Windows-Rechner
{
ini_set('session.save_path','c:/temp'); //ev. für Windows erforderlich
ini_set('session.cookie_path','c:/temp'); //ev. für Windows erforderlich
}
else //andernfalls ist es ein Unix-Pfad und damit ein Unix-Rechner
{
//ini_set('session.cookie_path','/home/pcz'); // für Unix erforderlich
ini_set('session.cookie_path','/www.leiserberge.at'); // für Unix erforderlich
}
}
function set_mysession_data($user,$password)
{
session_start();
// aktuelle bzw. neue Session-ID ermitteln
$sid=session_id();
// Session-Variable erzeugen
$new_sid=session_id();
$_SESSION["ssid"]=$new_sid;
$_SESSION["suid"]=$user;
$_SESSION["spwd"]=$password;
// Gutfall, alles OK
return true;
}
function show_mysession_data()
{
echo("<b><br>Ihre Session-Daten lauten: </b><br>");
if (isset($_SESSION["ssid"])!="")
{
echo("<b>Session-ID:</b> ".$_SESSION["ssid"]."<br>");
}
if (isset($_SESSION["suid"])!="")
{
echo("<b>Benutzerkennung:</b> ".$_SESSION["suid"]."<br>");
}
if (isset($_SESSION["spwd"])!="")
{
echo("<b>Passwort:</b> ".$_SESSION["spwd"]."<br>");
}
}
function check_mysession_data()
{
session_start();
if (isset($_SESSION["ssid"])=="")
{
// keine Session vorhanden
return false;
}
if (session_id() != $_SESSION["ssid"])
{
// keine aktuell gültige Session vorhanden
return false;
}
// Gutfall, korrekte Session
return true;
}
function destroy_mysession()
{
session_start();
// Die drei persönlichen Session-Variablen werden zerstört
// eigentlich wegen nachfolgender Funktion session_destroy() nicht erforderlich
session_unset($_SESSION);
// die gesamte Session wird zerstört
if (session_destroy())
{
return true;
}
else
{
return false;
}
}
?>