Kratos
|
User
|
|
registriert
|
07.09.2008
|
wohnt in
|
|
Beiträge
|
4
|
|
Hi Flitze! Bin gerade dabei PHP zu lernen und dabei auf deine Seite gestossen- echt spitze! Habe sofort mit dem Loginscript begonnen. Habe es aber etwas geändert, damit ich auch weng arbeiten muss und nicht alles kopiere. Nun habe ich aber ein kleines Problem. Und zwar muss ich den folgenden Code ganz oben einbringen?PHP:
<div id="apDiv2">
<form id="apDiv2" name="apDiv2" method="post" action="<?php $_SERVER['PHP_SELF'] ?>
Mein restlicher Code sieht wie folgt aus.PHP:
<style type="text/css">
<!--
#apDiv1 {
position:absolute;
left:228px;
top:121px;
width:407px;
height:223px;
z-index:1;
}
#apDiv2 {
position:absolute;
left:214px;
top:273px;
width:583px;
height:80px;
z-index:1;
}
.Stil1 {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
}
#apDiv3 {
position:absolute;
left:15px;
top:171px;
width:117px;
height:140px;
z-index:2;
}
#apDiv4 {
position:absolute;
left:15px;
top:369px;
width:162px;
height:143px;
z-index:3;
}
-->
</style>
<?php
error_reporting(E_ALL);
$MYSQL_HOST = 'localhost';
$MYSQL_USER = 'tztrztr';
$MYSQL_PASS = 'uttzutz';
$MYSQL_DATA = 'hguztu';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
session_start();
if(isset($_POST['submit']) AND $_POST['submit']=='Abschicken'){
// Fehlerarray anlegen
$errors = array();
// Prüfen, ob alle Formularfelder vorhanden sind
if(!isset($_POST['Vorname'],
$_POST['Nachname'],
$_POST['Mitgliedsname'],
$_POST['Passwort'],
$_POST['Email'],
$_POST['Geburtstag'],
$_POST['Wohnort']))
// Ein Element im Fehlerarray hinzufügen
$errors = "Bitte benutzen Sie das Formular aus dem Registrierungsbereich";
else{
// Prüfung der einzelnen obligatorischen Felder
// Alle Nicknames und Emailadressen zum Vergleich aus der Datenbank holen
$mitgliedsname = array();
$emails = array();
$sql = "SELECT
Mitgliedsname,
Email
FROM
user
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
while($row = mysql_fetch_assoc($result)){
$mitgliedsname[] = $row['Mitgliedsname'];
$emails[] = $row['Email'];
}
// Prüft, ob ein Nickname eingegeben wurde
if(trim($_POST['Mitgliedsname'])=='')
$errors[]= "Bitte geben Sie einen Mitgliedsname ein.";
// Prüft, ob der Nickname mindestens 3 Zeichen enthält
elseif(strlen(trim($_POST['Mitgliedsname'])) < 3)
$errors[]= "Ihr Name muss mindestens 3 Zeichen lang sein.";
// Prüft, ob der Nickname nur gültige Zeichen enthält
elseif(!preg_match('/^\w+$/', trim($_POST['Mitgliedsname'])))
$errors[]= "Benutzen Sie bitte nur alphanumerische Zeichen (Zahlen, Buchstaben und den Unterstrich).";
// Prüft, ob der Nickname bereits vergeben ist
elseif(in_array(trim($_POST['Mitgliedsname']), $nicknames))
$errors[]= "Dieser Mitgliedsname ist bereits vergeben.";
// Prüft, ob eine Email-Adresse eingegeben wurde
if(trim($_POST['Email'])=='')
$errors[]= "Bitte geben Sie Ihre Email-Adresse ein.";
// Prüft, ob die Email-Adresse gültig ist
elseif(!preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§', trim($_POST['Email'])))
$errors[]= "Ihre Email Adresse hat eine falsche Syntax.";
// Prüft, ob die Email-Adresse bereits vergeben ist
elseif(in_array(trim($_POST['Email']), $emails))
$errors[]= "Diese Email-Adresse ist bereits vergeben.";
// Prüft, ob ein Passwort eingegeben wurde
if(trim($_POST['Passwort'])=='')
$errors[]= "Bitte geben Sie Ihr Passwort ein.";
// Prüft, ob das Passwort mindestens 6 Zeichen enthält
elseif (strlen(trim($_POST['Passwort'])) < 6)
$errors[]= "Ihr Passwort muss mindestens 6 Zeichen lang sein.";
// Prüft, ob eine Passwortwiederholung eingegeben wurde
if(trim($_POST['Passwortwiederholung'])=='')
$errors[]= "Bitte wiederholen Sie Ihr Passwort.";
// Prüft, ob das Passwort und die Passwortwiederholung übereinstimmen
elseif (trim($_POST['Passwort']) != trim($_POST['Passwortwiederholung']))
$errors[]= "Ihre Passwortwiederholung war nicht korrekt.";
if(trim($_POST['Vorname'])=='')
$errors[]= "Bitte geben Sie Ihren Vornamen ein.";
if(trim($_POST['Nachname'])=='')
$errors[]= "Bitte geben Sie Ihren Nachnamen ein.";
if(trim($_POST['Geburtstag'])=='')
$errors[]= "Bitte geben Sie Ihren Geburtstag ein.";
if(trim($_POST['Wohnort'])=='')
$errors[]= "Bitte geben Sie Ihren Wohnort ein.";
}
// Prüft, ob Fehler aufgetreten sind
if(count($errors)){
echo "Ihr Account konnte nicht erstellt werden.<br>\n".
"<br>\n";
foreach($errors as $error)
echo $error."<br>\n";
echo "<br>\n".
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Registrierungsformular</a>\n";
}
else{
// Daten in die Datenbanktabelle einfügen
$sql = "INSERT INTO
User
(Vorname,
Nachname,
Mitgliedsname,
Passwort,
Email,
Wohnort,
Geburtstag;
Registrierungsdatum,
Wohnort
)
VALUES
('".mysql_real_escape_string(trim($_POST['Vorname']))."',
'".mysql_real_escape_string(trim($_POST['Nachname']))."',
'".mysql_real_escape_string(trim($_POST['Mitgliedsname']))."',
'".mysql_real_escape_string(trim($_POST['Email']))."',
'".md5(trim($_POST['Passwort']))."',
CURDATE(),
'".mysql_real_escape_string(trim($_POST['Wohnort']))."',
)
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
echo "Vielen Dank!\n<br>".
"Ihr Accout wurde erfolgreich erstellt.\n<br>".
"Sie können sich nun mit Ihren Daten einloggen.\n<br>".
"<a href=\"login.php\">Zum Login</a>\n";
}
}
?>
<div id="apDiv2">
<table width="98%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0" id="formular_reg">
<tr>
<td width="36%" height="9%" align="left" valign="middle" class="Stil1">Vorname</td>
<td width="1%" align="right" valign="middle" class="Stil1">:</td>
<td colspan="3" align="center" valign="middle" class="inhalt"><div align="left">
<input name="Vorname" type="text" id="Vorname" size="50" maxlength="30" />
</div></td>
<td width="2%" align="left" valign="middle" class="inhalt"> </td>
<td width="1%" class="inhalt"></td>
</tr>
<tr>
<td height="9%" align="left" valign="middle" class="Stil1">Nachname</td>
<td align="right" valign="middle" class="Stil1">:</td>
<td colspan="3" align="center" valign="middle" class="inhalt"><div align="left">
<input name="Nachname" type="text" id="Nachname" size="50" maxlength="30" />
</div></td>
<td class="inhalt"> </td>
<td class="inhalt"> </td>
</tr>
<tr>
<td height="9%" align="left" valign="middle" class="Stil1">Mitgliedsname</td>
<td align="right" valign="middle" class="Stil1">:</td>
<td colspan="3" align="center" valign="middle" class="inhalt"><div align="left">
<input name="Mitgliedsname" type="text" id="Mitgliedsname" size="50" maxlength="30" />
</div></td>
<td class="inhalt"> </td>
<td class="inhalt"> </td>
</tr>
<tr>
<td height="9%" align="left" valign="middle" class="Stil1">Passwort</td>
<td align="right" valign="middle" class="Stil1">:</td>
<td colspan="3" align="center" valign="middle" class="inhalt"><form id="form1" name="form1" method="post" action="">
<div align="left">
<input name="Passwort" type="password" id="Passwort" size="50" maxlength="32" />
</div>
</form>
</td>
<td class="inhalt"> </td>
<td class="inhalt"> </td>
</tr>
<tr>
<td height="12%" align="left" valign="middle" class="Stil1">Passwortwiederholung</td>
<td align="right" valign="middle" class="Stil1">:</td>
<td colspan="3" align="center" valign="middle" class="inhalt"><div align="left">
<input name="Passwortwiederholung" type="password" id="Passwortwiederholung" size="50" maxlength="32" />
</div></td>
<td class="inhalt"> </td>
<td class="inhalt"> </td>
</tr>
<tr>
<td height="9%" align="left" valign="middle" class="Stil1">Email</td>
<td align="right" valign="middle" class="Stil1">:</td>
<td colspan="3" align="center" valign="middle" class="inhalt"><input name="Email" type="text" id="Email" size="50" maxlength="70" /></td>
<td class="inhalt"> </td>
<td class="inhalt"> </td>
</tr>
<tr>
<td height="9%" align="left" valign="middle" class="Stil1">Geburtstag</td>
<td align="right" valign="middle" class="Stil1">:</td>
<td colspan="3" align="center" valign="middle" class="inhalt"><form id="form2" name="form2" method="post" action="">
<div align="left">
<select name="Tag" id="Tag">
<option>Tag</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<select name="Monat" id="Monat">
<option selected="selected">Monat</option>
<option>Januar</option>
<option>Februar</option>
</select>
<select name="Jahr" id="Jahr">
<option selected="selected">Jahr</option>
<option>2008</option>
<option>2007</option>
<option>2006</option>
</select>
</div>
</form> </td>
<td class="inhalt"> </td>
<td class="inhalt"> </td>
</tr>
<tr>
<td height="14%" align="left" valign="middle" class="inhalt"> </td>
<td align="right" valign="middle" class="inhalt">:</td>
<td colspan="3" align="center" valign="middle" class="inhalt"> </td>
<td class="inhalt"> </td>
<td class="inhalt"> </td>
</tr>
<tr>
<td height="5%" class="Stil1"><p>AGB</p>
</td>
<td align="right" valign="middle" class="Stil1">:</td>
<td colspan="4" class="inhalt"><input type="checkbox" name="checkbox" value="1" />
Ich stimme den AGB zu</td>
<?php
if(!isset($_POST['AGB']) OR $_POST['AGB']!= '1')
$errors[]= "Sie müssen die AGB akzeptieren.";
?>
<td class="inhalt"> </td>
</tr>
<tr>
<td height="3%" colspan="7" class="inhalt">.</td>
</tr>
<tr>
<td height="42" colspan="7" class="inhalt"> </td>
</tr>
<tr>
<td height="2%" class="inhalt"><input type="submit" name="Submit" value="Abschicken" /></td>
<td height="2%" class="inhalt"> </td>
<td width="14%" height="2%" class="inhalt"> </td>
<td width="1%" height="2%" class="inhalt"> </td>
<td width="45%" height="2%" class="inhalt"> </td>
<td height="2%" class="inhalt"> </td>
<td height="2%" class="inhalt"> </td>
</tr>
<tr>
<td height="8%" colspan="7" class="inhalt"> </td>
</tr>
</table>
</div>
<div id="apDiv3">
<p>Das ist ein Test.Halloooooooo</p>
<p>oerterterttiouiozu</p>
<p>piopiopi</p>
</div>
<div id="apDiv4">
<p>iouiouzuiouoizozuioiuozuio</p>
<p>ioppiopioupuiopiopioup</p>
<p>poipiipiopiopiopiopipip</p>
</div>
</form>
</div>
Muss ich etwas ändern? Und wie kann ich per PHP das Geburtstag abfragen?
Ich bedanke mich jetzt schon mal!
MFG Kratos
Dieser Beitrag wurde am 07.09.2008 um 19:31:53 Uhr von Kratos zum 2. Mal editiert.
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
hallo Kratos,
es wäre ganz hilfreich, wenn du beschreiben würdest, was du für ein Problem hast 
Ich tippe einfach mal darauf, dass so etwas wie "cannot modify header information, headers already sent" kommt. Sollte das der Fall sein, dann liegt das daran, dass das
session_start();
IMMER am Anfang eines Scriptes stehen muss. Bzw. VOR jeder HTML Ausgabe.
Wenn das nicht der Fehler ist, sag bescheid
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Zitat: 1. Wohin mit den den Quellcode ganz oben
Welcher Quellcode?
PHP:
<div id="apDiv2">
<form id="apDiv2" name="apDiv2" method="post" action="<?php $_SERVER['PHP_SELF'] ?>
Dieser?
Zitat:wenn ich denn Quellcode in den restlichen Code geschrieben habe, ist mir immer mein Layout im A.... gegangen.
Naja, was du mit deinem Layout machst kann ich nich wissen.. Aber ich schaue jetzt nich deinen Quellcode durch un suche nach falsch verschachtelten DIVs..
Zitat:2. Die Fragen ganz unten: Ist soweit alles ok? Und wie frage ich per PHP den Geburtstag ab?
Abfragen im Sinne von "Wie kann ein User sein Geburtsdatum eingeben"?
PHP:
<?php
$Monatsnamen = array(1 => 'Januar',
2 => 'Februar',
3 => 'März',
4 => 'April',
5 => 'Mai',
6 => 'Juni',
7 => 'Juli',
8 => 'August',
9 => 'September',
10 => 'Oktober',
11 => 'November',
12 => 'Dezember'
);
echo " <select name=\"Tag\">\n";
echo " <option value=\"0\">Tag</option>\n";
for($i=1;$i<=31;$i++){
echo "<option value=\"".$i."\">".$i.".</option>\n";
}
echo " </select>\n";
echo " <select name=\"Monat\">\n";
echo " <option value=\"0\">Monat</option>\n";
for($i=1;$i<=12;$i++){
echo "<option value=\"".$i."\">".$Monatsnamen[$i]."</option>\n";
}
echo " </select>\n";
echo " <select name=\"Jahr\">\n";
echo " <option value=\"0\">Jahr</option>\n";
for($i=2000;$i>=1900;$i--){
echo "<option value=\"".$i."\">".$i."</option>\n";
}
echo " </select>\n";
?>
Kontrolle der Eingaben kannst du mit checkdate() machen.
|