Hallo zusammen,
Soeben mache ich meine ersten Schritte in PHP und würde mich gerne auf ein Feedback bezüglich dem Aufbau und allgemeinen Verbesserungen freuen.
Die Datei stammt aus einem Buch, ich probiere sie jedoch momentan auf meine Bedürfnise anzupassen.
Meine Index-Datei (Startseite):
Da der Footer beim nicht registrierten, sowie beim registrierten Benutzer gleicht aussieht, wird er hier schon hier included.
rnHeader.php
Damit binde ich meine verschiedenen Dateien ein und sehe ob der Benutzer schon eingeloggt ist bzw. noch nicht.
Ist er eingeloggt kriegt er eine komplett andere Homepage (Design) als die normale Startseite für nicht eingeloggte Benutzer.
Die ausgelagerten Funktionen:
Login-Script:
Problem:
Soweit so gut - Es läuft alles und ich erhalte als nicht eingeloggter User ein Formular, mit welchem ich den Benutzername + Passwort eingeben kann.
Leider erhalte ich nach dem ich auf den Login Button drücke, eine Fehlermeldung:
In der Datenbank habe ich eine Tabelle rnmembers erstellt, welche drei Spalten hat.
--> ID + user + pass
Ich habe schon zwei Datensätze hinzugefügt:
--> ID + user + pass
--> 1 + test + test
--> 2 + test2 + test2
Leider erhalte ich trotzdem diesen Error.
Mir ist klar dass es sich um eine Menge handelt, aber ich bin als Anfänger wirklich für jeden Tipp dankbar. Jede noch so kleine Verbesserung welche man einfügen könnte .. :)
Ich wäre zudem auch Bereit ein gewisses Endgeld für eine Ansprechsperson anzubieten. Nicht dass ihr denkt ich halte das für Selbstverständlich
gruss
ugly
Soeben mache ich meine ersten Schritte in PHP und würde mich gerne auf ein Feedback bezüglich dem Aufbau und allgemeinen Verbesserungen freuen.
Die Datei stammt aus einem Buch, ich probiere sie jedoch momentan auf meine Bedürfnise anzupassen.
Meine Index-Datei (Startseite):
Da der Footer beim nicht registrierten, sowie beim registrierten Benutzer gleicht aussieht, wird er hier schon hier included.
PHP:
<?php // index.php
include_once 'rnheader.php';
include_once 'footer.php';
?>
rnHeader.php
Damit binde ich meine verschiedenen Dateien ein und sehe ob der Benutzer schon eingeloggt ist bzw. noch nicht.
Ist er eingeloggt kriegt er eine komplett andere Homepage (Design) als die normale Startseite für nicht eingeloggte Benutzer.
PHP:
<?php
// rnheader.php
include 'rnfunctions.php';
session_start();
if (isset($_SESSION['user']))
{
$user = $_SESSION['user'];
$loggedin = TRUE;
}
else $loggedin = FALSE;
echo "<html><head>";
if ($loggedin) echo " ($user)";
if ($loggedin)
{
// Doc Type + Titel + CSS einbinden
include("doc_title_css_mit_login.php");
// Hier beginnt der Header
include("header_mitlogin.php");
// Hier beginnt der Hauptcontent
include("content_mitlogin.php");
}
else
{
// Doc Type + CSS Einbindung
include("doc_title_css_ohne_login.php");
// hier beginnt der Header
include("header_ohnelogin.php");
//hier beginnt der Haupcontent
include("content_ohnelogin.php");
}
?>
Die ausgelagerten Funktionen:
PHP:
<?php // rnfunctions.php
$dbhost = 'localhost'; // Unlikely to require changing
$dbname = 'mydb'; // Modify these...
$dbuser = 'root'; // ...variables according
$dbpass = ''; // ...to your installation
$appname = "Position Log"; // ...and preference
mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());
function queryMysql($query)
{
$result = mysql_query($query) or die(mysql_error());
return $result;
}
function destroySession()
{
$_SESSION=array();
if (session_id() != "" || isset($_COOKIE[session_name()]))
setcookie(session_name(), '', time()-2592000, '/');
session_destroy();
}
function sanitizeString($var)
{
$var = strip_tags($var);
$var = htmlentities($var);
$var = stripslashes($var);
return mysql_real_escape_string($var);
}
function showProfile($user)
{
if (file_exists("$user.jpg"))
echo "<img src='$user.jpg' border='1' align='left' />";
$result = queryMysql("SELECT * FROM rnprofiles WHERE user='$user'");
if (mysql_num_rows($result))
{
$row = mysql_fetch_row($result);
echo stripslashes($row[1]) . "<br clear=left /><br />";
}
}
?>
Login-Script:
PHP:
<?php // rnlogin.php
include 'rnfunctions.php';
$error = $user = $pass = "";
if (isset($_POST['user']))
{
$user = sanitizeString($_POST['user']);
$pass = sanitizeString($_POST['pass']);
if ($user == "" || $pass == "")
{
$error = "Not all fields were entered<br />";
}
else
{
$query = "SELECT user,pass FROM rnmembers
WHERE user='$user' AND pass='$pass'";
if (mysql_num_rows(queryMysql($query)) == 0)
{
$error = "Username/Password invalid<br />";
}
else
{
$_SESSION['user'] = $user;
$_SESSION['pass'] = $pass;
die("You are now logged in. Please
<a href='rnmembers.php?view=$user'>click here</a>.");
}
}
}
echo <<<_END
<form method='post' action='rnlogin.php'>
Benutzer <input type='text' maxlength='16' name='user'
value='$user' />
Passwort <input type='password' maxlength='16' name='pass'
value='$pass' />
<input type='submit' value='Login' />
</form>
_END;
?>
Problem:
Soweit so gut - Es läuft alles und ich erhalte als nicht eingeloggter User ein Formular, mit welchem ich den Benutzername + Passwort eingeben kann.
Leider erhalte ich nach dem ich auf den Login Button drücke, eine Fehlermeldung:
Fatal error: Cannot redeclare queryMysql() (previously declared in C:\Apache\xampp\htdocs\Robinson_Nest\rnfunctions.php:11) in C:\Apache\xampp\htdocs\Robinson_Nest\rnfunctions.php on line 15
In der Datenbank habe ich eine Tabelle rnmembers erstellt, welche drei Spalten hat.
--> ID + user + pass
Ich habe schon zwei Datensätze hinzugefügt:
--> ID + user + pass
--> 1 + test + test
--> 2 + test2 + test2
Leider erhalte ich trotzdem diesen Error.
Mir ist klar dass es sich um eine Menge handelt, aber ich bin als Anfänger wirklich für jeden Tipp dankbar. Jede noch so kleine Verbesserung welche man einfügen könnte .. :)
Ich wäre zudem auch Bereit ein gewisses Endgeld für eine Ansprechsperson anzubieten. Nicht dass ihr denkt ich halte das für Selbstverständlich

gruss
ugly