PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : php, frage vom neuling



Seiten : [1] 2

shaddowghoul
12.12.04, 19:09
hi,
ich hätte mal ne kurze frage.
wie gebe ich die daten vom user an den php-server?
ich wolte mir eine passwortabfrage zusammenbasteln:

<?php
echo "<html><head>";
echo "</head>";

if($un == "")echo "kein username angegeben!";
if($un == "test") echo "erfolgreich eingeloggt";

else{
echo '<center><font color=green ><h1>Willkommen auf miner Page</h1></font><br><br><br>';
echo '<form action="index.php">';
echo '<input type="name" name="un" value="benutzer-name">';
echo $un;
echo "";
}

echo "</body></html>";


dabei gabs probleme mit dem übergeben des usernamens an den server(localhost)
könnt ihr mir sagen wies richtig geht?
?>

sepp2k
12.12.04, 19:13
Ersetze $un durch $_POST['un']

PierreS
12.12.04, 19:14
Füge doch mal "$un = $_POST['un'];" am Anfang ein.


EDIT: Oh, da war einer schneller. Na wenigstens sind wir uns einig.

sepp2k
12.12.04, 19:15
Füge doch mal "$un = $_POST['un'];" am Anfang ein.
Oder so...

shaddowghoul
12.12.04, 19:33
funktioniert nicht.
er sagt immer: kein username angegeben!

mein jetziger code:

<?php

$un = $_POST['un'];

echo "<html><head>";
echo "</head>";

if($un == "")echo "kein username angegeben!";
if($un == "test") echo "erfolgreich eingeloggt";

else{
echo '<center><font color=green ><h1>Willkommen auf miner Page</h1></font><br><br><br>';
echo '<form action="index.php">';
echo '<input type="name" name="un" value="benutzer-name">';
echo $un;
echo "";
}

echo "</body></html>";

?>

suck
12.12.04, 19:38
> echo '<input type="name" name="un" value="benutzer-name">';

Da fehlt ein "METHOD=POST" oder sowas in der Art

shaddowghoul
12.12.04, 19:42
wieder nichts:

<?php

$un = $_POST['un'];

echo "<html><head>";
echo "</head>";

if($un == "")echo "kein username angegeben!";
if($un == "test") echo "erfolgreich eingeloggt";

else{
echo '<center><font color=green ><h1>Willkommen auf miner Page</h1></font><br><br><br>';
echo '<form action="index.php">';
echo '<input type="name" name="un" value="benutzer-name" method=post>';
echo $un;
echo "";
}

echo "</body></html>";

?>

suck
12.12.04, 19:48
Klappt's denn, wenn du an die URL im Browser "?un=test" anfügst?

shaddowghoul
12.12.04, 19:49
nein,
ich hab auch schon index.php?$un=test ausprobiert.
klapt auch nich

PierreS
12.12.04, 19:51
Dein Programm macht genau das, was Du aufgeschrieben hast. Du mußt die zweite If-Abfrage negieren.

suck
12.12.04, 19:52
Wenst das "echo $un" müsste gehen...

hmm, PHP is Jhare her... Wo lag nochmal der Unterschied zwischen POST und GET... Es ist das einzige, was mir spontan noch einfällt..

$un = $_GET['un'];

shaddowghoul
12.12.04, 19:53
negiern? das doch hoffentlich nichts rassistisches!
und nein, wenn das script machen würde was ich will würde ich hier nicht fragen.

suck
12.12.04, 19:54
Du mußt die zweite If-Abfrage negieren.

Also "Wenn Eingabe ungleich Passwort, dann Zugriff freigeben?" ;-))

shaddowghoul
12.12.04, 19:59
dann kommt bei dem normalen index.php
kein username angegeben!erfolgreich eingeloggt

ich glaub nich das das so richtig is

suck
12.12.04, 20:07
Erstmal soll "echo $un" funktionieren.. Dann kann man über den Rest (der schon stimmt) reden..

im Browser "../index.php?un=test" muss die Variable un uebergeben.. tut es bestimmt auch

<?php
$un = $_GET["un"];
echo $un;
if ($un=="test") { echo "STIMMT"; } else {echo "FALSCH";}
?>

shaddowghoul
12.12.04, 20:11
irgentwie komisch.

bei dem code:

<?php

$un = $_GET["un"];

echo "<html><head>";
echo "</head>";

if($un == "")echo "kein username angegeben!";
if($un == "test") echo "erfolgreich eingeloggt";

else{
echo '<center><font color=green ><h1>Willkommen auf miner Page</h1></font><br><br><br>';
echo '<form action="index.php">';
echo '<input type="name" name="un" value="benutzer-name" method=get>';
echo $un;
echo "";
}

echo "</body></html>";

?>


<?php
$un = $_GET["un"];
echo $un;
if ($un=="test") { echo "STIMMT"; } else {echo "FALSCH";}
?>
kommt:

kein username angegeben!

Willkommen auf miner Page

testSTIMMT

shaddowghoul
12.12.04, 20:14
heä?!?!?!

ich hab nicht gemacht und plötzlich funktioniert es.

ich check da nich durch.

stefaan
12.12.04, 20:15
Servus!

Würde das so machen und die ifs ein bisschen richtiger schreiben:


<?php

$un = $_POST['un'];

echo "<html><head>";
echo "</head>";

if($un == "") {
echo "kein username angegeben!";
}
if($un == "test") {
echo "erfolgreich eingeloggt";
}

else{
echo '<center><font color=green ><h1>Willkommen auf miner Page</h1></font><br><br><br>';
echo '<form action="login.php" method="POST">';
echo '<input type="name" name="un" value="benutzer-name" method=post>';
echo '<input type="submit" value="Login">';
echo '</form>';
echo $un;
echo "";
}

echo "</body></html>";

?>


Je nach dem, ob das zweite if zum else dazugeört oder nicht, kannst du da auch ein elseif verwenden. "Richtiger" funktioniert deine Version.

Grüße, Stefan

PS: Schreib schönen Code (auch HTML), dann tust du dir mit der Fehlersuche leichter :D

suck
12.12.04, 20:20
Voodoo!! ; ) ..ich seh da wirklich keinen Fehler.. nimm einfach den Code, der funzt ; )

shaddowghoul
13.12.04, 17:20
noch eine frage: wie kann ich auf "localhost" .htaccess schutz einbaun?

Tomek
13.12.04, 17:22
noch eine frage: wie kann ich auf "localhost" .htaccess schutz einbaun?
Auf localhost? Was genau willst du erreichen? Ansonsten bitte in die Dokumentation schauen: http://httpd.apache.org/docs-2.0/howto/htaccess.html

shaddowghoul
14.12.04, 14:29
erreichen will ich:
wenn einer im auf eine datei auf meinen server
(z.b.: http://localhost/sicher/passwörter.log)
zugreifen will, setzt der .htacces schutz in /sicher ein.
nur, mein server(localhost) scheint so eine funktion nicht zu haben.
also: wie bauer ich htacces schutz in meinen server(localhost) ein?

der server(localhost) vefügt bereits über :
apache, php und mysql.

`kk
14.12.04, 14:36
Du hast zwar method="post" hinzugefügt, aber das gehört in den <form>-tag.

Lern doch erstmal HTML und dann PHP.
Grützi, Kai.

Edit:
Oh...eine zweite Seite. :ugly


if($un == "") {
Wohl eher:


if (!isset($_REQUEST['un'])) {
// zur genaueren Überprüfung $_GET bzw. $_POST

alexm
14.12.04, 14:44
Falsches Forum! Hier gehts um Server und Clients, nicht um Programmiersprachen.
(-> http://mrunix.de)

`kk
14.12.04, 14:57
Lies den letzten Post von shadow nochmal...
Mit PHP hast du natürlich Recht.

shaddowghoul
14.12.04, 17:27
und meine .htaccess frage bleibt unbeantwortet. oder?

shaddowghoul
14.12.04, 17:47
???
was geht jetzt ab?
ich bekomme seit kurzem immer:
"Fatal error: Maximum execution time of 30 seconds exceeded in /srv/www/htdocs/website/index.php on line 71"

WAS SOLL DAS?

Tomek
14.12.04, 18:52
Das Zeitlimit für das Ausführen dieses PHP-Skriptes ist überschritten worden. Entweder das Skript rennt Amok oder du erhöhst das Zeitlimit in der php.ini:

max_execution_time = 60 ; Maximum execution time of each script, in seconds

shaddowghoul
14.12.04, 19:35
und was ist mit:
Warning: fopen(un.log): failed to open stream: Permission denied in /srv/www/htdocs/website/index.php on line 16

Warning: fopen(pw.log): failed to open stream: Permission denied in /srv/www/htdocs/website/index.php on line 17

wieso wird der zugriff verwehrt?

`kk
14.12.04, 20:02
Weil der Apache-Benutzer kein Recht hat die Logs zu lesen.