Register Problem

06/13/2012 19:22 Vollschrecker222#1
Hallo Elitepvpers,
Also wenn ich mich einloggen will
kommt immer diese Meldung:
[Only registered and activated users can see links. Click Here To Register...]
obwohl ich lastvote1,2... eingetragen hab...
odbc usw hab ich auch alles..
06/13/2012 20:34 Sedrika#2
Du hast in deiner Account_TBL die spalte "sprache", in deinem Insert Command, übergibst du allerdings keinen Wert für "sprache", diese ist zudem auf "Not Null" gesetzt, weswegen es nicht funktionieren wird.
Lösch "sprache" aus der Tabelle oder pack es in den Insert befehl mit rein.
06/15/2012 11:15 Vollschrecker222#3
Ich hab die Spalte "sprache" gelöscht trotzdem kommt der Fehler?
[Only registered and activated users can see links. Click Here To Register...]
Also Ich benutze die Place-of-Destiny...
06/15/2012 12:02 Marv!n#4
Es reicht nicht, die Spalte "sprache" einfach nur aus der Datenbank zu löschen. Wie Sedrika bereits richtig erkannt und benannt hat, ist in dem Insert-into-Query, die vom Registerskript ausgeführt wird, immer noch die Spalte "sprache" existent.
Ergo: Öffne die register.php, suche den Insert-into-Query und schaue, an welcher Stelle innerhalb des Querys die Spalte "sprache" sich befindet. Danach merkst du dir den entsprechenden Stellenwert und löscht im Value(...)-Abschnitt die entsprechende Stelle.

Da SQL für dich offenbar noch nahezu unerschlossenes Neuland ist, gebe ich dir ein Beispiel, damit das, was du nun zu tun hast, verständlicher wird: Die Spalte [schluessel] soll im folgenden Beispiel gelöscht werden.

PHP Code:
INSERT INTO [WEBSITE_DBF].[dbo].[VALIDATE_TBL] ([typ], [mail], [schluessel], [acc], [pass], [gf], [ga], [date]) VALUES(\'Registration\', \''.$mail.'\', \''.$schluessel.'\', \''.$acc.'\', \''.$md5pass.'\', \''.$gf.'\', \''.$ga.'\', \''.time().'\')'
Da [schluessel] nun an der dritten Stelle steht, ist der entsprechende Wert, der mit dem Ausführen des Skripts eintragen wird, $schluessel bzw. \''.$schluessel.'\', . Ergo sieht das Skript, nachdem man die Spalte aus dem Teil vor dem VALUES und den entsprechenden Wert nach dem VALUES gelöscht hat, folgendermaßen aus:

PHP Code:
INSERT INTO [WEBSITE_DBF].[dbo].[VALIDATE_TBL] ([typ], [mail], [acc], [pass], [gf], [ga], [date]) VALUES(\'Registration\', \''.$mail.'\', \''.$acc.'\', \''.$md5pass.'\', \''.$gf.'\', \''.$ga.'\', \''.time().'\')'
Du könntest/solltest nun dann noch im Skript nach der Variable suchen und diese ebenfalls löschen (wird wohl sowas wie $variablenname = @mssql_escape_string($_POST['sprache']); oder so sein), das ist aber optional, da das Skript trotzdem funktioniert.
06/15/2012 12:46 Vollschrecker222#5
bei mir ist net so eine spalte [schluessel] oder?
Quote:
<?php include('./inc/header.php'); ?>
<h1>Registration</h1>
<div class="site">
<?php
if(!isset($_POST['reg_username'])) $_POST['reg_username'] = '';
if(!isset($_POST['reg_email'])) $_POST['reg_email'] = '';

odbc_exec($mssql, 'USE [ACCOUNT_DBF]');
$checkacc = odbc_exec($mssql, 'SELECT COUNT(*) as count FROM [ACCOUNT_TBL] WHERE account=\''.mssql_escape_string($_POST['reg_username']).'\'');
$checkmail = odbc_exec($mssql, 'SELECT COUNT(*) as count FROM [ACCOUNT_TBL_DETAIL] WHERE email=\''.mssql_escape_string($_POST['reg_email']).'\'');
$errors = array();
if(empty($_POST['reg_username']) || empty($_POST['reg_password']) || empty($_POST['reg_confirmpw']) || empty($_POST['reg_email']))
$errors[] = 'Du musst alle Felder ausfüllen!';
if(!empty($_POST['reg_username']) && odbc_result($checkacc, 'count') > 0)
$errors[] = 'Der Benutzername existiert bereits!';
if(!empty($_POST['reg_email']) && odbc_result($checkmail, 'count') > 0)
$errors[] = 'Die E-Mail Adresse existiert bereits!';
if(!empty($_POST['reg_username']) && (strlen($_POST['reg_username']) > 10 || strlen($_POST['reg_username']) < 4))
$errors[] = 'Dein Benutzername muss 4 - 10 Zeichen enthalten!';
if(!empty($_POST['reg_password']) && (strlen($_POST['reg_password']) > 12 || strlen($_POST['reg_password']) < 6))
$errors[] = 'Dein Passwort muss 6 - 12 Zeichen enthalten!';
if((!empty($_POST['reg_password']) && !empty($_POST['reg_confirmpw'])) && $_POST['reg_password'] != $_POST['reg_confirmpw'])
$errors[] = 'Deine Passwort Wiederholung stimmt nicht!';
if(!empty($_POST['reg_email']) && !preg_match('/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/', $_POST['reg_email']))
$errors[] = 'Die E-Mail Adresse ist nicht valide';

if(isset($_POST['reg_submit'])) {
if(count($errors) > 0) {
echo '<div class="fail">';
foreach($errors as $error) {
echo $error.'<br/>';
}
echo '</div>';
} else {
odbc_exec($mssql, 'INSERT INTO [dbo].[ACCOUNT_TBL] (account, password, isuse, member, id_no1, id_no2, realname, reload, OldPassword, TempPassword, cash) VALUES (N\''.mssql_escape_string($_POST['reg_username']).'\', N\''.mssql_escape_string(md5($_CONFIG['pwdsalt'].$_POST['reg_password'])).'\', N\'T\', N\'A\', NULL, 0, N\'P\', NULL, 0, NULL, 0)');
odbc_exec($mssql, 'INSERT INTO [dbo].[ACCOUNT_TBL_DETAIL] (account, gamecode, tester, m_chLoginAuthority, regdate, BlockTime, EndTime, WebTime, isuse, secession, email) VALUES (N\''.mssql_escape_string($_POST['reg_username']).'\', N\'A000\', N\'2\', N\'F\', \''.mssql_escape_string(date('Ymd H:i:s')).'\', N\'20010101\', N\'20990101\', N\'20050101\', N\'O\', NULL, N\''.mssql_escape_string($_POST['reg_email']).'\')');
echo '<div class="success">Dein Account wurde erfolgreich erstellt!</div>';
}
}
?>
<form method="post">
<table>
<tr>
<td>Benutzername:</td>
<td><input type="text" name="reg_username" maxlength="10" /></td>
</tr>
<tr>
<td>Passwort:</td>
<td><input type="password" name="reg_password" maxlength="11" /></td>
</tr>
<tr>
<td>Wdh. Passwort:</td>
<td><input type="password" name="reg_confirmpw" /></td>
</tr>
<tr>
<td>E-Mail:</td>
<td><input type="text" name="reg_email" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="reg_submit" value="Account erstellen" /></td>
</tr>
</table>
</form>
</div>
<?php include('./inc/footer.php'); ?>
06/15/2012 15:01 .Shyo.#6
lösch nochmal die dbs (account,char,raking etc.) und mach nochmal die AIO-Database drauf dann müsste es gehen
06/15/2012 18:33 Marv!n#7
Alles klar, ich kannte dein Skript nicht. Der jetzige Fehler, der sich offenbart, behandelt allerdings nicht mehr die Zelle [sprache], oder?

Es gibt jedenfalls zwei Lösungen:
1) Lösche folgende Zellen aus der [ACCOUNT_TBL]:
- [age]
- [geheimfrage]
- [geheimantwort]
- [email]

2)
Ändere den INSERT-INTO-Query um, indem du neue Eingabefelder für Geheimfrage/-antwort und Alter setzt (kann dir das auf Wunsch gerne überarbeiten).
06/15/2012 20:21 Vollschrecker222#8
Quote:
Originally Posted by Xxl3lubbs View Post
Alles klar, ich kannte dein Skript nicht. Der jetzige Fehler, der sich offenbart, behandelt allerdings nicht mehr die Zelle [sprache], oder?

Es gibt jedenfalls zwei Lösungen:
1) Lösche folgende Zellen aus der [ACCOUNT_TBL]:
- [age]
- [geheimfrage]
- [geheimantwort]
- [email]

2)
Ändere den INSERT-INTO-Query um, indem du neue Eingabefelder für Geheimfrage/-antwort und Alter setzt (kann dir das auf Wunsch gerne überarbeiten).
1)Geht nicht:
[Only registered and activated users can see links. Click Here To Register...]

Quote:
Originally Posted by .Shyo. View Post
lösch nochmal die dbs (account,char,raking etc.) und mach nochmal die AIO-Database drauf dann müsste es gehen
hab ich auch schon probiert geht aber trotzdem net
06/15/2012 23:30 Marv!n#9
[Sprache] muss auch mit raus; habe mich auf deinen Screenshot bezogen und dachte, dass es auf dem Stand der Dinge gewesen wäre. :D
06/16/2012 06:08 Vollschrecker222#10
hast ein tnx geht jetzt :)