Willkommen in der Webstatt Zum Webstatt Blog und Stories
BNightSpeeder am 26.05.06 10:45

Hallo,

ich habe versucht nen Login Formular für meinen Adminbereich zu machen.
Nur leider kommt immer, der mirunerklärliche Fehler:

Quote
Parse error: parse error, unexpected T_VARIABLE in

Der Sollte aber gar nicht kommen, da es ja erst ausgeführt werden soll wenn gesendet wurde: (Die Kommentare stehen für das zugangsscript zur DB, somit passen alle Zeilen wider!

<?php
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
if (isset($_POST['send'])) {

$abfrage = mysql_query("SELECT * FROM admin");
$row = mysql_fetch_object($abfrage)
$userfm = md5($_POST['user']);
$userdb = $row->user;
$passworddb = $row->password;
$passwordfm = md5($_POST['pass']);

if ($passwordfm == $passworddb AND $userfm == $userdb) { // wenn richtige angaben wird das ausgeführt!
/* Variablen */

$zufall_sess_id_rand = rand("1","" . date("jzHshnY") . "");
$zufall_sess_id_cookie_rand = rand("1","" . date("YszhHjn") . "");
$zufall_sess_id = md5($zufall_sess_id_rand);
$zufall_sess_id_cookie = md5($zufall_sess_id_cookie_rand);

/* Variablen ENDE */
/* Session in datenbank schreiben */

// Kommt noch

/* Session in datenbank schreiben ENDE */
?>
Falsches passwort, oder benutzername!
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="user" type="text"><input name="pass" type="password"><input name="send" type="submit" value="Login">
</form>
<?
}
}

else {

?>
Bitte einlogen
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="user" type="text"><input name="pass" type="password"><input name="send" type="submit" value="Login">
</form>
<?
}
?>

netcup.de Warum gibt es hier Werbung?
Johannes am 26.05.06 10:51

Bei der Fehlersuche solltest du immer zuerst drauf gucken, ob du alles mit einem Semikolon abgeschlossen hast. In Zeile 20 zum Beispiel fehlt eins.

BNightSpeeder am 26.05.06 13:57

thx, hab vergessen es beim umbauen von der while auf das hinzuztun!

Aber noch eine Frage, ich will die SESS-ID und die IP in die DB schreiben doch leider will es nicht:

if ($passwordfm == $passworddb AND $userfm == $userdb) { // Wenn richtige angaben wird das ausgeführt!
/* Variablen */

$zufall_sess_id_rand = rand("1","" . date("jzHshnY") . "");
$zufall_sess_id_cookie_rand = rand("1","" . date("YszhHjn") . "");
$zufall_sess_id = md5($zufall_sess_id_rand);
$zufall_sess_id_cookie = md5($zufall_sess_id_cookie_rand);

/* Variablen ENDE */
/* Session in datenbank schreiben */

mysql_query = "UPDATE admin(sessid ,ip) VALUES ($zufall_sess_id, $REMOTE_ADDR) WHERE id = " . $row->id . "";


/* Session in datenbank schreiben ENDE */
/* Zeigen wenn richtig */

Ich bin noch nicht so erfahren mit dem Eintragen in DB's und das macht mir noch Probleme, aber was ist den falsch???

Mfg. BNS

der_nic der_nic am 26.05.06 14:01

falls du $REMOTE_ADDR vorher nicht irgendwo extra deklariert hast wäre die Richtige schreibweise $_SERVER['REMOTE_ADDR'] ....

BNightSpeeder am 26.05.06 14:10

Gut dan habe ich das so:

if ($passwordfm == $passworddb AND $userfm == $userdb) { // Wenn richtige angaben wird das ausgeführt!
/* Variablen */

$zufall_sess_id_rand = rand("1","" . date("jzHshnY") . "");
$zufall_sess_id_cookie_rand = rand("1","" . date("YszhHjn") . "");
$zufall_sess_id = md5($zufall_sess_id_rand);
$zufall_sess_id_cookie = md5($zufall_sess_id_cookie_rand);

/* Variablen ENDE */
/* Session in datenbank schreiben */

mysql_query = "UPDATE admin(sessid ,ip) VALUES ($zufall_sess_id, " . $_SERVER['REMOTE_ADDR'] . ") WHERE id = " . $row->id . "";


/* Session in datenbank schreiben ENDE */
/* Zeigen wenn richtig */
?>


Aber der fehler bleibt!

Wasili am 26.05.06 15:04

Eine Zeilenangabe?
Die Nadel im Heuhaufen zu suchen ist nicht gerade das wahre ;)

milahu milahu am 26.05.06 17:28

Schau halt einfach mal in die Zeile, die in der Fehlermeldung erwähnt wird.. :tired:

BNightSpeeder am 26.05.06 17:40

oh, hab vergessen den fehler zu geben:

Quote
Parse error: parse error, unexpected '=' in C:\FoxServ\www\Re-Design\admin\index.php on line 37


das wäre diese:

mysql_query = "UPDATE admin(sessid ,ip) VALUES ($zufall_sess_id, " . $_SERVER['REMOTE_ADDR'] . ") WHERE id = " . $row->id . "";

milahu milahu am 26.05.06 17:44

Überleg mal haarscharf.

Wasili, du machst alles kaputt :(

Wasili am 26.05.06 17:44

Quote
Original von BNightSpeeder
oh, hab vergessen den fehler zu geben:

[QUOTE]Parse error: parse error, unexpected '=' in C:\FoxServ\www\Re-Design\admin\index.php on line 37


das wäre diese:

mysql_query = "UPDATE admin(sessid ,ip) VALUES ($zufall_sess_id, " . $_SERVER['REMOTE_ADDR'] . ") WHERE id = " . $row->id . "";[/quote]

Na also.

$mysql_query = "UPDATE admin(sessid ,ip) VALUES ($zufall_sess_id, " . $_SERVER['REMOTE_ADDR'] . ") WHERE id = " . $row->id . "";

Pass auf was du schreibst :)
(Na, findest du den Unterschied?)

EDIT: Sorry @ Milahu ôÒ Gleichschneller Post ;)

BNightSpeeder am 26.05.06 18:48

Frage, wiso muss man es mit "$" machen, ist mysql_query immer eine Variable??

der_nic der_nic am 26.05.06 19:40

weil dus als Variable deklarierst.... Variablen werden im Allgemeinen mit $ am Anfang geschriben!

was du machen willst ist die Funktion mysql_query ausführen... ABER schon mal davon gehört dass Funtionen so aussehen [SIZE=16]functionsname()[/SIZE]; ???
und jetzt schau mal was du gemacht hast

BNightSpeeder am 26.05.06 20:17

ah, klar! thx, für die erleuterung!

BNightSpeeder am 27.05.06 19:24

ich habe es als variable versucht, es wird nichts in die Datenbank geschrieben und als funktion:

mysql_query("UPDATE admin(sessid ,ip) VALUES ($zufall_sess_id, " . $_SERVER['REMOTE_ADDR'] . ") WHERE id = " . $row->id . "");

Auch nicht, wieso??

Mfg. BNS

milahu milahu am 27.05.06 19:41

Auswendig lernen und ab sofort immer so anwenden:
mysql_query('anfrage') or die(mysql_error());

BNightSpeeder am 27.05.06 19:57

Ach, ich vergesse das immer einzubauen, aber hier der fehler:

You have an error in your SQL syntax near '(sessid ,ip) VALUES (d38a39dc9eccc5c1426ee98d55c18e1e, 127.0.0.1) WHERE id = 1' at line 1

Michael Michael am 27.05.06 19:59

Strings müssen in Hochkommas...
VALUES ('d38a39dc9eccc5c1426ee98d55c18e1e','127.0.0.1') oder allgemein:

mysql_query("UPDATE admin(sessid ,ip) VALUES ('$zufall_sess_id', '" . $_SERVER['REMOTE_ADDR'] . "') WHERE id = " . $row->id . "");


Man lernt im Übrigen viel mehr wenn man zumindest versucht den Fehler selbst zu finden.

BNightSpeeder am 27.05.06 21:21

so?:

mysql_query("UPDATE admin('sessid' ,'ip') VALUES ('$zufall_sess_id', '" . $_SERVER['REMOTE_ADDR'] . "') WHERE id = '" . $row->id . "'") or die(mysql_error());

Aber dan bleibt der fehler!

milahu milahu am 27.05.06 21:40

Identifier in Backticks, Werte in Hochkommas.
Hier, bekommst ein paar Backticks: ````````````````
Und noch ein paar Hochkommas: '''''''''''''''''''''''

BNightSpeeder am 28.05.06 10:35

Ok, also so:
Werte = das was eingetragen wird
Identifer = wo es eigetragen wird

Dan kommt der fehler:

Quote
You have an error in your SQL syntax near '(`sessid` ,`ip`) VALUES ('675b9d345265d1940be76b70149937de', '127.0.0.1') WHERE ' at line 1


mysql_query("UPDATE admin(`sessid` ,`ip`) VALUES ('$zufall_sess_id', '" . $_SERVER['REMOTE_ADDR'] . "') WHERE id = `" . $row->id . "`") or die(mysql_error());

Oder verstehe ich da was Falsch?

Al3x0r Al3x0r am 28.05.06 10:42

Probiers mal so:

$query=mysql_query("UPDATE `admin` SET `sessid` = '$zufall_sess_id', `ip`= '".$_SERVER['REMOTE_ADDR']."' WHERE `id` = '".$row->id."'") or die(mysql_error());

BNightSpeeder am 28.05.06 11:09

thx, al3x0r, habs ohne das
$query=
gemacht, hat geklappt, thx!

Johannes am 28.05.06 11:29

das widerum hat im prinzip keinerlei bedeutung, nur halt, dass du den rückgabewert in einer variable hast, was dir ja so direkt nichts bringt. Der Query-Text selber ist bei Al3x0r ganz anders. Deine Variante war mehr eine Mischung aus dem Insert und dem Update-Befehl.

Al3x0r Al3x0r am 28.05.06 12:18

Ist ja gut, dass es nun funzt.
Es setze aus gewöhnung immer eine Variable für den Query, ist für mich übersichtlicher.

mfg Alex

BNightSpeeder am 02.06.06 15:38

Hallo,

hab versucht nun mit einem Cookie zu überprüfen ob man sich schon mal eingelogt hatt, nur leider Meldet Firefox immer das die Seite ins unendliche geladen wird!
Wieso?? Habe versucht es selber zu lösen, kriege es aber nicht hin!

<?php ob_start(); ?>
<?php include("../function.ini.php"); ?>
<?php include("../config.ini.php"); ?>
<?php
$zufall_sess_id_rand = rand("1","" . date("jzHshnY") . "");
$zufall_sess_id_cookie_rand = rand("1","" . date("YszhHjn") . "");
$zufall_sess_id = md5($zufall_sess_id_rand);
$zufall_sess_id_cookie = md5($zufall_sess_id_cookie_rand);

if (isset($_POST['send']) || $_COOKIE["internetivadminlogin"]!="yes") {

$abfrage = mysql_query("SELECT * FROM admin");
$row = mysql_fetch_object($abfrage);
$userfm = md5($_POST['user']);
$userdb = $row->user;
$passworddb = $row->password;
$passwordfm = md5($_POST['pass']);

if ($_COOKIE["internetivadminlogin"]!="" . $row->pass . "") {
header('Location: page.php?sess=' . $row->sessid . '&id='. $row->id .'');
exit();
}

elseif ($passwordfm == $passworddb AND $userfm == $userdb) { // Wenn richtige angaben wird das ausgeführt!
/* Variablen */
setcookie("internetivadminlogin","" . $row->pass . "");
/* Variablen ENDE */
/* Session in datenbank schreiben */

mysql_query("UPDATE `admin` SET `sessid` = '$zufall_sess_id', `ip` = '".$_SERVER['REMOTE_ADDR']."', `time` = '" . time() . "' WHERE `id` = '".$row->id."'") or die(mysql_error());


/* Session in datenbank schreiben ENDE */
// Weiterleiten

header('Location: page.php?sess=' . $zufall_sess_id . '&id='.$row->id.'');
exit();
// Weiterleiten ENDE
?>

<br>
<div align="center"><img src="../images/admin/index.jpg"></div><br><br><br><br>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table align="center" width="682" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="oben_links"></td>
<td id="oben_mitte"></td>
<td id="oben_rechts"></td>
</tr>
<tr>
<td id="mitte_links"></td>
<td id="mitte_mitte"><h2 align="center">Login erfolgreich </h2><br>
<p align="center">Herzlich Willkommen, <?php echo $row->name ?></p></td>
<td id="mitte_rechts"></td>
</tr>
<tr>
<td id="unten_links"></td>
<td id="unten_mitte"></td>
<td id="unten_rechts"></td>
</tr>
</table><?
}
else {
/* Falsche Angaben */
?>
<br>
<div align="center"><img src="../images/admin/index.jpg"></div><br><br><br><br>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table align="center" width="682" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="oben_links"></td>
<td id="oben_mitte"></td>
<td id="oben_rechts"></td>
</tr>
<tr>
<td id="mitte_links"></td>
<td id="mitte_mitte"><h2 align="center">Login</h2>
<table width="100%" border="0">
<tr>
<td>Benutzername:</td>
<td><input name="user" type="text"></td>
</tr>
<tr>
<td>Passwort:</td>
<td><input name="pass" type="password"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input name="send" type="submit" value="Login"></td>
</tr>
</table><p align="center"><b>Fehler:</b> Die Zugangsdaten sind nicht korrekt!</p></td>
<td id="mitte_rechts"></td>
</tr>
<tr>
<td id="unten_links"></td>
<td id="unten_mitte"></td>
<td id="unten_rechts"></td>
</tr>
</table></form>
<?
}
}

else {
/* Enter Screen */
?><br>
<div align="center"><img src="../images/admin/index.jpg"></div><br><br><br><br>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table align="center" width="682" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="oben_links"></td>
<td id="oben_mitte"></td>
<td id="oben_rechts"></td>
</tr>
<tr>
<td id="mitte_links"></td>
<td id="mitte_mitte"><h2 align="center">Login</h2>
<table width="100%" border="0">
<tr>
<td>Benutzername:</td>
<td><input name="user" type="text"></td>
</tr>
<tr>
<td>Passwort:</td>
<td><input name="pass" type="password"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input name="send" type="submit" value="Login"></td>
</tr>
</table><p align="center">&nbsp;</p></td>
<td id="mitte_rechts"></td>
</tr>
<tr>
<td id="unten_links"></td>
<td id="unten_mitte"></td>
<td id="unten_rechts"></td>
</tr>
</table></form>
<?
}
?>
<script type="text/javascript" src="../js/prototype.js"></script>
<script type="text/javascript" src="../js/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="../js/lightbox.js"></script>
<!-- Hier endet das Einbinnden der JS Datein -->
<!-- Hier beginnt das Einbinnden der CSS Datein -->
<link rel="stylesheet" type="text/css" href="../css.css">
<link rel="stylesheet" type="text/css" href="../css/lightbox.css" media="screen" />
<title>Internetiv | Administration | Login</title>

milahu milahu am 02.06.06 15:48

Quote
Original von BNightSpeeder
leider Meldet Firefox immer das die Seite ins unendliche geladen wird!

Genaue Fehlermeldung?

BNightSpeeder am 02.06.06 16:44

...

milahu milahu am 02.06.06 16:52

Komisch Ding. Vielleicht solltest vor exit() mal den Ausgabepuffer leeren.. (?)

Hat die Schreibweise eigentlich nen tieferen Sinn?
"" . $a . ""

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt