Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in

    Hallo ich habe ein Problem bei einem Browsergame

    PHP-Code:

    if(isset($_POST['regabschicken']))

    {
    $name = $_POST['username'];
    $email = $_POST['email'];
    $passwort = $_POST['passwort'];
    $passwort2 = $_POST['passwort2'];

    $pass = md5($passwort);

    if($name && $email && $passwort && $passwort2)
    {
    if($passwort==$passwort2)
    {

    include('connect.php');

    $abfrage = mysql_query("SELECT * FROM spieler WHERE email='$email'");

    $numrows = mysql_num_rows($abfrage);

    if($numrows == 0){
    mysql_query("INSERT INTO Spieler
    VALUES('','$name','$pass','$email','1','0')");

    Wenn ich mich anmelden oder registrieren will kommt das :Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in

    ich hoffe mir kann jemand helfen ^^

  • #2
    Du hast eine riesige Sicherheitslücke. Werte, die SQL-Abfragen eingefügt werden, müssen immer escaped werden! Außerdem sind die mysql_* Funktionen veraltet und werden bald aus PHP entfernt. Verwende stattdessen mysqli oder PDO.

    Zu deiner Frage: Bei dir fehlt die Fehlerbehandlung. Du prüfst überhaupt nicht, ob die Abfrage überhaupt erfolgreich war, sondern du gehst einfach davon aus. Würdest du den Fehler behandeln, würdest du auch die Fehlermeldung sehen, die dir MySQL versucht zu schicken.

    Kommentar


    • #3
      Versuch mal
      if(mysql_num_rows($abfrage) == 0 )
      {
      insert into spieler ( die jeweiligen Spalten in denen ein Wert eingetragen werden soll, getrennt durch "," )
      values('$name','$pass', usw.)
      }

      /*zb. insert onto spieler(name, passwort, blablub) values ('$name','$pass', $wert für blablub)*/

      aber wie der vorredner schon geschrieben hat, lass deine übergebenen werte vorher noch durch ein escape laufen

      zb. $name=mysql_real_escape_string($_POST["username"]);


      Hier mal eine Version wie ich sie in meinem Projekt untergebracht habe:

      erst die abfrage:
      $firmenabfrage = "select firmenname from user where firmenname = "."'". mysql_real_escape_string($_POST["firma"]) ."'";
      $abfrage = mysql_query($firmenabfrage);
      if(mysql_num_rows($abfrage) > 0)
      {
      echo "Dieser Firmenname ist schon vergeben</p>";
      print "<form name='zurück' action='reg_gew.html' method = 'post'>";
      print "<input type = 'submit' value='Zur Eingabe zurueck'/>";
      exit;
      }
      falls abfrage == 0 ist :
      else
      $wandel=$_POST["name"];
      $fl1=ucfirst($wandel);
      $wandel=$_POST["vname"];
      $fl2=ucfirst($wandel);
      $wandel=$_POST["strasse"];
      $fl3=ucfirst($wandel);
      $wandel=$_POST["wohnort"];
      $fl4=ucfirst($wandel);
      $wandel=$_POST["inhaber"];
      $fl5=ucfirst($wandel);
      $wandel=$_POST["firma"];
      $fl6=ucfirst($wandel);
      {
      $sql = "insert into user"
      . "(firmenname ,firmeninhaber, name, vorname, strasse, wohnort, telefon, fax, mail_adresse,homepage, passwort, passwort_original, twitter, google, facebook, plz, status, reg_datum) values"
      . "('". mysql_real_escape_string($fl6) ."', "
      . "'" . mysql_real_escape_string($fl5) . "', "
      . "'" . mysql_real_escape_string($fl1) . "', "
      . "'" . mysql_real_escape_string($fl2) . "', "
      . "'" . mysql_real_escape_string($fl3) . "', "
      . "'" . mysql_real_escape_string($fl4) . "', "
      . "'" . mysql_real_escape_string($_POST["tele"]) . "', "
      . "'" . mysql_real_escape_string($_POST["fax"]) . "', "
      . "'" . mysql_real_escape_string($_POST["mail_adresse"]) . "', "
      . "'" . mysql_real_escape_string($_POST["page"]) . "', "
      . "'" . $key . "' , "
      . "'" . mysql_real_escape_string($_POST["password"]) . "',"
      . "'" . mysql_real_escape_string($_POST["twitter"]) . "' , "
      . "'" . mysql_real_escape_string($_POST["google+"]) . "' , "
      . "'" . mysql_real_escape_string($_POST["facebook"]) . "' , "
      . "'" . mysql_real_escape_string($_POST["plz"]) . "',"
      . "'" . "gewerblich" . "' ,"
      . "'" . $reg_date . "')";
      mysql_query($sql);
      Zuletzt geändert von Nils81; 12.05.2014, 08:00.

      Kommentar

      Lädt...
      X