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

Login Skript funktioniert nur Teilweise -

ganter123

Neues Mitglied
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.

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' />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
<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 :P

gruss
ugly
 
Nach mehreren Stunden suchen, habe ich gemerkt, dass ich 2 x die gleiche Funktion included habe.

Jetzt steh ich bei folgendem Error bei er Login Funktion .. :(

Fatal error: Call to undefined function sanitizeString() in C:\Apache\xampp\htdocs\Robinson_Nest\rnlogin.php on line 7
 
Zurück
Oben