Anmeldung ohne Felder zu füllen!

  • Themenstarter Themenstarter FortunaFan
  • Beginndatum Beginndatum
F

FortunaFan

Hallo,

ich habe ein kleins Login System was an sich perfekt funktioniert. Allerdings, wenn man man auf Anmelden geht ohne die Felder zu füllen, wird der Eintrag angenommen. Das heißt, er übernimmt denn leeren Eintrag in der DB. Wie kann ich überprüfen - bin nicht der hellste in PHP - ob was eingegeben wurden ist und wenn nicht, der Eintrag oder die Anmeldung auch nicht angenommen wird?

// Anmeldungsformular (anmelden.php)

PHP:
<html>
<head>
<title></title>
</head>
<LINK href="style.css" type=text/css rel=stylesheet>
<body text="#FFFFFF" bgcolor="#A60000">
<center>
<b>:: Information ::</b><br>
<br>
Du kannst in zwei Minuten auch Kostenlos Mitglied sein und alle Vorteile von FortunaFan.Com nutzen.<br>
<br>
<br>
<b>:: Registrieren ::</b><br>
<br>

<div align="center">
<table border="0" width="30%" bordercolor="#A60000" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#A60000">

<?php
if (isset ($_REQUEST["fehler"]))
{
echo "Die Zugangsdaten waren ungültig.";
}
?>
<form action="register.php" method="post">

<tr>
<td width="30%" align="left"><font size="1" face="Verdana" color="#FFFFFF">Vorname:</td>
<td width="30%" align="left"><input type="text" style="background-color: #860000; border: 1px solid #00000; font-family: Verdana; font-size: 9px; color: #C9C9C9;" name="Array[Vorname]" size="20"></td>
</tr>

<tr>
<td width="30%" align="left"><font size="1" face="Verdana" color="#FFFFFF">Nachname:</td>
<td width="30%" align="left"><input type="text" style="background-color: #860000; border: 1px solid #00000; font-family: Verdana; font-size: 9px; color: #C9C9C9;" name="Array[Nachname]" size="20"></td>
</tr>

<tr>
<td width="30%" align="left"><font size="1" face="Verdana" color="#FFFFFF"><br>Benutzername:</font></td>
<td width="30%" align="left"><br><input type="text" style="background-color: #860000; border: 1px solid #00000; font-family: Verdana; font-size: 9px; color: #C9C9C9;" name="Array[Nickname]" size="20"></td>
</tr>

<tr>
<td width="30%" align="left"><font size="1" face="Verdana" color="#FFFFFF">Passwort:</td>
<td width="30%" align="left"><input type="password" style="background-color: #860000; border: 1px solid #00000; font-family: Verdana; font-size: 9px; color: #C9C9C9;" name="Array[Kennwort]" size="20"></td>
</tr>

<tr>
<td width="30%" align="left"><font size="1" face="Verdana" color="#FFFFFF">E-Mail:</td>
<td width="30%" align="left"><input type="text" style="background-color: #860000; border: 1px solid #00000; font-family: Verdana; font-size: 9px; color: #C9C9C9;" name="Array[EMail]" size="20"></td>
</tr>

<tr>
<td width="30%" align="left"></td>
<td width="30%" align="left"><bR><input type="submit" style="background-color: #860000; border: 1px solid #00000; font-family: Verdana; font-size: 9px; color: #C9C9C9;" value="Registrieren"></td>
</tr>

</table>

<SCRIPT language=JavaScript1.2>
if (window.Event) // Only Netscape will have the CAPITAL E.
  document.captureEvents(Event.MOUSEUP); // catch the mouse up event
function nocontextmenu()  // this function only applies to IE4, ignored otherwise.
{
	event.cancelBubble = true
	event.returnValue = false;
	return false;
}
function norightclick(e)	// This function is used by all others
{
	if (window.Event)	// again, IE or NAV?
	{
		if (e.which == 2 || e.which == 3)
			return false;
	}
	else
		if (event.button == 2 || event.button == 3)
		{
			event.cancelBubble = true
			event.returnValue = false;
			return false;
		}
}
document.oncontextmenu = nocontextmenu;		// for IE5+
document.onmousedown = norightclick;		// for all others
</SCRIPT>


// Weiterverarbeitung (register.php)

PHP:
<html>
<head>
<title></title>
</head>
<body>

<?php

$host = "localhost";
$user = "...";
$password = "...";
$dbname = "...";
$tabelle ="benutzerdaten";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "INSERT into $tabelle values ('0', '$Array[Nickname]', '".md5($Array['Kennwort'])."', '$Array[EMail]', '$Array[Nachname]', '$Array[Vorname]')";

if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}
mysql_close ($dbverbindung);

?>

</body>
</html>


// Login (login.php)

PHP:
<?php
// Session starten
session_start ();

// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("localhost", "...", "...");
if (!mysql_select_db ("v076519", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}

$sql = "SELECT ".
"Id, Nickname, EMail, Nachname, Vorname ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname like '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql) or die (mysql_error());

if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);

// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nickname"] = $data["Nickname"];
$_SESSION["user_email"] = $data["EMail"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];

header ("Location: intern.php");
}
else
{
header ("Location: formular.php?fehler=1");
}
?>

Ich hoffe ihr könnt mir helfen.

Mfg, FortunaFan
 
Zuletzt bearbeitet von einem Moderator:
du kannst überprügen ob ein feld ausgefüllt ist in dem du das schreibst:

PHP:
if(!(empty($deinevariable)))    {
echo "Sie haben alles ausgefüllt.";
}
else
{
echo "Sie müssen alle Fleder ausfüllen.";
}

und wenn du mehrere überprüfen willst ob sie ausgefüllt sind machst du das so:

PHP:
if(!(empty($deinevariable)||empty($deinvariable1)||empty($deinvariable2)||empty($deinevariable3)))    {
echo "Sie haben alles ausgefüllt.";
}
else
{
echo "Sie müssen alle Fleder ausfüllen.";
}

Und dies kannst du x beliebig so weiterführen.

Gruß
 
Zuletzt bearbeitet:
powerplayer hat gesagt.:
du kannst überprügen ob ein feld ausgefüllt ist in dem du das schreibst:

PHP:
if(!(empty($deinevariable)))    {
echo "Sie haben alles ausgefüllt.";
}
else
{
echo "Sie müssen alle Fleder ausfüllen.";
}

und wenn du mehrere überprüfen willst ob sie ausgefüllt sind machst du das so:

PHP:
if(!(empty($deinevariable)||empty($deinvariable1)||empty($deinvariable2)||empty($deinevariable3)))    {
echo "Sie haben alles ausgefüllt.";
}
else
{
echo "Sie müssen alle Fleder ausfüllen.";
}

Und dies kannst du x beliebig so weiterführen.

Gruß

Vielen Vielen Dank!

//edit... naja jetzt guckt er ob was eingeben wird, aber wenn nicht... sagt er es zwar.. (bitte alle fedler ausfüllen), fügt es aber trotzdem bei!
 
Zuletzt bearbeitet von einem Moderator:
FortunaFan hat gesagt.:
Vielen Vielen Dank!

//edit... naja jetzt guckt er ob was eingeben wird, aber wenn nicht... sagt er es zwar.. (bitte alle fedler ausfüllen), fügt es aber trotzdem bei!

Schaut nun so aus...

register.php

PHP:
$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "INSERT into $tabelle values ('0', '$Array[Nickname]', '".md5($Array['Kennwort'])."', '$Array[EMail]', '$Array[Nachname]', '$Array[Vorname]')";

if(!(empty($Nickname)||empty($Kennwort)||empty($EMail)||empty($Nachname)||empty($Vorname)))    { 
echo "Sie haben alles ausgefüllt."; 
} 
else 
{ 
echo "Sie müssen alle Felder ausfüllen."; 
} 

if (!empty($_POST['Nickname'])) $name = $_POST['Kennwort'];

if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}
mysql_close ($dbverbindung);

?>
 
Erstens checkst Du nach Eintrag in die DB, was ja nicht wirklich Sinn macht.
Zweitens solltest Du Dir echt mal ein paar Grundlagen reinziehen, denn solche Sachen wie if-Abfragen, while- und for-Schleifen und sowas muss man einfach wissen.

PHP:
if(!(empty($Nickname)||empty($Kennwort)||empty($EMail)||empty($Nachname)||empty($Vorname)))    {
echo "Sie haben alles ausgefüllt.";
$dbverbindung = mysql_connect ($host, $user, $password);
$dbanfrage = "INSERT into $tabelle values ('0', '$Array[Nickname]', '".md5($Array['Kennwort'])."', '$Array[EMail]', '$Array[Nachname]', '$Array[Vorname]')";
if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}
mysql_close ($dbverbindung); 
}
else
{
echo "Sie müssen alle Felder ausfüllen.";
}
Damit sollte es gehen.
 
Zurück