Fehler bei Session-System

Freude

Mitglied
PHP:
<?php

session_start (); // Starte eine Session.

// ======== AUFBAU DER DATENBANKVERBINGUN ========

 mysql_connect ($hostname, $username, $password);
@mysql_select_db ($dbname);

// Generiere und starte die Abfrage
$mysql = "SELECT * FROM kundenstamm WHERE (Name like '$username') AND (kundennummer = '$password')";
$result = mysql_query ($mysql);

if (mysql_num_rows ($result) > 0) {
  // Ein Datensatz wurde gefunden.
  $datenrichtig = true;

  // Variable $user_eingeloggt erstellen.
  $user_eingeloggt = true;
} else {
  // Die Benutzerdaten waren falsch.
  $datenrichtig = false;

  // Variable $user_eingeloggt erstellen.
  $user_eingeloggt = false;
}

// Variable $user_eingeloggt in der Session registrieren.
session_register ("user_eingeloggt");
?>

<html>
<head>
  <?php if ($datenrichtig) { ?>
  '<meta http-equiv="Refresh" content="5; url=ver.php?<?=session_name()?>=<?=session_id()?>">'

 <?php } ?>
 </head>


<?php

if ($datenrichtig) {
  echo "Vielen Dank für’s Einloggen. Sie werden weitergeleitet...";
} else {
  echo "Die Daten waren falsch.";
}

?>
</body>
</html>

Hallo vielleicht gehe ich euch immer mit meiner Fragen auf die Nerven, wie ich aber auch schon sagte "Ich beschäftige ich mich erst seit 2 monaten mit PHP und MySQL".
Ich hoffe ihr nehmt mir das nicht übel.DANKE:)
Dieses Code habe ich auch von hier genommen.
soweit funzt ja..
nur wenn ich die Daten eingebe in meiner loginformular.html dann kriege ich immer die Meldung:Das die Daten Falsch sind.

Aber die sind nicht FALSCH.wo habe ich denn Fehler gemacht?

DANKE
MfG
Freude:)
 
eigentlich nervt es mehr, das Du andauernd neue threads hier reinpackst mit immer den gleichen fragen.. aber das nur am rande :)


hast Du die files als .html oder .php abgespeichert? ..ich nehme mal stark an als .html.. wenn das so ist, dann aendere das mal in *.php

:-)
 
also nach 2 monaten php denke ich mal dass er NICHT so blöd ist und die datei als html speichert:

du müsstest aber mal bei Name like '$username'

ein % vor $username schreiben, also %$username, jedenfalls sagt das mein buch (obs stimmt, is ne andere frage :p)

PS: ich würde nicht like nehmen, weil er dann nach strings sucht der dem namen ähnlich erscheint also würde er bei hans peter wahr ausgeben wenn du als username hans eingegeben hast. nimm liber WHERE name = '$username'
 
@methodus

klar sollte man das nach 2 monaten kapiert haben.. dennoch passieren solche fehler immer wieder :-) Niemand ist Perfekt ..
 
Code:
<?php if ($datenrichtig) { 
'<meta http-equiv="Refresh" content="5; url=ver.php?<?=session_name()?>=<?=session_id()?>">'
} ?>

dann uebergibst Du noch einen Session_namen ... aber wo hast Du den festgelegt?..

das! ist falsch! weil er dann gar nichts ausgibt, ohne ausgabebefehl, das erste von loki ist schon richtig allerdings weiß ich nicht was <?=session_name()?> usw. darstellen soll, das müsste dann schon <?php echo session_name(); ?>=<?php echo session_id(); ?> heißen

//edit hey loki, du kannst doch nicht einfach deinen beitrag editieren, wenn ich da nen fehler gefunden habe! ;((
;)
 
Zuletzt bearbeitet:
<?php if ($datenrichtig) {
'<meta http-equiv="Refresh" content="5; url=ver.php?<?=session_name()?>=<?=session_id()?>">'
} ?>

dann uebergibst Du noch einen Session_namen ... aber wo hast Du den festgelegt?..

autsch, stimmt.. ich hab's gerade noch rechtzeitig bemerkt.. und mein post geloescht :-) .. leider warst Du schneller.. hehe
 
Danke an Alle
aber wenn ich das so eingebe , wie ihr gepostet habt dann wir diese Teil auskommentiert.
PHP:
<?php

if ($datenrichtig) {
  echo "Vielen Dank f&uuml;rs Einloggen. Sie werden weitergeleitet...";
} else {
  echo "Die Daten waren falsch.";
}

?>
 
'<meta http-equiv="Refresh" content="5; url=ver.php?<?=session_name()?>=<?=session_id()?>">'


musst du ohne die hochkommas setzen..
Code:
<meta http-equiv="Refresh" content="5; url=ver.php?<?=session_name()?>=<?=session_id()?>">

noch ein problem koennte vielleicht sein das du hier
Code:
$mysql = "SELECT * FROM kundenstamm WHERE (Name like '$username') AND (kundennummer = '$password')";

Name vielleicht name ist? :-)
um zu testen ob es am db_query liegt.. fuege doch einfach ein die(error()); ans ende der abfrage..

("select * ....) or die(error());

vielleicht liegt es ja an der abfrage..
 
Zuletzt bearbeitet:
Also der einzige Fehler, der mir auffällt ist:

Die Hochkommas bei dem META-Tag. Ansonsten ist alles richtig soweit ich das sehe. Ich weiß ja nicht wie du die Feldnamen genannt hast.

von methodus:
das! ist falsch! weil er dann gar nichts ausgibt, ohne ausgabebefehl, das erste von loki ist schon richtig allerdings weiß ich nicht was <?=session_name()?> usw. darstellen soll, das müsste dann schon <?php echo session_name(); ?>=<?php echo session_id(); ?> heißen

<?=session_name()?> ist die Kurzform für <?php echo session_name() ?>

von vielen:
dann uebergibst Du noch einen Session_namen ... aber wo hast Du den festgelegt?..

Der braucht nicht festgelegt werden. Das erledigt PHP mit einem Standardwert.

von methodus:
PS: ich würde nicht like nehmen, weil er dann nach strings sucht der dem namen ähnlich erscheint also würde er bei hans peter wahr ausgeben wenn du als username hans eingegeben hast. nimm liber WHERE name = '$username'
Da hast du unrecht. Wenn du "like '%$username%'" eingibst passiert das. Bei "like '$username'" findet er nur das was $username entspricht wobei er aber die Groß/Kleinschreibung ignoriert. Du kannst auch gern "name = '$username'" verwenden. Dann muss der Benutzer allerdings beim Benutzernamen auf Groß/Kleinschreibung achten.
 
Zurück