Seite 1 von 2

Login problem

Verfasst: 30.08.2005 13:09
von witzigerkiller
Also, bei mir kommt immer dieser Fehler:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /mnt/kw2/01/139/00000003/htdocs/fight/Login.php on line 19
Fehler!!!


So, erstmal meine mysql tabellen aufstellung:

Code: Alles auswählen

-- Tabellenstruktur für Tabelle `User`
-- 

CREATE TABLE `User` (
  `id` tinyint(3) NOT NULL auto_increment,
  `Vorname` varchar(40) default NULL,
  `Mail` varchar(40) default NULL,
  `Passwort` varchar(40) default NULL,
  `Wrestler` varchar(40) default NULL,
  `Grosse` varchar(40) default NULL,
  `Gewicht` varchar(40) default NULL,
  `Typ` varchar(40) default NULL,
  `Herkunft` varchar(40) default NULL,
  `Wahrung` varchar(40) default NULL,
  `Status` varchar(40) default NULL,
  `Guthaben` varchar(40) default NULL,
  `Punkte` varchar(40) default NULL,
  PRIMARY KEY  (`id`)
)

dann der seiten code:

Code: Alles auswählen

1.<center><b><h5>Login</h5></b><br /><br />
2.
3.<?php
4.if (isset($_POST['login'])) {
5.@session_start();
6.$server="xxxxxx";
7.$benutzer="xxx";
8.$kennwort="xxxx";
9.$verbindung= mysql_connect($server, $benutzer, $kennwort);
10.mysql_select_db("DB121321");
11.
12.
13.$sql = "SELECT * 
14.FROM USER
15.WHERE `Wrestler` = '".$_POST['Loginname']."' AND `Passwort` = '".$_POST["Passwort"]."'  ";
16.
17.$abfrage = mysql_query($sql);
18.
19.if (mysql_num_rows($abfrage) == 1)
   {
   while ($ueberpruefen = mysql_fetch_assoc($abfrage))
      {
      if ($ueberpruefen['Wrestler'] == $_POST['Loginname'] && $ueberpruefen['Passwort'] == $_POST['Passwort'])
           {
           $_SESSION['Status'] = $ueberpruefen['Status'];
           $_SESSION['Userid'] = $ueberpruefen['id'];
           $_SESSION['Wrestler'] = $_POST['Loginname'];
           $_SESSION['Passwort'] = $_POST['Passwort'];
           $_SESSION['Userip'] = $REMOTE_ADDR;

           echo "Hallo <b>".$_SESSION['username']."</b>, danke f&uuml;r Deine Anmeldung.
           Wenn du innerhalb von 5 Sek nicht weitergeleitet wirst, klicke 
           <a Href=index.php?>HIER</a>";
           echo '<meta http-equiv="refresh" content="5; URL=index.php">';
           }
       }
   }
else
   {
   session_unset();
   echo "Fehler!!!";
   }
   }
?>

<form action="#" method="post">
<table>
 <tr>
  <td>Wrestler Name:<font size="1">(Login-Name)</font></td>
  <td><input type="text" name="Loginname" size="20" maxlength="40" /></td>
 </tr>
 <tr>
  <td>Passwort:</td>
  <td><input type="text" name="Passwort" size="20" maxlength="40" /></td>
 </tr>
 <tr>
  <td><input type="submit" name="login" value="Login!" /></td>
  <td align="right"><input type="reset" name="Loschen" value="Löschen" /></td>
 </tr>
</table>
</form>
</center>
hoffe mir kann einer helfen.

Verfasst: 30.08.2005 13:59
von Blutgerinsel
1. Suche Zeile 17
2. Ersetze mit

Code: Alles auswählen

$abfrage = mysql_query($sql) or die('SQL-ERM: '.mysql_error() );
SQL Error Meldung auf das SQL Statment herleiten und ggf. Fehler beheben....

BTW: Zeile 19 und 21 sind unlogisch....Du startest eine Schleife nur wenn exakt 1 Datensatz durch das SQL-Statment geliefert wird....

Entweder möchtest du nur anzeigen wenn > 0 Datensätze vorhanden sind oder aber nur einen Datensatz anzeigen.....Dann reicht ein $ueberpruefen = mysql_fetch_assoc($abfrage);

Verfasst: 30.08.2005 20:54
von witzigerkiller
also, ich habs neu versucht:

fehler:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /mnt/kw2/01/139/00000003/htdocs/fight/Login.php on line 14
Leider konnten wir Dich nicht einloggen!
Code:

Code: Alles auswählen

1.<center><b><h5>Login</h5></b><br /><br />
2.
3.<?php
4.$server= "xxx";
5.$benutzer= "xxxx";
6.$kennwort= "xxxx";
7.$verbindung= mysql_connect($server, $benutzer, $kennwort);
8.mysql_select_db("DB121321");
9.
i10.f (isset($_POST['Login'])) {
 11.$Vorhanden = "Select * From USER Where Wrestler = '".$_POST['Loginname']."' AND Passwort =
 12.              '".$_POST['Passwort']."'";
 13.mysql_query($Vorhanden);
14.  if (mysql_num_rows($Vorhanden) == "1") {
15.   while ($daten = mysql_fetch_assoc($Vorhanden)) {
16.    if ($daten['Wrestler'] == $_POST['Loginname'] && 
        $daten['Passwort'] == $_POST['Passwort']) {
      
        $_SESSION['Status'] = $daten['Status'];
        $_SESSION['ID'] = $daten['id'];
        $_SESSION['Wrestler'] = $daten['Wrestler'];
        $_SESSION['Passwort'] = $daten['Passwort'];
        $_SESSEION['IP'] = $REMOTE_ADDR;
        
       echo "Hallo <b>".$_SESSION['Wrestler']."</b>, danke f&uuml;r Deine Anmeldung.
           Wenn du innerhalb von 5 Sek nicht weitergeleitet wirst, klicke 
           <a Href='index.php'>HIER</a>";
                                                   }
                                        }
                           }
  else
   {
   SESSION_UNSET();
   echo "<font color='red'>Leider konnten wir Dich nicht einloggen!</font>";
   }
                           }
mysql_close($verbindung);
?>
<form action="#" method="post">
<table>
 <tr>
  <td>Wrestler Name:<font size="1">(Login-Name)</font></td>
  <td><input type="text" name="Loginname" size="20" maxlength="40" /></td>
 </tr>
 <tr>
  <td>Passwort:</td>
  <td><input type="password" name="Passwort" size="20" maxlength="40" /></td>
 </tr>
 <tr>
  <td><input type="submit" name="Login" value="Login!" /></td>
  <td align="right"><input type="reset" name="Loschen" value="Löschen" /></td>
 </tr>
</table>
</form>
</center>

Verfasst: 30.08.2005 22:46
von witzigerkiller
Fehlermeldung:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /mnt/kw2/01/139/00000003/htdocs/fight/Login.php on line 23
code:

Code: Alles auswählen

<center><b><h5>Login</h5></b><br /><br />

<?php 
$server= "xxxx"; 
$benutzer= "xxx"; 
$kennwort= "xxx"; 
$verbindung= mysql_connect($server, $benutzer, $kennwort); 
mysql_select_db("xxxxx"); 
 
if ( isset($_POST['Login']) ) 
{ 
     $fehler = FALSE; 
     $Vorhanden = 'SELECT * FROM User WHERE Wrestler = "' .$_POST['Loginname']. '"  
          AND Passwort = "' .$_POST['Passwort'] . '"'; 
 
     if ( !(mysql_query($Vorhanden)) ) 
     {  
          $fehler = TRUE; die('fehler'); 
     } 
 
     if ( !($fehler) ) 
     { 
          if (mysql_fetch_row($Vorhanden) == "1") 
          { 
               while ($daten = mysql_fetch_assoc($Vorhanden)) 
               { 
                    if ($daten['Wrestler'] == $_POST['Loginname'] && $daten['Passwort'] == $_POST['Passwort']) 
                    { 
                         $_SESSION['Status'] = $daten['Status']; 
                         $_SESSION['ID'] = $daten['id']; 
                         $_SESSION['Wrestler'] = $daten['Wrestler']; 
                         $_SESSION['Passwort'] = $daten['Passwort']; 
                         $_SESSEION['IP'] = $REMOTE_ADDR; 
          
                         echo "Hallo <b>".$_SESSION['Wrestler']."</b>, danke f&uuml;r Deine Anmeldung. 
                              Wenn du innerhalb von 5 Sek nicht weitergeleitet wirst, klicke  
                              <a Href='index.php'>HIER</a>"; 
                    } 
               } 
          } 
     } 
    else 
    { 
          SESSION_UNSET(); 
          echo "<font color='red'>Leider konnten wir Dich nicht einloggen!</font>"; 
     } 
} 
mysql_close($verbindung); 
 ?>

<form action="#" method="post">
<table>
 <tr>
  <td>Wrestler Name:<font size="1">(Login-Name)</font></td>
  <td><input type="text" name="Loginname" size="20" maxlength="40" /></td>
 </tr>
 <tr>
  <td>Passwort:</td>
  <td><input type="password" name="Passwort" size="20" maxlength="40" /></td>
 </tr>
 <tr>
  <td><input type="submit" name="Login" value="Login!" /></td>
  <td align="right"><input type="reset" name="Loschen" value="Löschen" /></td>
 </tr>
</table>
</form>
</center>

Verfasst: 31.08.2005 08:54
von StarWolf3000
Korrektur:

Code: Alles auswählen

<center><b><h5>Login</h5></b><br /><br /> 

<?php 
$server= "rdbms.strato.de"; 
$benutzer= "U121321"; 
$kennwort= "buhu"; 
$verbindung= mysql_connect($server, $benutzer, $kennwort); 
mysql_select_db("DB121321"); 
  
if ( isset($_POST['Login']) ) 
{ 
     $fehler = FALSE; 
     $Vorhanden = 'SELECT * FROM User WHERE Wrestler = "' .$_POST['Loginname']. '"  
          AND Passwort = "' .$_POST['Passwort'] . '"'; 
  
     $result = mysql_query($Vorhanden, $verbindung);
     if ( !$result ) 
     {  
          $fehler = TRUE; die('fehler'); 
     } 
  
     if ( !($fehler) ) 
     { 
          if (mysql_fetch_row($result) == "1") 
          { 
               while ($daten = mysql_fetch_assoc($result)) 
               { 
                    if ($daten['Wrestler'] == $_POST['Loginname'] && $daten['Passwort'] == $_POST['Passwort']) 
                    { 
                         $_SESSION['Status'] = $daten['Status']; 
                         $_SESSION['ID'] = $daten['id']; 
                         $_SESSION['Wrestler'] = $daten['Wrestler']; 
                         $_SESSION['Passwort'] = $daten['Passwort']; 
                         $_SESSEION['IP'] = $REMOTE_ADDR; 
          
                         echo "Hallo <b>".$_SESSION['Wrestler']."</b>, danke f&uuml;r Deine Anmeldung. 
                              Wenn du innerhalb von 5 Sek nicht weitergeleitet wirst, klicke  
                              <a Href='index.php'>HIER</a>"; 
                    } 
               } 
          } 
     } 
    else 
    { 
          SESSION_UNSET(); 
          echo "<font color='red'>Leider konnten wir Dich nicht einloggen!</font>"; 
     } 
} 
mysql_close($verbindung); 
 ?> 

<form action="#" method="post"> 
<table> 
 <tr> 
  <td>Wrestler Name:<font size="1">(Login-Name)</font></td> 
  <td><input type="text" name="Loginname" size="20" maxlength="40" /></td> 
 </tr> 
 <tr> 
  <td>Passwort:</td> 
  <td><input type="password" name="Passwort" size="20" maxlength="40" /></td> 
 </tr> 
 <tr> 
  <td><input type="submit" name="Login" value="Login!" /></td> 
  <td align="right"><input type="reset" name="Loschen" value="Löschen" /></td> 
 </tr> 
</table> 
</form> 
</center>

Verfasst: 31.08.2005 09:17
von witzigerkiller
Ok, es ist kein fehler mehr da, aber aus irgendeinem Grund, werden die Sessions nicht registriert, und das echo wird nicht ausgegeben.
Weist du weiter?

Verfasst: 31.08.2005 09:32
von StarWolf3000
ganz oben auf der Seite (nehme an, dass der von dir gezeigte Code nur ein Ausschnitt ist), bevor alles andere beginnt, musst du

Code: Alles auswählen

<?
session_start();
?>
in deinen Code integrieren, damit wird das Session-Management für die Seite installiert

aber wie gesagt: vor jedem anderen Code

siehe auch: PHP: session_start - Manual

Verfasst: 31.08.2005 09:34
von witzigerkiller
das habe ich auf der index datei gemacht.:

Code: Alles auswählen

<?PHP
SESSION_START();
?>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="generator" content="Microsoft FrontPage 4.0">
<meta name="author" content="martin plumeier">
<meta name="keywords"
content="homepage, wrestling, manager, wrestlingmanager, online, game, champion">
<meta name="description"
content="homepage, wrestling, manager, wrestlingmanager, online, game, champion">
<title>Wrestling-Fight.de - Der Wrestlingmanager</title>
<meta name="expires" content="20 days">
<meta name="revisit" content="after 21 days">
<meta name="page-type" content="wrestling, manager, game">
<meta name="audience" content="wrestlingfan">
<meta name="robots" content="INDEX,FOLLOW">
<link rel="stylesheet" type="text/css" href="format.css" >
<script>
<!--
function BlurLinks(){
lnks=document.getElementsByTagName('a');
for(i=0;i<lnks.length;i++){
lnks[i].onfocus=new Function("if(this.blur)this.blur()");
}
}

onload=BlurLinks;
-->
</script>


<script language="JavaScript">
<!--
{
    function mouse_over(src,clr_over)
   {

     if (!src.contains(event.fromElement))
     {
     src.style.cursor = 'hand';
     src.bgColor = clr_over;
     }

   }


   function mouse_out(src,clr_in)
   {
   if (!src.contains(event.toElement))
   {
   src.style.cursor = 'hand';
   src.bgColor = clr_in;
   }
   }


   function mouse_click(src)
   {
   if(event.srcElement.tagName=='td')
   {
   src.children.tags('A')[0].mouse_click();
   }
   }

   }
// -->
</script>
</head>
<body background="327.gif" bgcolor="black"   text="#cccccc"  topmargin="40" leftmargin="40" marginwidth="40" margintop="40 " >



<table    border="0" cellpadding="0" cellspacing="5"  width="100%"  height="100%" >
<tr>
<td colspan="2" bgcolor="black" width="100%" >

<table border="1" cellpadding="1"  cellspacing="1"  width="100%" bgcolor="#cccccc"  bordercolor="black">
<tr><td align="center" bgcolor="#00283C" ><img border="0" src="http://www.wrestling-fight.de/images/wf.gif" align="left" width="160" height="120"><img border="0" src="http://www.wrestling-fight.de/images/wrestler.bmp" align="right"><A HREF="http://www.wrestling-fight.de" TARGET="_top"><IMG SRC="http://www.wrestling-fight.de/images/wrestlingbanner.gif" BORDER="0"  alt="Wrestling-Fight.de - Der Wrestlingmanager" width="468" height="60" align="middle" vspace="20"></A>
 </td>
</tr>
</table>
</tr>
<tr>
<!-- Menue--><td  width="150" valign="top" height="100%" >
<table   bgcolor="#cccccc"   border="1" cellpadding="0" cellspacing="1"  width="150"  bordercolor="black" >
<?PHP
 if ($_SESSION['Status'] == "Member") {
  include("usermenue.html");
                                      }
 else {
  if ($_SESSION['Status'] == "Admin") {
   include("adminmenue.html");
                                      }
 else {
  include("standartmenue.html");
      }
      }
      
?>

</table>
<!--Ende Menue-->
</td><!-- Inhalt--><td valign="top" align="left"   width="100%" height="100%" >

<table border="1" cellpadding="20" cellspacing="1" height="100%"  width="100%" bgcolor="#cccccc"  bordercolor="black">
<tr>
<td valign="top" bgcolor="#00283C" height="100%" >
<?PHP
                    
                    if (file_exists($_GET['show'].'.php'))
                    {
                     include($_GET['show'].'.php');
                    }else {
                     include('starttext.html');
                    }
                    

                   ?>
das war nur von oben bis zum php switch oder switch php?- ach egal

Verfasst: 31.08.2005 10:07
von witzigerkiller
weißt du woran es liegt?

Verfasst: 31.08.2005 10:23
von StarWolf3000
ich bin zwar recht PHP-erfahren, aber ich weis nicht, woran es liegt

ich hab zwar auch ein Login auf meine Seite eingebaut, allerdings vom phpBB2-Forum geborgt

falls du direkten Zugriff auf die Serverkonfiguration hast, hänge mal den Abschnitt [session] der php-Konfigurations-Datei an (unter Windows php.ini)