Login problem

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Login problem

Beitrag 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.
Bitte keine Anfragen mehr per PN
When you get me on my nerven I put you in the Gully and do the Deckel drüf and you never will come back to the Tageslicht.
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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);
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag 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>
Bitte keine Anfragen mehr per PN
When you get me on my nerven I put you in the Gully and do the Deckel drüf and you never will come back to the Tageslicht.
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag 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>
Zuletzt geändert von witzigerkiller am 31.08.2005 09:18, insgesamt 1-mal geändert.
Bitte keine Anfragen mehr per PN
When you get me on my nerven I put you in the Gully and do the Deckel drüf and you never will come back to the Tageslicht.
Benutzeravatar
StarWolf3000
Mitglied
Beiträge: 1019
Registriert: 25.07.2005 10:20
Wohnort: Stolpen
Kontaktdaten:

Beitrag 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>
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag 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?
Bitte keine Anfragen mehr per PN
When you get me on my nerven I put you in the Gully and do the Deckel drüf and you never will come back to the Tageslicht.
Benutzeravatar
StarWolf3000
Mitglied
Beiträge: 1019
Registriert: 25.07.2005 10:20
Wohnort: Stolpen
Kontaktdaten:

Beitrag 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
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag 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
Bitte keine Anfragen mehr per PN
When you get me on my nerven I put you in the Gully and do the Deckel drüf and you never will come back to the Tageslicht.
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag von witzigerkiller »

weißt du woran es liegt?
Bitte keine Anfragen mehr per PN
When you get me on my nerven I put you in the Gully and do the Deckel drüf and you never will come back to the Tageslicht.
Benutzeravatar
StarWolf3000
Mitglied
Beiträge: 1019
Registriert: 25.07.2005 10:20
Wohnort: Stolpen
Kontaktdaten:

Beitrag 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)
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
Antworten

Zurück zu „Coding & Technik“