Login Script

Erks

Erfahrenes Mitglied
Ich habe folgendes Script...:

PHP:
    <?php
require('mysql.php');
session_start();
	
	$abfrage = "SELECT kd-nr FROM ****** WHERE kd-nr LIKE '$kdnr' LIMIT 1";
	$ergebnis = mysql_query($abfrage);
	$row = mysql_fetch_object($ergebnis);
	
	if($row->kd-nr==$kdnr){
	session_start();
	$_SESSION['kdnr']= $_POST['kdnr'];
    echo "<p align=\"center\">Danke f&uuml;r die Anmeldung:".$_SESSION['kdnr']."</p><p align=\"center\">Wenn sie nicht automatisch weitergeleitet werden bitte <a href=\"index_reg2.php\">klicken sie hier</a></p>";
    }
else
    {
    echo "Die User ID ist falsch! <a href=\"index.php\">nochmals versuchen</a>";
    }
	?>
Aber wenn ich dieses Script ausführe dann kommt diese Fehlermeldung:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in ...

Das, was ich eigentlich bewirken will:
Die User ID ($kdnr) soll in mehreren Feldern innerhalb einer Datenbank (******) gesucht werden und nur dann wenn dieser Eintrag existiert, dann soll ein Link zu sehen sein. Wenn nicht dann ist die User ID falsch und dem User wird es ermöglicht es neu einzugeben.

Wie könnte ich so ein Script schreiben und wo liegt bei mir der Fehler im vorliegenden Script?
 
PHP:
$ergebnis = mysql_query($abfrage);

Veränder das mal in:

PHP:
$ergebnis = mysql_query($abfrage) or die(mysql_error());

Dadurch kannst du den Fehler in deiner Abfrage anzeigen lassen, bzw. der Fehler, der auftritt.

Übrigens ist dein ******* keine Datenbank, sondern eine Tabelle.

Woher kommt $kdnr? Aus einem Formular? Wie ist die Einstellung zu register_globals? Ggf. musst du auf diese Variable mit der Superglobalen $_POST zugreifen.
Siehe dazu auch: Verwendung von Register Globals
 
Ich hab es schon fast hinbekommen, nur jetzt gibt es wieder ein Problem...
Ich nehme jetzt dieses Script als Beispiel:
PHP:
<form name="form1" method="post" action="">
  <label>
  <input type="text" name="test" id="test">
  </label>

  <label></label>
  <input type="submit" name="button" id="button" value="Senden">
  <?php


	if($button=='Senden') {
	require('mysql.php');
	$abfrage = "SELECT * FROM erksspaceeintrag WHERE `kd-nr`='$test'";
	$ergebnis = mysql_query($abfrage) or die(mysql_error());  
	$row = mysql_fetch_object($ergebnis);
	
	if($row->kd-nr==$test){
	echo 'Schon Vergeben';
    }
	else{
	echo 'Noch frei';
	}
	}
	?>
</form>

In das Feld $test trage ich jetzt einen Wert ein, der NUR aus Zahlen besteht. Wenn es diesen Wert schon in der Tabelle gibt (und den gibt es da schon!) sagt er mir, dass es den Wert noch NICHT gibt. Wenn ich jetzt einen Wert nehme der aus Buchstaben besteht, wie z.B. "Hund" und den gibt es schon in der Tabelle, sagt er mir, dass es ihn schon gibt.

Da drängt sich mir der Verdacht auf, dass er nur Werte mit Buchstaben und nicht mit Zahlen annimmt. Doch er soll beides annehmen.

Was für einen Fehler seh ich nicht?
 
Hallo.

Führ deinen Befehl einfach mal in PHPMyAdmin aus (wenn es das bei deinem Hoster/Server/.. gib)..
Bei mir hat es schon oft weitergeholfen..

und schreib lieber $_POST["button"] und $_POST["test"] da es sicherer ist..

mfg

Philipp9494
 
Ich benutz den Server, der von ohost angeboten wird.

Da ich noch Anfänger bin weiß ich nicht so genau was ich machen soll.
 
gibt mal in der adressleiste phpmyadmin.[die ersten 2 Buchstaben von deinem Benutzername].ohost.de

dann klickst du oben links auf SQL und gibts den Code ein, aber die Vars musst du austauschen..
 
So...in dieses SQL Fenster hab ich jetzt das hier eingefügt:

PHP:
$row = mysql_fetch_object(mysql_query("SELECT * FROM erksspaceeintrag WHERE `kd-nr`='test'"));
    
    if($row->kd-nr==test){
    echo 'Schon Vergeben';
    }
    else{
    echo 'Noch frei';
    }

Es kommt trotzdem eine Fehlermeldung, aber keinen Tipp was man beheben könnte....da steht nur...

Soll man vielleicht einen anderen Befehl als "mysql_fetch_object()" benutzen? Oder liegt der Fehler im Code und nicht an diesem Befehl?
 
Nein, in dieses SQL-Fenster muss du das eingeben. z.B. SELECT * FROM erksspaceeintrag WHERE `kd-nr`='test'.

Wenn es dann einen Fehler anzeigt, ist im My-SQL-Query etwas falsch, sonst in der PHP-Datei..

mfg

Philipp9494
 
Zurück