Probleme mit Registrierungs Script

rena1984

Grünschnabel
Hallo Allerseits.
Ich habe hier ein Script für eine Registrierung. Allerdings treten ein paar Fehler auf und ich kann nicht entdecken wo das Problem liegt. Ihr wisst ja mehr Augen sehen bekanntlich mehr darum poste ich hier.

Problem Nr.1: Das "form" wird so angezeigt, wie es soll, aber nach dem button steht der Rest des Scripts als Text in der Page, obwohl er ja ausgeführt werden sollte. Muss dazu sagen hab noch keine db erstellt und eigentlich nur nen db Fehler erwartet...

Problem Nr.2: Ist hier vielleicht nicht der optimale Platz aber ich frag trotzdem mal: Es ist ja Javascript enthalten und es sollte bei bestimmten Eingaben bei den "print"s eine Meldung kommen. Die kommen bei mir aber schon alle drei nacheinander, wenn ich die Seite aufmache. Woran liegt's? -> Habe keine Ahnung von Java.

Danke schon mal für die Hilfe und hier das Script:

PHP:
<?
$db_server = 'xxx';
$db_name = 'nutzer';
$db_user = 'xxx';
$db_passwort = 'xxx';
@mysql_connect($db_server,$db_user,$db_passwort);
mysql_select_db($db_name);

if(!isset($_POST['sub1']) || empty($_POST['sub1']))
{
 print('<form action="" method="post">
<table><tr>
            <td>Bandname:</td><td> <input type="text" name="bandname"></td></tr>
        <tr><td>Name:</td><td> <input type="text" name="nachname"></td></tr>
        <tr><td>Vorname:</td><td> <input type="text" name="vorname"></td></tr>
        <tr><td>E-Mail:</td><td> <input type="text" name="email"></td></tr>
        <tr><td>Loginname:</td><td> <input type="text" name="kennung"></td></tr>
        <tr><td>Passwort:</td><td> <input type="password" name="passwort"></td></tr>

        <input type="submit" name="sub1" value="Login"></table></form>');
}
else if($_POST['sub1'] == 'LOGIN')
{
 $check = mysql_db_query('nutzer','SELECT user FROM teilnehmer
                                   WHERE user="'.$_ POST['kennung'].'"');
 $anzeige = mysql_fetch_row($check);
 if($anzeige[0] == $_ POST['kennung'])
 {
  print('<script language="Javascript">
          alert("Die eingegebene Kennung ist bereits vorhanden");
         </script>');
 }
 else
 {
  if(!empty($_POST['passwort']) && !empty($_POST['login']))
  {
   print('<script language="Javascript">
           alert("Ihre Daten wurden übernommen");
          </script>');
   $pers = mysql_db_query("nutzer",'INSERT INTO teilnehmer
           (user, nachname, vorname, email, bandname) VALUES

           ("'.$_POST['kennung'].'","'.$_POST['nachname'].'","'.
               $_POST['vorname'].'","'.$_POST['email'].'","'.$_POST['bandname'].'")');

   $login = mysql_db_query("nutzer",'INSERT INTO login
           (username, passwort, registrierung) VALUES
           ("'.$_POST['kennung'].'","'.$_POST['passwort'].'",NOW())');
   }
   else
   {
    print('<script language="Javascript">
           alert("Ihre Daten konnten nicht übernommen werden");
          </script>');
   }
  }
 }
}
?>
]
 
Weiß denn keiner von euch Rat? Oder bin ich hier doch im falschen Forum? Wenn ka dann tuts mir leid aber bitte ignoriert mich trotzdem nicht... :confused:
 
Ohne Kommentar

PHP:
<? 
$db_server = 'xxx'; 
$db_name = 'nutzer'; 
$db_user = 'xxx'; 
$db_passwort = 'xxx'; 
@mysql_connect($db_server,$db_user,$db_passwort); 
mysql_select_db($db_name); 

if(!isset($_POST['sub1']) || empty($_POST['sub1'])) 
{ 
 print('<form action="" method="post"> 
<table><tr> 
            <td>Bandname:</td><td> <input type="text" name="bandname"></td></tr> 
        <tr><td>Name:</td><td> <input type="text" name="nachname"></td></tr> 
        <tr><td>Vorname:</td><td> <input type="text" name="vorname"></td></tr> 
        <tr><td>E-Mail:</td><td> <input type="text" name="email"></td></tr> 
        <tr><td>Loginname:</td><td> <input type="text" name="kennung"></td></tr> 
        <tr><td>Passwort:</td><td> <input type="password" name="passwort"></td></tr> 

        <input type="submit" name="sub1" value="Login"></table></form>'); 
} 
else if($_POST['sub1'] == 'LOGIN') 
{ 
 $check = mysql_db_query('nutzer','SELECT user FROM teilnehmer 
                                   WHERE user="'.$_POST['kennung'].'"'); 
 $anzeige = mysql_fetch_row($check); 
 if($anzeige[0] == $_POST['kennung']) 
 { 
  print('<script language="Javascript"> 
          alert("Die eingegebene Kennung ist bereits vorhanden"); 
         </script>'); 
 } 
 else 
 { 
  if(!empty($_POST['passwort']) && !empty($_POST['login'])) 
  { 
   print('<script language="Javascript"> 
           alert("Ihre Daten wurden übernommen"); 
          </script>'); 
   $pers = mysql_db_query("nutzer",'INSERT INTO teilnehmer 
           (user, nachname, vorname, email, bandname) VALUES 

           ("'.$_POST['kennung'].'","'.$_POST['nachname'].'","'. 
               $_POST['vorname'].'","'.$_POST['email'].'","'.$_POST['bandname'].'")'); 

   $login = mysql_db_query("nutzer",'INSERT INTO login 
           (username, passwort, registrierung) VALUES 
           ("'.$_POST['kennung'].'","'.$_POST['passwort'].'",NOW())'); 
   } 
   else 
   { 
    print('<script language="Javascript"> 
           alert("Ihre Daten konnten nicht übernommen werden"); 
          </script>'); 
   } 
  } 
 } 
?>

Mfg Splasch
 
Ok ich hatte ne Klammer unten zuviel aber das hat mein Problem leider nicht gelöst. Es wird nach wie vor der restliche Text nach dem Button im Browser ausgegeben und die Javameldungen kommen immernoch wenn ich die Seite aufmache.
Aber deswegen will ich eigentlich keinen Doppelpost im Java Forum machen. Bitte ich verzweifel bald...
 
Du hast mehr vergessen als nur 1 klammer. Kopier einfach den quelltext den ich dir gepostet hab.

Kleiner Tip schau mal wie du POST geschrieben hast.

Mfg Splasch
 
Hi Splash.
Also ich hab jetzt den Quelltext einfach kopiert und ja da haben sich wohl ein paar Leerzeichen eingeschlichen. Aber irgendwie tut sich da immernoch nix. Alles wie zuvor. Das kann doch eigentlich nicht sein oder?
 
Ich habs nicht getestet nur die Offensichtlichen fehler ausgebessert.
Welche fehler meldung bekomst du? Das script ist schlim geschrieben und total unsicher.
Wenn micht fragst würde ich vorher mal das ganze Script umschreiben.
Weiters solltes auf die Groß und kleinschreibung Achten!

PHP:
<? 
$db_server = 'xxx'; 
$db_name = 'nutzer'; 
$db_user = 'xxx'; 
$db_passwort = 'xxx'; 
@mysql_connect($db_server,$db_user,$db_passwort); 
mysql_select_db($db_name); 

if(!isset($_POST['sub1']) || empty($_POST['sub1'])) 
{ 
?>
<form action="<?=$_SERVER["PHP_SELF"] ;?>" method="post"> 
 <table>
  <tr> 
   <td>Bandname:</td><td> <input type="text" name="bandname"></td></tr> 
  <tr>
   <td>Name:</td><td> <input type="text" name="nachname"></td></tr> 
  <tr>
   <td>Vorname:</td><td> <input type="text" name="vorname"></td></tr> 
  <tr>
   <td>E-Mail:</td><td> <input type="text" name="email"></td></tr> 
  <tr>
   <td>Loginname:</td><td> <input type="text" name="kennung"></td></tr> 
  <tr>
   <td>Passwort:</td><td> <input type="password" name="passwort"></td></tr> 
  <input type="submit" name="sub1" value="Login">
 </table>
</form>
<?  
} 
else if($_POST['sub1'] == 'Login') 
{ 
 $check = mysql_db_query('nutzer','SELECT user FROM teilnehmer WHERE user="'.$_POST['kennung'].'"'); 
 $anzeige = mysql_fetch_row($check); 
 if($anzeige[0] == $_POST['kennung']) 
 { 
  print('<script language="Javascript"> 
          alert("Die eingegebene Kennung ist bereits vorhanden"); 
         </script>'); 
 } 
 else 
 { 
  if(!empty($_POST['passwort']) && !empty($_POST['Login'])) 
  { 
   print('<script language="Javascript"> 
           alert("Ihre Daten wurden übernommen"); 
          </script>'); 
   $pers = mysql_db_query("nutzer",'INSERT INTO teilnehmer 
           (user, nachname, vorname, email, bandname) VALUES 

           ("'.$_POST['kennung'].'","'.$_POST['nachname'].'","'. 
               $_POST['vorname'].'","'.$_POST['email'].'","'.$_POST['bandname'].'")'); 

   $login = mysql_db_query("nutzer",'INSERT INTO login 
           (username, passwort, registrierung) VALUES 
           ("'.$_POST['kennung'].'","'.$_POST['passwort'].'",NOW())'); 
   } 
   else 
   { 
    print('<script language="Javascript"> 
           alert("Ihre Daten konnten nicht übernommen werden"); 
          </script>'); 
   } 
  } 
 } 
 
?>

Mfg Splasch
 
Zuletzt bearbeitet:
Also einmal bekomm ich garkeine Fehlermeldung sondern die javameldungen die ja nur bei "keine Daten eingegeben" oder "Daten gespeichert" aufgehen sollen öffnen sich alle drei hintereinander sofort wenn ich die Seite aufmache und noch nicht mal was mit dem script gemacht habe. und der text der nach
"<input type="submit" name="sub1" value="Login"></table></form>');
}
else if($_POST['sub1'] == 'LOGIN"
kommt wird als Klartext in der seite angezeigt und nicht ausgeführt.

Wie meinst du das genau mit dem unsicher?

LG rena
 
Wie meinst du das genau mit dem unsicher?

Weils du keine Werte prüft die von Aussen kommen. So ist dann Sql injection,cross scripting unsw. möglich.
Im klar Text mit einer Zeile kann man deine Passwörter auselen oder sich ohne pw einlogen und vieles noch mehr.

Ich hab oben den Quellcode nochmals ausgebessert.Aber am besten were den Komplett umzuschreiben.

Mfg Splasch
 
Nagut dann werde ich mich mal nach was sichererem umschauen. Trotz deiner Bemühungen tut sich nämlich garnix und das is ja nicht sinn der Übung, wenns zudem eh Mist ist, der da steht.

Vielen Dank

LG Rena
 
Zurück