kostenloser Webspace werbefrei: lima-city


Fehler beim anmelde script ?!

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    raff

    raff hat kostenlosen Webspace.

    Hi
    ich hab nen Anmeldescript gebastelt...
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
      <link rel="shortcut icon" type="image/x-icon" href="Bilder/link-icon.png" width="32px" height="32px" />
      <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
      <title>DarkFighter</title>
      <STYLE type="text/css">
    
      </STYLE>
    </head>
    <body id=body>
    <ul id=Box>
    <img src="Bilder/Balken2.jpg" style="width:256px; height:32px; position:absolute; left:0px;">
    <?php if(!isset($_POST['submit'])) { ?>
    <form action="<?php $PHP_SELF ?>" method="post">
      <table style="position:absolute; top:45px; left:1px; color:#9d9d9d;">
          <tr>
            <td>Benutzername*</td>
            <td><input name="username" type="text" class="text"></td>
          </tr>
          <tr>
            <td>Passwort*</td>
            <td><input name="password" type="password" class="text"></td>
          </tr>
          <tr>
            <td>Passwort wiederholen*</td>
            <td><input name="password2" type="password" class="text"></td>
          </tr>
          <tr>
            <td>E-Mail*</td>
            <td><input name="mail" type="text" class="text"></td>
          </tr>
          <tr>
            <td>ICQ</td>
            <td><input name="icq" type="text" class="text"></td>
          </tr>
          <tr>
            <td>MSN</td>
            <td><input name="MSN" type="text" class="text"></td>
          </tr>
          <tr>
            <td><input name="submit" value="anlegen" class="button" type="submit"></td>
          </tr>
      </table>
    </form>
    <br>
    <?php    
    }elseif(!isset($_POST['username']) || $_POST['username'] == ""){
       echo '<p id="Error">Bitte gib noch einen Username ein!<br><a href="anmelden.php">Zur&uuml;ck</a></p>';
    }elseif(!isset($_POST['mail']) || $_POST['mail'] == ""){
       echo '<p id="Error">Bitte Gib eine E-Mail Adresse ein.<br><a href="anmelden.php">Zur&uuml;ck</a></p>';
    }elseif(!isset($_POST['password']) || $_POST['password'] == "") {
       echo '<p id="Error">Gib bitte ein Passwort ein.<br><a href="anmelden.php">Zur&uuml;ck</a></p>';
    }elseif($_POST['password'] != $_POST['password2']) {
       echo '<p id="Error">Die Passw&ouml;ter stimmen nicht &uuml;berein.<br><a href="anmelden.php">Zur&uuml;ck</a></p>';
    }else{
    $username = $_POST['username'];
    $icq = $_POST['icq'];
    $MSN = $_POST['MSN'];
    $pass = $_POST['password2'];
    $Mail = $_POST['mail'];
    
    $Member = @mysql_query("SELECT * FROM Member WHERE toribashname = '$username'");
    if (mysql_num_rows($Member) < 1) {
       echo '<p id="Error">Du bist Leider kein Mitglied in DarkFighter.<br><a href="?URL=anmelden.php">Zur&uuml;ck</a>';
    die;
    }else{
    if($insert = @mysql_query("INSERT INTO user SET nickname = '$username', passwort = '$pass', mail = '$Mail'")) {
      echo '<p id="Error">Der neue Benutzer wurde erfolgreich angelegt.<br><a href="index.php">zum Login</a></p>';
    }else{
      echo '<p id="Error">Beim Anlegen des neuen Benutzers trat leider ein Fehler auf.<br><a href="anmelden.php">Zur&uuml;ck</a></p>';
      } 
     } 
    }
    ?>
    <img src="Bilder/Balken1.jpg" style="width:257px; height:32px; position:absolute; left:0px; top:280;"> 
    </ul>
    </body>
    </html>


    und die mysql tabelle

    CREATE TABLE `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `lastconnect` varchar(50) NOT NULL,
      `nickname` varchar(50) NOT NULL,
      `passwort` varchar(50) NOT NULL,
      `mail` varchar(50) NOT NULL,
      `iCQ` varchar(12) NOT NULL,
      `msn` varchar(50) NOT NULL,
      `skype` varchar(50) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=latin1;


    so das man sich nur mit den bedingungen anmelden kann funktioniert soweit schon. aber es kommt immer die meldung
    "Beim Anlegen des neuen Benutzers trat leider ein Fehler auf."
    kann mir einer von euch helfen?
    ich geh ma davon aus das der fehler bei der tabelle liegt weil ich schon ne menge sachen ausprobiert hab.
    LG:raff

    Beitrag zuletzt geändert: 24.11.2009 21:51:51 von raff
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. c*****r

    Hast du denn dran gedacht ne Verbindung zur DB herzustellen?
  4. Autor dieses Themas

    raff

    raff hat kostenlosen Webspace.

    ja die steht^^
    $Member = @mysql_query("SELECT * FROM Member WHERE toribashname = '$username'");
    if (mysql_num_rows($Member) < 1) {
       echo '<p id="Error">Du bist Leider kein Mitglied in DarkFighter.<br><a href="?URL=anmelden.php">Zur&uuml;ck</a>';
    die;

    funktioniert ja auch
  5. Ersetz mal die Zeile

    $insert = @mysql_query("INSERT INTO user SET nickname = '$username', passwort = '$pass', mail = '$Mail'"))


    durch

    $insert= @mysql_query("INSERT INTO user (nickname,passwort,mail) VALUES ('".$username."','".$pass."','".$Mail."')")


    Könnte sein, dass es daran liegt.

    Beitrag zuletzt geändert: 24.11.2009 21:59:08 von alphara
  6. Autor dieses Themas

    raff

    raff hat kostenlosen Webspace.

    danke für die schnelle antwort aber geht leider auch nich :wazzup:
  7. Was ich verwirrend finde, ist das $insert=@mysql.... . Hat das irgend einen Sinn, das so zu machen? Sonst lass das insert weg und schreib nur den mysql_query in die if-Verzweigung, also if (@mysql....).

    Nebenbei:
    raff schrieb: ja die steht^^
    $Member = @mysql_query("SELECT * FROM Member WHERE toribashname = '$username'");
    if (mysql_num_rows($Member) &lt; 1) {
       echo '&lt;p id="Error"&gt;Du bist Leider kein Mitglied in DarkFighter.&lt;br&gt;&lt;a href="?URL=anmelden.php"&gt;Zur&amp;uuml;ck&lt;/a&gt;';
    die;

    funktioniert ja auch


    Das funktioniert auch, wenn die Verbindung nicht steht. Member ist dann einfach leer und demnach ist num_rows auch <1...

    Beitrag zuletzt geändert: 24.11.2009 22:13:03 von alphara
  8. Autor dieses Themas

    raff

    raff hat kostenlosen Webspace.

    leider auch nicht )= was ich total koisch finde ist das ich das so schon auf ner andern seite benutzt hab und da hats funktioniert deswegen glaub ich echt das iwas mit der tabelle nicht stimmt
    alphara schrieb: Was ich verwirrend finde, ist das $insert=@mysql.... . Hat das irgend einen Sinn, das so zu machen? Sonst lass das insert weg und schreib nur den mysql_query in die if-Verzweigung, also if (@mysql....).

    Nebenbei:
    raff schrieb: ja die steht^^
    $Member = @mysql_query("SELECT * FROM Member WHERE toribashname = '$username'");
    if (mysql_num_rows($Member) &amp;lt; 1) {
       echo '&amp;lt;p id="Error"&amp;gt;Du bist Leider kein Mitglied in DarkFighter.&amp;lt;br&amp;gt;&amp;lt;a href="?URL=anmelden.php"&amp;gt;Zur&amp;amp;uuml;ck&amp;lt;/a&amp;gt;';
    die;

    funktioniert ja auch


    Das funktioniert auch, wenn die Verbindung nicht steht. Member ist dann einfach leer und demnach ist num_rows auch &lt;1...

    ja ich weiß aber da soll geprüft werden ob man zu den leuten gehört die sich auf der seite anmelden dürfen und wenn man nen falschen namen eingibt dann bekommt man eine fehlermeldung.

    Beitrag zuletzt geändert: 24.11.2009 22:15:37 von raff
  9. Eines kann man noch machen: lass mal das @ vor den msql_query wech und poste mal die Meldungen, die gebracht werden.
  10. Autor dieses Themas

    raff

    raff hat kostenlosen Webspace.

    dann bekomme ich auch nur die normale
    Beim Anlegen des neuen Benutzers trat leider ein Fehler auf.
    Zurück

    meldung
  11. Also, wenn ich den code teste, dann kommt bei mir immer der folgende Fehler zurück:


    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in test.php on line 64

    Das kann nur bedeuten, dass er keine Verbundung zur DB hat, weil anderfalls bekommt er keinen boolean sondern die resource.
    Bist du dir GANZ sicher irgendwo eine Verbindung zur Datenbank hergestellt zu haben?
  12. Autor dieses Themas

    raff

    raff hat kostenlosen Webspace.

    http://raff.lima-city.de/DarkFighter/anmelden.php
    die steht zu 100% die hab ich nur rausgenommen weil ich die ungerne poste...
    das einzige was sein kann ist das die tabelle nen error hat aber ich kenn mich mit mysql nich wirklich aus deswegen weiß ich nich ob das sein kann oder nich.
  13. Die Tabelle hat keinen error. Die läuft, wenn du sie tatsächlich so erstellt hast, wie du es gepostet hast, mit sicherheit. Das muss entweder an deinem Quelltext (und) oder an der Datenbankverbindung liegen. Sosehr ich mich aber auch bemühe, soetwas wie ein mysql_connect() finde ich da nirgends und includen lässt du auch nix, also wie zum **** kommunizierst du mit der Datenbank?
    Ich stell die Frage nochmal, in der Hoffnung, dass du mal ALLE @ entfernst und mal schaust, wass es für meldungen gibt und vlt den 2. query aus dem if nimms und mal so testest: BIST du SICHER, dass die Verbindung zur DB steht? Sonst vergleich den aktuellen Quelltext mal mit dem, aus dem du den Abschnitt hast und such mal nach mysql_connect oder mysqli_connect....

    €dit:
    nikic schrieb:
    Er sagt doch, er habe die Verbindung zum Schutz der Zugangsdaten entfernt...


    Sry, hatte das iwie missverstanden...

    Beitrag zuletzt geändert: 24.11.2009 22:58:39 von alphara
  14. Er sagt doch, er habe die Verbindung zum Schutz der Zugangsdaten entfernt...

    @Threadersteller: Alle @ entfernen und hinter die MySQL-Queries ein OR die(mysql_error());
  15. Autor dieses Themas

    raff

    raff hat kostenlosen Webspace.

    also wie muss der code dann aussehen?
    $Member = @mysql_query("SELECT * FROM Member WHERE toribashname = '$username'");OR die(mysql_error());   
    if (mysql_num_rows($Member) < 1) {
       echo '<p id="Error">Du bist Leider kein Mitglied in DarkFighter.<br><a href="?URL=anmelden.php">Zur&uuml;ck</a>';
    die;
    }else{
    if($insert = @mysql_query("INSERT INTO user SET nickname = '$username', passwort = '$pass', mail = '$Mail'")OR die(mysql_error()); ) {
      echo '<p id="Error">Der neue Benutzer wurde erfolgreich angelegt.<br><a href="index.php">zum Login</a></p>';
    }else{
      echo '<p id="Error">Beim Anlegen des neuen Benutzers trat leider ein Fehler auf.<br><a href="anmelden.php">Zur&uuml;ck</a></p>';
      } 
     } 
    }
    ?>

    so?
    wenn ja dann bekomm ich den fehler:
    Parse error: syntax error, unexpected T_LOGICAL_OR in /home/webpages/lima-city/raff/html/DarkFighter/anmelden.php on line 116

    was sich für mich nich unbedingt nach nem mysql error anhört.
  16. So:
    $Member = mysql_query("SELECT * FROM Member WHERE toribashname = '$username'") OR die(mysql_error());   
    if (mysql_num_rows($Member) < 1) {
       echo '<p id="Error">Du bist Leider kein Mitglied in DarkFighter.<br><a href="?URL=anmelden.php">Zur&uuml;ck</a>';
    die;
    }else{
    $insert = mysql_query("INSERT INTO user SET nickname = '$username', passwort = '$pass', mail = '$Mail'") OR die(mysql_error());
    if($insert) {
      echo '<p id="Error">Der neue Benutzer wurde erfolgreich angelegt.<br><a href="index.php">zum Login</a></p>';
    }else{
      echo '<p id="Error">Beim Anlegen des neuen Benutzers trat leider ein Fehler auf.<br><a href="anmelden.php">Zur&uuml;ck</a></p>';
      } 
     } 
    }
    ?>
  17. Autor dieses Themas

    raff

    raff hat kostenlosen Webspace.

    ahhh sehr gut danke
    da hab ich dann die meldung bekommen das die tabelle user nicht existiert. (ein dummer fehler die tabelle heißt User und nicht user^^)
    naja gut danke an alle für die schnelle hilfe
  18. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!