Archiv verlassen und diese Seite im Standarddesign anzeigen : php, frage vom neuling
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?
?>
Ersetze $un durch $_POST['un']
Füge doch mal "$un = $_POST['un'];" am Anfang ein.
EDIT: Oh, da war einer schneller. Na wenigstens sind wir uns einig.
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>";
?>
> 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>";
?>
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
Dein Programm macht genau das, was Du aufgeschrieben hast. Du mußt die zweite If-Abfrage negieren.
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.
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
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.
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
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?
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.
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
Falsches Forum! Hier gehts um Server und Clients, nicht um Programmiersprachen.
(-> http://mrunix.de)
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?
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?
Weil der Apache-Benutzer kein Recht hat die Logs zu lesen.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.