Zum einen habe ich ein Login und Register Script gebastelt, wenn der Login nun fehlschlägt, weil beispielsweise das Passwort falsch ist wirft der mir den Echo auf einer neuen Seite aus, ich würde diesen aber gerne im selben Fenster haben. Hier wäre mein Loginscript:
Code:
<?php // Allgemeine Einstellungen define('access', true); $crapVarr = 'F@#&$^*FG^&F^#$&#&D$%%#$D%&$^%#&D#%&F$#'; include_once('includes/xinc.config.php'); include_once('lang/deDE.php'); // Navigation - Aktiven Link makieren & Titel ändern switch ($_GET['action']) { default: $_GET['title'] = $_LANG['home']; break; case 'home': $_GET['title'] = $_LANG['home']; $_GET['home'] = 'class="active"'; break; case 'premium': $_GET['title'] = $_LANG['premium']; $_GET['premium'] = 'class="active"'; break; case 'contact': $_GET['title'] = $_LANG['contact']; $_GET['contact'] = 'class="active"'; break; case 'login': $_GET['title'] = $_LANG['login']; break; case 'register': $_GET['title'] = $_LANG['register']; break; case 'activate': $_GET['title'] = $_LANG['activate']; break; } // Prüfen ob eine Session besteht $behave = 0; if(!isset($_SESSION["username"]) and !isset($_GET["action"])) { $behave = 0; } if ($_GET["action"] == "login") { // Eingabefelder escapen $username = mysql_escape_string($_POST["username"]); $password = md5($_POST["password"]); // Verbindung herstellen $connect = mysql_connect ($_CONFIG["svr_host"], $_CONFIG["svr_user"], $_CONFIG["svr_pwd"]) or die ($_LANG['cn_error']); mysql_select_db ($_CONFIG["svr_db"]) or die ($_LANG['db_error']); // Benutzername und Kennwort prüfen $control = 0; $sql = "SELECT * FROM accounts WHERE BINARY username = '$username' AND password = '$password' AND ban = '0'"; $result = mysql_query($sql); while($row = mysql_fetch_object($result)) { $control++; } // Verhalten nach dem prüfen if($control != 0) { $_SESSION["username"] = $username; $behave = 1; } else { $behave = 2; } } ?> <!DOCTYPE html> <html lang="de-de"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="author" content="<?php echo $_CONFIG['cdts_author']; ?>"> <meta name="publisher" content="<?php echo $_CONFIG['cdts_publisher']; ?>"> <meta name="keywords" content="<?php echo $_CONFIG['allg_tags']; ?>"> <meta name="description" content="<?php echo $_CONFIG['allg_desc']; ?>"> <title><?php echo $_CONFIG['allg_name'];?> - <?php echo $_GET['title']; ?></title> <link rel="shortcut icon" href="images/favicon.ico" type="image/ico"> <link rel="stylesheet" type="text/css" href="css/default.css"> <?php // Login war erfolgreich, Benutzer wird weitergeleitet if($behave == 1) { ?> <meta http-equiv="refresh" content="0; URL=index.php?action=home"> <?php } ?> </head> <body> <?php // Inhalt der Seite, vor und nach dem Login if($behave == 0) { ?> <div class="bar"> <a href="index.php?action=home"><img style="float: left;"src="images/logo/nav_logo.png"></a> <div class="nav"> <a <?php echo $_GET['home']; ?> href="index.php?action=home"><?php echo $_LANG['home']; ?></a> <a <?php echo $_GET['premium']; ?> href="index.php?action=premium"><?php echo $_LANG['premium']; ?></a> <a <?php echo $_GET['contact']; ?> href="index.php?action=contact"><?php echo $_LANG['contact']; ?></a> </div> <div class="signup"> <?php // Begrüßung in der Navigation if(isset($_SESSION['username'])) { echo $_LANG['welcome']; echo $_SESSION['username']; } else { echo '<a href="index.php?action=register"><button class="register">'; echo $_LANG['register']; echo '</button></a>'; ?> <a href="javascript:void(0)" onclick = "document.getElementById('login').style.display='block';document.getElementById('fade').style.display='block'"><?php echo $_LANG['login']; ?></a></div> <?php } ?> </div> </div> <img src="images/misc/new_design.png"> <div id="fade" class="login"></div> <div id="login" class="container"> <div class="form"> <div class="title"> <?php echo $_LANG['login']; ?> <span class="close"><a onclick="document.getElementById('login').style.display='none';document.getElementById('fade').style.display='none'" href="javascript:void(0)"><img src="images/misc/ui/logclose.png"></a></span> </div> <div class="input"> <form method="post" action="index.php?action=login"> <input type="text" name="username" placeholder="<?php echo $_LANG['username']; ?>" maxlength="20"><br> <input type="password" name="password" placeholder="<?php echo $_LANG['password']; ?>" maxlength="32"><br> <input class="submit" type="submit" value="<?php echo $_LANG['login']; ?>"> </form> <a href="#"><?php echo $_LANG['reset_pwd']; ?></a> </div> </div> </div> <div class="content"> <?php // Inhalt dynamisch in den Content laden switch ($_GET['action']) { default: include('functions/func.home.php'); break; case 'home': include('functions/func.home.php'); break; case 'premium': include('functions/func.premium.php'); break; case 'contact': include('functions/func.contact.php'); break; case 'shop': include('functions/func.shop.php'); break; case 'register': include('functions/func.register.php'); break; case 'activate': include('functions/func.activate.php'); break; } ?> </div> <div class="footer"><?php echo $_LANG['footer']; echo date(Y); ?></div> <?php } // Nachricht wenn der Login erfolgreich war if($behave == 1) { echo 'Login war erfolgreich'; } // Nachricht wenn der Login fehlgeschlagen ist if($behave == 2) { echo 'Login fehlgeschlagen'; } ?> </body> </html>
Zweites Problem ist ich habe ein Kontaktformular wo überprüft wird ob das Feld Email ein @ enthält, ist es nicht der Fall erscheint folgende Meldung: "Du hast keine korrekte Email eingegeben." Allerdings wird der Fehler schon beim öffnen des Formulars angezeigt, ich vermute irgendeine Schleife im Script aber komme auch da nicht wirklich weiter, hier wäre meine Kontakt Form:
Code:
<div class="contact"> <div class="left"> <form method="post" action="index.php?action=contact"> <input type="text" name="username" placeholder="Benutzername" maxlength="20"><br> <input type="text" name="email" placeholder="Email*" required="required" maxlength="30"><br> <input type="text" name="subject" placeholder="Betreff*" required="required" maxlength="50"><br> <textarea type="text" name="message" placeholder="Nachricht*" required maxlength="600"></textarea> <input class="submit" type="submit" value="Absenden"> </form> </div> <?php echo $_LANG['contact_descript1']; ?> <p><a href="mailto:<?php echo $_CONFIG['allg_email']; ?>"><?php echo $_CONFIG['allg_email']; ?></a></p> <p><?php echo $_LANG['contact_descript2']; ?></p> <p><?php echo $_LANG['contact_descript3']; ?></p><br> <?php // Eingabefelder escapen $username = ($_POST["username"]); $email = ($_POST["email"]); $subject = ($_POST["subject"]); $message = ($_POST["message"]); // Verbindung herstellen $connect = mysql_connect ($_CONFIG["svr_host"], $_CONFIG["svr_user"], $_CONFIG["svr_pwd"]) or die ($_LANG['cn_error']); mysql_select_db ($_CONFIG["svr_db"]) or die ($_LANG['db_error']); // Email Feld auf @ Zeichen prüfen if(strstr($_POST['email'], '@') === false) { echo $_LANG['email_error']; } else { // Nachricht des Benutzer in der Datenbank speichern $sql = "INSERT INTO contact (username, email, subject, message) VALUES ('$username', '$email', '$subject', '$message')"; $insert = mysql_query($sql); echo $_LANG['contact_success']; // Datum und Uhrzeit sichern, wann die Nachricht abgeschickt wurde $set_timestamp = "UPDATE contact Set stamp = now() WHERE subject = '$_POST[subject]'"; $update = mysql_query($set_timestamp); // Ip des Benutzer in der Datenbank sichern $ip = $_SERVER['REMOTE_ADDR']; $set_ip = "UPDATE contact Set ip = '$ip' WHERE subject = '$_POST[subject]'"; $update = mysql_query($set_ip); } mysql_close($connect); ?> </div>