PACW - Account creation page Problem

01/14/2012 01:01 Monti!#1
Hallo, ich versuche grade einwenig PACW so umschreiben, dass er die Accounts auch in meine Datenbank einfügt, er fügt es auch soweit ein, nur ich kann mich dann noch nicht einloggen, er verschlüsselt auch das passwort nicht, weiß jemand wie er es macht und man sich dann einloggen kann?
Code:
<?php
/*********************************************
*   PACW - Pingue Account Creation Website   *
*                 Version: 1.0               *
*            coded by Adam Viðarsson         *
*                                            *
*             http://thepingue.com           *
*                                            *
*********************************************/
	$dbcon = @mysql_connect($dbhost, $dbuser, $dbpass);
	if (!$dbcon)
	{
	  return show_error(mysql_error());
	}
	$dba = @mysql_select_db($dbaccs, $dbcon);
	if (!$dba)
	{
	  return show_error(mysql_error());
	}

$ip = $_SERVER['REMOTE_ADDR'];

if($multi_ip != 1) {
	$query = @mysql_query("SELECT * FROM account WHERE lastip = '$ip'") or die(mysql_error());
	if(mysql_num_rows($query) != 0) {
		return locked_error("You have already used this IP before to register an account.");
	} 
}

echo '<div id="acc">
<h2 align="center">Create an Account</h2><br /><form method="post">Account Name<br /><input type="text" name="accname" /><br /><br />Account Password<br /><input type="password" name="pword" /><br /><br />Retype your Password<br /><input type="password" name="pwordtwo" /><br /><br />E-mail Address (Use a valid E-mail)<br /><input type="text" name="accmail" /><br /><br /><input type="submit" value="" name="submit" /></form>
</div>';

if(isset($_POST['submit'])) {
  if(empty($_POST['accname']) || empty($_POST['pword']) || empty($_POST['pwordtwo']) || empty($_POST['accmail']))
    return show_error("Some fields were empty, please fill in all fields."); 

    if($_POST['pwordtwo'] != $_POST['pword']) return show_error("Your passwords did not match."); 
	if(!is_valid_email($_POST['accmail'])) return show_error("You must use a valid email");
	
    $query1 = @mysql_query("SELECT * FROM account WHERE username = '$_POST[accname]'") or die(mysql_error());
    if(mysql_num_rows($query1) != 0) return show_error("Username already exists in our database.");
    
    $query2 = @mysql_query("SELECT * FROM account WHERE email = '$_POST[accmail]'") or die(mysql_error());
    if(mysql_num_rows($query2) != 0) return show_error("E-mail already exists in our database.");
    
    $query3 = mysql_query("INSERT INTO account SET username = '$_POST[accname]', sha_pass_hash = '$_POST[pword]', email = '$_POST[accmail]'") or die(mysql_error());
    if (mysql_affected_rows($dbcon) <= 0) return show_error("Something went wrong, please try again. Account was not created!");

    echo '<div class="success"><span style="padding-left:35px;">Account successfully created!</span> <div class="s-img"></div></div><br />';
}

?>
mfG

#Push :)

Spaß ^^

neue bearbeitet
Code:
<?php
/*********************************************
*   PACW - Pingue Account Creation Website   *
*                 Version: 1.0               *
*            coded by Adam Viðarsson         *
*                                            *
*             http://thepingue.com           *
*                                            *
*********************************************/
	$dbcon = @mysql_connect($dbhost, $dbuser, $dbpass);
	if (!$dbcon)
	{
	  return show_error(mysql_error());
	}
	$dba = @mysql_select_db($dbaccs, $dbcon);
	if (!$dba)
	{
	  return show_error(mysql_error());
	}

$ip = $_SERVER['REMOTE_ADDR'];

if($multi_ip != 1) {
	$query = @mysql_query("SELECT * FROM account WHERE lastip = '$ip'") or die(mysql_error());
	if(mysql_num_rows($query) != 0) {
		return locked_error("You have already used this IP before to register an account.");
	} 
}

echo '<div id="acc">
<h2 align="center">Create an Account</h2><br /><form method="post">Account Name<br /><input type="text" name="accname" /><br /><br />Account Password<br /><input type="password" name="pword" /><br /><br />Retype your Password<br /><input type="password" name="pwordtwo" /><br /><br />E-mail Address (Use a valid E-mail)<br /><input type="text" name="accmail" /><br /><br /><input type="submit" value="" name="submit" /></form>
</div>';

if(isset($_POST['submit'])) {
  if(empty($_POST['accname']) || empty($_POST['pword']) || empty($_POST['pwordtwo']) || empty($_POST['accmail']))
    return show_error("Some fields were empty, please fill in all fields."); 

    if($_POST['pwordtwo'] != $_POST['pword']) return show_error("Your passwords did not match."); 
	if(!is_valid_email($_POST['accmail'])) return show_error("You must use a valid email");
	
    $query1 = @mysql_query("SELECT * FROM account WHERE username = '$_POST[accname]'") or die(mysql_error());
    if(mysql_num_rows($query1) != 0) return show_error("Username already exists in our database.");
    
    $query2 = @mysql_query("SELECT * FROM account WHERE email = '$_POST[accmail]'") or die(mysql_error());
    if(mysql_num_rows($query2) != 0) return show_error("E-mail already exists in our database.");
    
    $query3 = mysql_query("INSERT INTO account SET username = '$_POST[accname]', sha_pass_hash = md5('$_POST[pword]'), email = '$_POST[accmail]'") or die(mysql_error());
    if (mysql_affected_rows($dbcon) <= 0) return show_error("Something went wrong, please try again. Account was not created!");

    echo '<div class="success"><span style="padding-left:35px;">Account successfully created!</span> <div class="s-img"></div></div><br />';
}

?>
verschlüsselt jetzt in datenbank, aber man kann immer noch nicht einloggen, jemand ne Idee?
01/21/2012 19:24 Sarumon#2
Ich nicht.
Aber es gibt eine menge Tutorials für funktionierende ACC Creation Pages.
Geh einfach mal Googlen.

MfG Sarumon
01/22/2012 23:47 XoreYo#3
Kurze Frage:
Seit wann wird das Passwort in MD5 verschlüsselt?

Bei Trinity etc. ist es nämlich so:
$passwort = sha1(strtoupper($benutzer) . ":" . strtoupper($passwort));
$passwort = strtoupper($passwort);

Variablen musst du selber angleichen.
Aber Passwort wird normalerweise in SHA1 verschlüsselt.


€dit1:
Ok was heißt hier "Bei Trinity etc."... Bei Trinity ist das so.
Arcemu verwendet meines Wissen wieder eine andere Verschlüsselung und bei Mangos bin ich mir nicht sicher ob MD5 oder SHA1.
01/24/2012 15:27 Sarumon#4
Also mein Arcemu kann ich die Passwörter auslesen.
Und bei Mangos und Trinity brauch ich ne ACC Creation Page um einen Account überhaupt anlegen zu können. Und ja Mangos nutzt SHA1 z.m meiner xDDD

MfG Sarumon
01/30/2012 18:01 Monti!#5
Hat sich alles schon erledigt ;)
[Only registered and activated users can see links. Click Here To Register...]
ja, das mit sha1 war mit klar, habs auch getestet, man konnte sich nur nicht einloggen :) klappt aber jetzt

bitte ~~~Close~~~