Problem mit Register Script

nchristoph

Erfahrenes Mitglied
Hallo zusammen.

Ich bin gerade dabei meine Seite etwas aufzumöbeln und neue funktionen bzw Features einzubauen. Leider hab ich beim ersten Teil schon kleinere Probleme.

Da ich grösseres Plane hab ich mich durchgerungen OOP zu verwenden.

Problem 1.

Es wird nichts in die Datenbank geschrieben obwohl die einzelen Variablen einen wert haben.

Problem 2.

Ich versuche, das Passwort zu "salzen":p.

Das Passwort wird gehasht, der hash wird gesalzen, das ganze nomma überprüft und dann in die db überschrieben.

Zu guter letzt verwende ich auch noch templates was für mich das ganze noch schwerer gestaltet, da ich damit überhaupt keine Erfahrung habe.

Hier ist mal der Code meiner Register.php

PHP:
<?php
include('class/class.template.lib.php');
require_once('class/config.lib.php');
require_once('class/class.sql.lib.php');
require_once('class/class.security.lib.php');

$tpl = new Template();
$tpl->TemplateParser("/bb/templates/");
$tpl->newFile("register.tpl");
$tpl->parseTemplate();  



$error = "";
$name = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$icq = $_POST['icq'];
$msn	= $_POST['msn'];
$aim =$_POST['aim'];
$yim = $_POST['yim'];
$skype = $_POST['skype'];

$hash = md5($password);  

$pass = new Security();
$pass->generateSaltedHash($hash,0);
$pass->checkSaltedHash( $password, $hash );


if(empty($name)) $error .= "<html><li> Name is missing </li></html>";
if(empty($email)) $error .= "<li> Email is missing </li>";
if(empty($password)) $error.= "<li> Password is missing </li>";

if(empty($error)){
	if(empty($state)){
	$state ="NULL";
	}
	$query = "INSERT INTO register "."(UserName , UserPass, UserMail, ICQ, AIM, YIM, MSN, Skype)"."VALUES "."('$name' , '$pass' , '$email' , '$icq' , '$aim' , '$yim', '$msn', '$skype')";	
	$dummy = mysql_query($query);	
	}
	
	if($error){
	echo ("<span class=\"Stil3\">".$error."</span>");
	}
	else {
	echo ("<html><p><span class=\"Stil3\">Your Request has been sent to the Siteadministrator. You will recieve your Details within the next 48 hours. Please click the Link to return to the Mainpage:</span> <a href=\"index.php\">Main Site</a> </p>
	</html>");
	}

	?>

und hier meiner register.tpl
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="register.php">
  <table width="13%" border="0" align="center">
    <tr>
	<td>	</td></tr>
	<tr>
	  <td colspan="2">Required Details </td>
    </tr>
    <tr>
      <td>Nickname:</td>
      <td>
      <input name="username" type="text" id="username" size="30" maxlength="255" /></td>
    </tr>
    <tr>
      <td>Password:</td>
      <td><input name="password" type="password" size="30" maxlength="255" /></td>
    </tr>
    <tr>
      <td>Email:</td>
      <td><input name="email" type="text" size="30" maxlength="255" /></td>
    </tr>
    <tr>
      <td colspan="2">Optional Details </td>
    </tr>
    <tr>
      <td>ICQ:</td>
      <td><input name="icq" type="text" size="30" maxlength="255" />     </td>
    </tr>
    <tr>
      <td>MSN:</td>
      <td><input name="msn" type="text" size="30" maxlength="255" /></td>
    </tr>
    <tr>
      <td>AIM:</td>
      <td><input name="aim" type="text" size="30" maxlength="255" /></td>
    </tr>
    <tr>
      <td>YIM:</td>
      <td><input name="yim" type="text" size="30" maxlength="255" /></td>
    </tr>
    <tr>
      <td>SKYPE:</td>
      <td><input name="skype" type="text" size="30" maxlength="255" /></td>
    </tr>
  </table>
  <table width="14%" border="0" align="center">
    <tr>
      <td><input type="submit" name="Submit" value="Send" /></td>
      <td>
        <input type="reset" name="Submit2" value="Reset" />
      </td>
    </tr>
  </table>
  <br />
</form>

</body>
</html>

Bitte um Verbesserung von Fehlern bzw. hinweise auf dieselbigen.
Sollte auch wer Sicherheitslücken in dem kleinen gemurkse sehen bitte draufhinweisen.

mfg
Christoph
 
Naja, OOP heisst ja nur Objektorientierte Programmierung (außer ich hab mal wieder irgendein Framework oder Sys verpasst), was uns also nicht viel sagt.

In deinem Quellcode sieht man, dass du 3 Klassen, eine Config und ein Template reinlädst.

Das ist ja alles OK, aber:

zu Problem 1:
Wie sieht die Klasse zur DB aus?
Stimmen die Variablen in den Config?

zu Problem 2:
Was ist dein Problem?
Was hat das Template damit zu tun?
 
Du hast vollkommen recht das OOP ObjektOrientierteProgrammierung heist. Und nein du hast kein Framework oder ähnliches verpasst.

Es gibt ja auch die möglichkeit das alles OHNE OOP zu machen.

Zu Frage 1:

Die Klasse DB habe ich aus dem Tutorial: OOP für Anfänger(oder so ähnlich) übernommen.

Die Werte stimmen eine verbindung zur DB wird hergestellt, das habe ich schon überprüft.

Das Template habe ich deswegen gepostet, weil ich schon öfter gelesen habe, das das Template auch verlangt wurde nachdem der PHP Code gezeigt wurde.

Habe ich vielleicht beim Formular einen fehler gemacht

Beim action aufruf mein ich.

mfg
Christoph
 

Neue Beiträge

Zurück