[PHP/MySQL]Warning

  • Hi. Ich habe dieses Warning bekommen.

    Zitat

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /users/acrio/www/Anmelden.php on line 35


    Hier sind mal die Zeilen.

    PHP
    $user = $_POST['user'];
                      $pw = $_POST['pw'];
                      if(isset($user)) {
                            $query = mysql_query("SELECT Username FROM user_info WHERE Username='$user'");
                            if(mysql_num_rows($query) > 0) { <!-- 35 -->
                                  echo "Test";
                            }
                      }


    Ich finde meinen Fehler allerdings nicht. habe auch schon den kompletten Code neu geschrieben. Wäre nett wenn ihr helfen könntet.

  • Aber auch wenn ich in beiden Feldern


    Was eingebe kommt dieses Warning.

  • Ersteinmal ist dein Formular nicht richtig.
    Im Form Tag fehlt eine action.


    PHP
    <form method="POST" id="Absenden" action="bla.php">


    Das heisst die "Infos" aus dem Formular werden nach dem Submit an die bla.php übergeben.
    Dann kannst du die verarbeiten.


    Der erste Fehler hat aber mit dem Formular nicht direkt was zutun.
    Das heisst wirklich einfach das der Query ein leeres Ergebnis hat.
    Scheinbar ist einfach in der Tablle nichts drin.

  • Vielleicht ist es nicht ganz so rüber gekommen.Das war nur ironisch von mir gemeint.


    Du solltest bei phpmyadmin genau das ausprobieren,was du auch in php ausprobierst.Du sollst eben nicht

    SQL
    SELECT Username FROM user_info WHERE Username=Username


    ausprobieren,sondern das Konkrete Beispiell:

    SQL
    SELECT Username FROM user_info WHERE Username='Acrio'


    Denn dann siehst du ja auch,ob es überhaupt ein Ergebnis gibt.Deshalb sollst du dir auch eben das Query über echo ausgeben lassen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wenn da nichts ausgegeben wird,dann kommt der Code erst gar nicht bis zu dem echo.


    PHP
    $user = $_POST['user'];
                      $pw = $_POST['pw'];
                      if(isset($user)) { // <- Hier geht es wohl nicht weiter
                            $query = mysql_query("SELECT Username FROM user_info WHERE Username='$user'");
                            if(mysql_num_rows($query) > 0) { <!-- 35 -->
                                  echo "Test";
                            }
                      }


    Vermutlich scheitert es an der isset Abfrage. Kannst ja mal über isset mit print_r() die Variable $_POST ausgeben lassen.Du musst natürlich auch wie Kagayushi bereits sagte als action bei der Form POST nutzen.

  • Aber wozu brauche ich die action="POST"? Das leitet mich doch nur auf die seite /POST weiter. Das wäre doch viel einfacher wenn ich die Daten direkt in dem selben Script überprüfe.Und print_r: Wenn es einen Text auf der Seite selber ausgibt, dann klappt es.

  • Aber wozu brauche ich die action="POST"? Das leitet mich doch nur auf die seite /POST weiter.[...]


    Du hast wohl nicht wirklich verstanden,wofür dieses action method="POST" steht.


    Mach dich vorher lieber über POST bzw GET schlau,bevor du die Formulare verarbeiten willst:
    http://www.w3schools.com/php/php_post.asp
    http://www.w3schools.com/php/php_forms.asp
    Mit action gibst du die Seite an,an die die Daten gesendet werden sollen. Mit method den Typ,wie die Daten übergeben werden sollen.


    Zitat

    Und print_r: Wenn es einen Text auf der Seite selber ausgibt, dann klappt es.


    Ist mir schon klar,dass print_r() funktioniert. Du solltest print_r() $_POST ausgeben lassen. Nur wird das eh nicht klappen,wenn die Daten nicht auch per POST an die Seite übergeben wurden.

  • Nein print_r($POST); gibt nichts aus. Aber wo ist denn jetzt mein Fehler? Ich weis da ich method="POST" machen muss weil man bei method="GET" keine Passwörter übergeben sollte.


    edit: Habe es jetzt mal so wie in meinem alten register system wo ich keine Fehler hatte. Aber das Warning bleibt.

    Einmal editiert, zuletzt von Acrio ()

  • Womit man sieht, username und passwort werden nicht korrekt übergeben, da musst du wohl n fehler drin haben.
    Zeig nochmal das formular und die sql abfrage, wie sie momentan ist


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Hier:


    Und:

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen