• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP Anmelde-skript insertet nicht in die DB

Status
Für weitere Antworten geschlossen.

xabyt

Neues Mitglied
Hallo,
ich habe ein Problem mit einem PHP-skript. Das Anmeldungs-skript meiner geplanten Seite möchte nicht funktionieren. hier ist es: www.xabyt.de/Project_gotham_green/index2.php?seite=anmeldung
Das Problem ist, das es bei der "if $num>0"-abfrage immer in den else-zweig springt, obwohl ich alle datenbanktechnischendaten richtig eingegeben habe.
Das PHP-Skript:
PHP:
<?php
if (sha1($_POST[****]) == $_SESSION['security_*****'])
{
      mysql_connect("******","*****","*****");
      mysql_select_db("usr_web229_3");
      $sqlab = "insert into user";
      $sqlab .= "(nickname, passwort, wohnort, vorname, nachname, e-mail, land, straße, postleitzahl, geschlecht, alter ) values ";
      $sqlab .= "('$nickname', 'SHA1($passwort)', '$wohnort', '$vorname', '$nachname',  '$email',  '$land',  '$strasse',  '$plz', '$geschlecht', '$alter')";

      mysql_query($sqlab);

      $num = mysql_affected_rows();


 if ($num>0)
      {
echo "erfolgreich angemeldet";
      }
      else
      {
echo "Anmeldung fehlgeschlagen.";
      }
    }
else
{
echo "Du hast einen falschen sicherheitscode eingegeben.";
} 
?>

Das Formular:
HTML:
<form name="anm" action="anmeldung.php" method="post"
      onSubmit="return fcheck();">
<table width="60%" border="0" cellspacing="3">
  <tr>
    <td width="104">Nickname:</td>
    <td width="83"><input type="text" name="nickname" size="15" /></td>
  </tr>
  <tr>
    <td>Passwort:</td>
    <td><input type="text" name="passwort" size="15" /></td>
  </tr>
  <tr>
    <td>E-mail:</td>
    <td><input type="text" name="email" size="15" /></td>
  </tr>
  <tr>
    <td>Vorname:</td>
    <td><input type="text" name="vorname" size="15" /></td>
  </tr>
  <tr>
    <td>Nachname:</td>
    <td><input type="text" name="nachname" size="15" /></td>
  </tr>
  <tr>
    <td height="18">Wohnort:</td>
    <td><input type="text" name="wohnort" size="15" /></td>
  </tr>
  <tr>
    <td>Land:</td>
    <td><select name="land">
    <option name="deutsch">Deutschland</option>
    <option name="schweiz">Schweiz</option>
    <option name="osterreich">Österreich</option>
    <option name="sonstige">Sonstige</option>
    </select></td>
  </tr>
  <tr>
    <td>Stra&szlig;e:</td>
    <td><input type="text" name="strasse" size="15" /></td>
  </tr>
  <tr>
    <td>Postleitzahl:</td>
    <td><input type="text" name="plz" size="15" /></td>
  </tr>
  <tr>
    <td>Alter:</td>
    <td><select name="alter">
    <option name="6">6</option>
    <option name="7">7</option>
    <option name="8">8</option>
    <option name="9">9</option>
    <option name="10">10</option>
    <option name="11">11</option>
    <option name="12">12</option>
    <option name="13">13</option>
    <option name="14">14</option>
    <option name="15">15</option>
    <option name="16">16</option>
    <option name="17">17</option>
    <option name="18">18 und älter</option>
    
    </select></td>
  </tr>
  <tr>
    <td>Geschlecht:</td>
    <td><select name="geschlecht">
    <option name="m">männlich</option>
    <option name="w">weiblich</option>
    </select></td>
  </tr>
  <tr>
    <td> <img src="code.php" />Code in das Feld &uuml;bertragen:</td>
    <td><input type="text" name="code" size="15" /></td>
  </tr>
</table>
<br />
<br />
<input type='reset' value='zurücksetzen' >    &nbsp;<input type='submit' value='Anmelden' >
</form>
Es wird auch eine Java-skript funktion verwendet die im Quelltext der oben genannten URL einsehbar ist.
Bitte um Hilfe von Experten, auf anfrage gebe ich weitere daten preis. Danke.
 
@ Alti, ich kann dir nicht ganz folgen, ich verstehe nicht was du meinst.

@ Xraysolso: Ich danke, und hoffe das wird mein problem lösen.

Bei weiteren komplikationen melde ich mich wieder.

EDIT:
Auch mit $_POST variablen geht es nicht... es muss an etwas anderem liegen....
 
Zuletzt bearbeitet:
Beitreiben wir doch ein bischen debugging:

anstatt:

PHP:
mysql_connect("******","*****","*****");

wird:

PHP:
$verbindung = mysql_connect("******","*****","*****") OR die(mysql_error());

anstatt:

PHP:
$sqlab = "insert into user";
 
     $sqlab .= "(nickname, passwort, wohnort, vorname, nachname, e-mail, land, straße, postleitzahl, geschlecht, alter ) values ";
      $sqlab .= "('$nickname', 'SHA1($passwort)', '$wohnort', '$vorname', '$nachname',  '$email',  '$land',  '$strasse',  '$plz', '$geschlecht', '$alter')";
 
      mysql_query($sqlab);
 
    $num = mysql_affected_rows();

wird:

PHP:
$sqlab = "insert into user ";
     $sqlab .= "(nickname, passwort, wohnort, vorname, nachname, e-mail, land, straße, postleitzahl, geschlecht, alter ) values ";
      $sqlab .= "('$nickname', 'SHA1($passwort)', '$wohnort', '$vorname', '$nachname',  '$email',  '$land',  '$strasse',  '$plz', '$geschlecht', '$alter')";
 
      mysql_query($sqlab) OR die(mysql_error());
 
     $num = mysql_affected_rows() OR die(mysql_error());

nun man könnte jetzt die if abfrage bisschen umschreiben was sicherer wäre:

statt:

PHP:
      mysql_query($sqlab);
 
      $num = mysql_affected_rows();
 
 
if ($num>0)
      {

wird:

PHP:
   $result = mysql_query($sqlab);
 
if ($result)
      {

hoffe ich konnte dir helfen
 
Zuletzt bearbeitet von einem Moderator:
Status
Für weitere Antworten geschlossen.
Zurück
Oben