Hallo,
ich habe habe mich mal wieder mit PHP befasst um ein bisschen was dazu zu lernen und meinen Horizont zu erweitern.
Jetzt habe ich mir dieses Login Panel angeschaut.
Davon habe ich die Demo verwendet und ein bisschen verändert.
So das dies entstanden ist.
index.php
Alles anzeigen
functions.php
Alles anzeigen
connect.php
Alles anzeigen
registered.php
Alles anzeigen
table.sql
Alles anzeigen
Ich möchte aber nicht das ein Passwort per Email versendet wird sondern das es bei der Registrierung selber ausgewählt werden kann.
Bei der Registrierung soll es aber doppelt angeben werden und überprüft werden ob sie überein stimmen.
Ich hoffe mir kann jemand helfen.
ich habe habe mich mal wieder mit PHP befasst um ein bisschen was dazu zu lernen und meinen Horizont zu erweitern.
Jetzt habe ich mir dieses Login Panel angeschaut.
Davon habe ich die Demo verwendet und ein bisschen verändert.
So das dies entstanden ist.
index.php
PHP-Quellcode
- <?php
- define('INCLUDE_CHECK',true);
- //require 'connect.php';
- require 'functions.php';
- // Those two files can be included only if INCLUDE_CHECK is defined
- session_name('Login');
- // Starting the session
- session_set_cookie_params(2*7*24*60*60);
- // Making the cookie live for 2 weeks
- session_start();
- if($_SESSION['id'] && !isset($_COOKIE['Remember']) && !$_SESSION['rememberMe'])
- {
- // If you are logged in, but you don't have the Remember cookie (browser restart)
- // and you have not checked the rememberMe checkbox:
- $_SESSION = array();
- session_destroy();
- // Destroy the session
- }
- if(isset($_GET['logoff']))
- {
- $_SESSION = array();
- session_destroy();
- header("Location: index.php");
- exit;
- }
- if($_POST['submit']=='Login')
- {
- // Checking whether the Login form has been submitted
- $error = array();
- // Will hold our errors
- if(!$_POST['username'] || !$_POST['password'])
- $error[] = 'Alle Felder müssen ausgefüllt sein!';
- if(!count($error))
- {
- $_POST['username'] = mysql_real_escape_string($_POST['username']);
- $_POST['password'] = mysql_real_escape_string($_POST['password']);
- $_POST['rememberMe'] = (int)$_POST['rememberMe'];
- // Escaping all input data
- $row = mysql_fetch_assoc(mysql_query("SELECT id,user FROM members WHERE user='{$_POST['username']}' AND password='".md5($_POST['password'])."'"));
- if($row['user'])
- {
- // If everything is OK login
- $_SESSION['user']=$row['user'];
- $_SESSION['id'] = $row['id'];
- $_SESSION['rememberMe'] = $_POST['rememberMe'];
- // Store some data in the session
- setcookie('Remember',$_POST['rememberMe']);
- }
- else $error[]='Falscher Username oder Password!';
- }
- if($error)
- $_SESSION['msg']['login-error'] = implode('<br />',$error);
- // Save the error messages in the session
- header("Location: index.php");
- exit;
- }
- else if($_POST['submit']=='Register')
- {
- // If the Register form has been submitted
- $error = array();
- if(strlen($_POST['username'])<4 || strlen($_POST['username'])>32)
- {
- $error[]='Dein Benutzername ist zu kurz oder zu lang!!';
- }
- if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username']))
- {
- $error[]='Dein Benutzername enthält unerlaubte zeichen!';
- }
- if(!checkEmail($_POST['email']))
- {
- $error[]='E-Mail Adresse überprüfen!';
- }
- if(!count($error))
- {
- // If there are no errors
- $password = substr(md5($_SERVER['REMOTE_ADDR'].microtime().rand(1,100000)),0,6);
- // Generate a random password
- $_POST['email'] = mysql_real_escape_string($_POST['email']);
- $_POST['username'] = mysql_real_escape_string($_POST['username']);
- // Escape the input data
- mysql_query(" INSERT INTO members(user,password,email,regIP,date)
- VALUES(
- '".$_POST['username']."',
- '".md5($password)."',
- '".$_POST['email']."',
- '".$_SERVER['REMOTE_ADDR']."',
- NOW()
- )");
- if(mysql_affected_rows($link)==1)
- {
- send_mail( 'demo-test@tutorialzine.com',
- $_POST['email'],
- 'Registration System Demo - Your New Password',
- 'Your password is: '.$password);
- $_SESSION['msg']['reg-success']='We sent you an email with your new password!';
- }
- else $error[]='Der Benutzername existiert bereits!';
- }
- if(count($error))
- {
- $_SESSION['msg']['reg-error'] = implode('<br />',$error);
- }
- header("Location: index.php");
- exit;
- }
- $script = '';
- if($_SESSION['msg'])
- {
- // The script below shows the sliding panel on page load
- $script = '
- <script type="text/javascript">
- $(function(){
- $("div#panel").show();
- $("#toggle a").toggle();
- });
- </script>';
- }
- ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>A Cool Login System With PHP MySQL & jQuery | Tutorialzine demo</title>
- <link rel="stylesheet" type="text/css" href="style.css" media="screen" />
- <link rel="stylesheet" type="text/css" href="login_panel/css/slide.css" media="screen" />
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
- <!-- PNG FIX for IE6 -->
- <!-- http://24ways.org/2007/supersleight-transparent-png-in-ie6 -->
- <!--[if lte IE 6]>
- <script type="text/javascript" src="login_panel/js/pngfix/supersleight-min.js"></script>
- <![endif]-->
- <script src="login_panel/js/slide.js" type="text/javascript"></script>
- <?php echo $script; ?>
- </head>
- <body>
- <!-- Panel -->
- <div id="toppanel">
- <div id="panel">
- <div class="content clearfix">
- <div class="left">
- <h1>Fast-Execution</h1>
- <h2>A register/login solution</h2>
- <p class="grey">You are free to use this login and registration system in you sites!</p>
- <h2>A Big Thanks</h2>
- <p class="grey">This tutorial was built on top of <a href="http://web-kreation.com/index.php/tutorials/nice-clean-sliding-login-panel-built-with-jquery" title="Go to site">Web-Kreation</a>'s amazing sliding panel.</p>
- </div>
- <?php
- if(!$_SESSION['id']):
- ?>
- <div class="left">
- <!-- Login Form -->
- <form class="clearfix" action="" method="post">
- <h1>Login</h1>
- <?php
- if($_SESSION['msg']['login-error'])
- {
- echo '<div class="error">'.$_SESSION['msg']['login-error'].'</div>';
- unset($_SESSION['msg']['login-error']);
- }
- ?>
- <label class="grey" for="username">Benutzername:</label>
- <input class="field" type="text" name="username" id="username" value="" size="23" />
- <label class="grey" for="password">Passwort:</label>
- <input class="field" type="password" name="password" id="password" size="23" />
- <label><input name="rememberMe" id="rememberMe" type="checkbox" checked="checked" value="1" /> Eingeloggt bleiben</label>
- <div class="clear"></div>
- <input type="submit" name="submit" value="Login" class="bt_login" />
- </form>
- </div>
- <div class="left right">
- <!-- Register Form -->
- <form action="" method="post">
- <h1>Registrieren!</h1>
- <?php
- if($_SESSION['msg']['reg-error'])
- {
- echo '<div class="error">'.$_SESSION['msg']['reg-error'].'</div>';
- unset($_SESSION['msg']['reg-error']);
- }
- if($_SESSION['msg']['reg-success'])
- {
- echo '<div class="success">'.$_SESSION['msg']['reg-success'].'</div>';
- unset($_SESSION['msg']['reg-success']);
- }
- ?>
- <label class="grey" for="username">Benutzername:</label>
- <input class="field" type="text" name="username" id="username" value="" size="23" />
- <label class="grey" for="email">Email:</label>
- <input class="field" type="text" name="email" id="email" size="23" />
- <label>Ein Passwort wird per Email versendet</label>
- <input type="submit" name="submit" value="Register" class="bt_register" />
- </form>
- </div>
- <?php
- else:
- ?>
- <div class="left">
- <h1>Benutzer Panel</h1>
- <p>You can put member-only data here</p>
- <a href="registered.php">View a special member page</a>
- <p>- or -</p>
- <a href="?logoff">Log off</a>
- </div>
- <div class="left right">
- </div>
- <?php
- endif;
- ?>
- </div>
- </div> <!-- /login -->
- <!-- The tab on top -->
- <div class="tab">
- <ul class="login">
- <li class="left"> </li>
- <li>Hallo <?php echo $_SESSION['user'] ? $_SESSION['user'] : 'Gast';?>!</li>
- <li class="sep">|</li>
- <li id="toggle">
- <a id="open" class="open" href="#"><?php echo $_SESSION['id']?'Öffnen':'Panel Öffnen';?></a>
- <a id="close" style="display: none;" class="close" href="#">Panel Schließen</a>
- </li>
- <li class="right"> </li>
- </ul>
- </div> <!-- / top -->
- </div> <!--panel -->
- <div class="pageContent">
- <div id="main">
- <div class="container">
- <h1>A Cool Login System</h1>
- <h2>Easy registration management with PHP & jQuery</h2>
- </div>
- <div class="container">
- <p>This is a simple example site demonstrating the <a href="http://tutorialzine.com/2009/10/cool-login-system-php-jquery/">Cool Login System tutorial</a> on <strong>Tutorialzine</strong>. You can start by clicking the <strong>Log In | Register</strong> button above. After registration, an email will be sent to you with your new password.</p>
- <p><a href="registered.php" target="_blank">View a test page</a>, only accessible by <strong>registered users</strong>.</p>
- <p>The sliding jQuery panel, used in this example, was developed by <a href="http://web-kreation.com/index.php/tutorials/nice-clean-sliding-login-panel-built-with-jquery" title="Go to site">Web-Kreation</a>.</p>
- <p>You are free to build upon this code and use it in your own sites.</p>
- <div class="clear"></div>
- </div>
- <div class="container tutorial-info">
- This is a tutorialzine demo. View the <a href="http://tutorialzine.com/2009/10/cool-login-system-php-jquery/" target="_blank">original tutorial</a>, or download the <a href="demo.zip">source files</a>. </div>
- </div>
- </div>
- </body>
- </html>
functions.php
PHP-Quellcode
- <?php
- if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly');
- function checkEmail($str)
- {
- return preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $str);
- }
- function send_mail($from,$to,$subject,$body)
- {
- $headers = '';
- $headers .= "From: $from\n";
- $headers .= "Reply-to: $from\n";
- $headers .= "Return-Path: $from\n";
- $headers .= "Message-ID: <" . md5(uniqid(time())) . "@" . $_SERVER['SERVER_NAME'] . ">\n";
- $headers .= "MIME-Version: 1.0\n";
- $headers .= "Date: " . date('r', time()) . "\n";
- mail($to,$subject,$body,$headers);
- }
- ?>
connect.php
PHP-Quellcode
- <?php
- if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly');
- /* Database config */
- $db_host = 'localhost';
- $db_user = 'UserDataBase';
- $db_password = 'UserDataBase';
- $db_database = 'members';
- /* End config */
- $link = mysql_connect($db_host,$db_user,$db_password,$db_database) or die('Unable to establish a DB connection');
- mysql_select_db($db_database,$link);
- mysql_query("SET names UTF8");
- ?>
registered.php
PHP-Quellcode
- <?php
- session_name('Login');
- session_set_cookie_params(2*7*24*60*60);
- session_start();
- ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Registered Users</title>
- <link rel="stylesheet" type="text/css" href="style.css" media="screen" />
- </head>
- <body>
- <div id="main">
- <div class="container">
- <h1>Diese Seite ist nur für registrierte Benutzer</h1>
- <h2></h2>
- </div>
- <div class="container">
- <?php
- if($_SESSION['id'])
- echo '<h1>Hallo, '.$_SESSION['user'].'! Du bist eingeloggt!</h1>';
- else echo '<h1>Bitte, <a href="index.php">einloggen</a>! </h1>';
- ?>
- </div>
- </div>
- </body>
- </html>
table.sql
SQL-Abfrage
- --
- -- Table structure for table `tz_members`
- --
- CREATE TABLE `members` (
- `id` int(11) NOT NULL auto_increment,
- `user` varchar(32) collate utf8_unicode_ci NOT NULL default '',
- `password` varchar(32) collate utf8_unicode_ci NOT NULL default '',
- `email` varchar(255) collate utf8_unicode_ci NOT NULL default '',
- `regIP` varchar(15) collate utf8_unicode_ci NOT NULL default '',
- `date` datetime NOT NULL default '0000-00-00 00:00:00',
- PRIMARY KEY (`id`),
- UNIQUE KEY `user` (`user`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Ich möchte aber nicht das ein Passwort per Email versendet wird sondern das es bei der Registrierung selber ausgewählt werden kann.
Bei der Registrierung soll es aber doppelt angeben werden und überprüft werden ob sie überein stimmen.
Ich hoffe mir kann jemand helfen.