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ü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ü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ü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ü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
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)