 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
05.05.2002, 12:15
|
#1
|
|
TP-Senior
Registriert seit: Mar 2002
Ort: Hamburg City
|
Formularfelder werden scheinbar nicht übergeben
Habe ein Problem mit den Übergabefeldern in einem Formular.
Vorweg:
Apache ist installiert
PHP ist installiert
MySql ist installiert
phpmyadmin ist installiert.
Ich habe mit phpadmin eine DB und Table angelegt.
So nun zu dem Problem,
wenn ich meine Eingabefelder fülle und abschicke, dann bekomme ich aus meinem verify.php die Meldung
"Sorry, aber dieser Name ist leider nicht bekannt !", obwohl der Name in der DB existiert!
der connect scheint aber zu laufen, da keine fehlermeldung ausgegeben wird!
was kann das sein? online, beim provider läufts? nur auf meinem rechner nicht!
hier der code:
login.htm
<html>
<head>
<title>login</title>
</head>
<body>
<form action="verify.php" method="post">
Username : <br>
<input type="text" name="username" size="20" maxlength="20"><br>
Passwort : <br>
<input type="password" name="passwort" size="20" maxlength="20"><br>
<input type="submit" name="absenden" value="einloggen">
</form>
</body>
</html>
--------------------
verify.php
<?php
session_start();
include('var.inc.php');
$conn = @mysql_connect($dbserver,$dbuser,$dbpass);
if (!$conn)
{
die ("Sorry, Verbindungsversuch zur Datenbank ist fehlgeschlagen !");
}
mysql_select_db($dbname,$conn);
$query = "SELECT pass, level FROM zugriff WHERE name = '".$username."'";
$result = mysql_query($query,$conn);
$zeileholen = mysql_fetch_array($result,MYSQL_ASSOC);
$verschl = md5($passwort);
mysql_close($conn);
if (!$zeileholen)
{
die ("Sorry, aber dieser Name ist leider nicht bekannt !");
}
if ($zeileholen["pass"] <> $verschl)
{
die ("Sorry, aber dieses Passwort passt nicht zum Usernamen !!<br><a href='index.htm' target='_self'>Loginseite</a>");
}
$level = $zeileholen["level"];
session_register('username');
session_register('level');
header ("Location:admin.php");
?>
|
|
|
05.05.2002, 12:27
|
#2
|
|
TP-Supporter
Registriert seit: May 2001
Ort: Berlin
|
ändere mal diese Zeile
$query = "SELECT pass, level FROM zugriff WHERE name = '".$username."'";
in
$query = "SELECT pass, level FROM zugriff WHERE name '$username'";
( also '$username' und dann das anführungszeichen)
so ist die Syntax falsch
|
|
|
05.05.2002, 12:28
|
#3
|
|
TP-Specialist
Registriert seit: Feb 2002
Ort: Wien
|
Hi quixxz,
da fällt mir als erstes die PHP-Version ein. Hast du vielleicht lokal die Version 4.2 installiert? Diese stellt nämlich die Variablen nach dem POST standardmäßig nicht mehr als Feldnamen zur Verfügung sondern nur mehr in den Arrays $_POST bzw. im "alten" $HTTP_POST_VARS.
Wenn du trotzdem in der neuen Version die Variablen automatisch zuordnen lassen willst, musst du in der php.ini die register_globals auf "on" stellen. Ist aber aus Sicherheitsgründen nicht empfehlenswert und im Hinblick auf zukünftige Kompatibilität mit PHP 5 sollte man schon auf die globalen Arrays umsteigen.
Gruß,
Jürgen
|
|
|
05.05.2002, 12:44
|
#4
|
|
TP-Senior
Registriert seit: Mar 2002
Ort: Hamburg City
|
@ Jürgen
ne, benutze PHP 4.1.2, hab aber trotzdem mal register_globals mal auf on gesetzt. Funzt leider nicht
@Howie Munson2
Also, das Script läuft so online beim Provider.
Habe vorsichtshalber mal deine Syntax probiert. Funzt leider nicht 
|
|
|
05.05.2002, 13:08
|
#5
|
|
TP-Specialist
Registriert seit: Feb 2002
Ort: Wien
|
Also wenn du register_globals auf on gesetzt hast, dann war sie vorher auf "off" - richtig? Das bedeutet, dass das Skript gar nicht funktionieren konnte!
Starte den Apache Server oder besser den ganzen Rechner neu und schau dann nochmal - wenn du das nicht schon getan hast 
|
|
|
05.05.2002, 13:12
|
#6
|
|
TP-Senior
Registriert seit: Mar 2002
Ort: Hamburg City
|
sie war vorher mit ";" auskommentiert!
hab n neustart gemacht, klappt nicht.
soll die zeile so aussehen?
- register_globals = on [Security, Performance]
; Global variables are no longer registered for input data (POST, GET, cookies,
; environment and other server variables). Instead of using $foo, you must use (...)
|
|
|
05.05.2002, 13:33
|
#7
|
|
TP-Specialist
Registriert seit: Feb 2002
Ort: Wien
|
Die Zeile sollte einfach so aussehen:
register_globals = On
Besser wäre es, du gehst den Weg mit dem $_POST-array. Dazu brauchst du auch die register_globals nicht zu ändern.
|
|
|
05.05.2002, 13:50
|
#8
|
|
TP-Senior
Registriert seit: Mar 2002
Ort: Hamburg City
|
@ Jürgen
Funzt nicht, hab mal meine php.ini und httpd.conf angehängt. Wenn du Zeit hast, kannste mal drübergucken, vielleicht endeckst du ja den Fehler.
Ich denke auch, das es irgendwie daran liegt.
Ps: wie geht das mit $Post-Array? Bin mit PHP noch nicht so fit
Gruß
Quixxz
|
|
|
05.05.2002, 14:18
|
#9
|
|
TP-Specialist
Registriert seit: Feb 2002
Ort: Wien
|
An und für sich ist die Groß- und Kleinschreibung nur bei den Schlüssenwörtern selbst relevant, bei den Werten (On/Off) ist PHP nicht case-sensitive. Trotzdem würde ich "On" groß schreiben, versuche das noch.
Irgendwo vor die Zeile
$query = "SELECT pass, level FROM zugriff WHERE name = '".$username."'";
schreibst du:
PHP-Code:
$username = $_POST['username'];
$passwort = $_POST['passwort'];
|
|
|
05.05.2002, 14:33
|
#10
|
|
TP-Senior
Registriert seit: Mar 2002
Ort: Hamburg City
|
klappt leider auch nicht
hab mir mal mit echo versucht den usernamen ausgeben zu lassen.
Ist blank!
da steht tatsächlich nichts drin! Ich verzweifle!
|
|
|
05.05.2002, 20:44
|
#11
|
|
TP-Senior
Registriert seit: Mar 2002
Ort: Hamburg City
|
Bitte nochmal um eure Hilfe in dieser Sache.Bitte
Warum werden die Formulareingaben nicht übergeben?
hier nochmal ein bsp:
<form action="verify.php" method="post">
Username : <br>
<input type="text" name="username" size="20" maxlength="20"><br>
Passwort : <br>
<input type="password" name="passwort" size="20" maxlength="20"><br>
<input type="submit" name="absenden" value="einloggen">
verify.php
<?php
echo "$username";
echo "$password";
?>
woran kann das liegen?
PHP 4.1.2 installiert
Apache läuft auch!
Bitte um Hilfe, komme nicht weiter!
Danke Quixxz
|
|
|
05.05.2002, 21:07
|
#12
|
|
TP-Specialist
Registriert seit: Feb 2002
Ort: Wien
|
Mit dem Skript ist nichts verkehrt, das läuft bei mir lokal. Schau mal, ob $_POST bei Dir auch leer ist, oder ob dort die Variablen ordnungsgemäß gespeichert sind:
Zum Abfragen des Arrays:
PHP-Code:
print_r($_POST);
in die verify.php schreiben.
Wenn $_POST auch leer ist, dann hats meiner Ansicht nach etwas mit der PHP-Installation.
|
|
|
05.05.2002, 21:15
|
#13
|
|
TP-Senior
Registriert seit: Mar 2002
Ort: Hamburg City
|
hi Jürgen,
bei verify.php
<?php
$username = $POST['username'];
$passwort = $POST['passwort'];
echo "$username";
echo "$passwort";
print_r($_POST);
?>
erhalte ich folgende ausgabe:
Array ( [username] => fr [passwort] => fg [absenden] => Login )
Was bedeutet das?
|
|
|
05.05.2002, 22:21
|
#14
|
|
TP-Specialist
Registriert seit: Feb 2002
Ort: Wien
|
Das bedeutet, dass die Variablen korrekt in dem array gespeichert sind -> wunderbarst
Ein eindimensionales Array besteht immer aus einem Schlüssel/Wertepaar. Der Schlüssel [username] hat z. B. den Wert "fr", der Schlüssel [passwort] den Wert "fg". Du kannst jetzt diese Schlüssel/Wertepaare in deinem Skript verify.php in Variablen umwandeln - wie ich schon geschrieben habe mit:
PHP-Code:
$username = $_POST['username'];
$passwort = $_POST['passwort'];
Es ist in jedem Fall zu empfehlen gleich mit dieser Methode zu arbeiten, denn spätestens in PHP5 funktioniert die Methode mit den global registrierten Variablen nicht mehr. Also viel Glück und schau mal, ob du es so zum Laufen bringst!
|
|
|
06.05.2002, 08:17
|
#15
|
|
TP-Senior
Registriert seit: Mar 2002
Ort: Hamburg City
|
hi jürgen!!
hmmm, aber in dem Skript, siehe oben, da gebe ich doch den Usernamen u. Passwort mit "Echo" aus! Leider war nichts zu sehen! Die Ausgabe war wohl Blank, oder gibt man die Variabelen mit dem $_Post anders aus bzw. weiter???
Gruß
Quixxz
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 Uhr.
|
 |