$PHP_SELF und erneutes Senden ???
Florian
- php
Hallo Leute,
Ich habe ein kleines Benutzerformular erstellt.
Der Benutzer gibt sein Kürzel ein (in diesem
Fall habe ich zum Testen einen festen Benutzer
festgelegt -> t.user) und betätigt den "OK"-Button.
Dieser Benutzer sollte, falls er schon bekannt ist,
in die Datenbank eingetragen werden. Falls dieser
nicht bekannt ist, sollte folgende Meldung erscheinen:
"Dieser Benutzer gibt es nicht! Moechten Sie Ihn
trotzdem eintragen". Nach diesem Hinweis sollte es
Ihm trotzdem möglich sein diesen Benutzer in die
Datenbank eintragen zu lassen, indem er nochmals den
"OK"-Button betätigt.
Geht das? Wenn ja würde ich mich über Hilfe, Hinweise
und Tips freuen.
Danke schon einmal im Voraus!
bis denn
Florian
Hier mal mein TestSkript:
<html>
<body>
<form action="<? echo $PHP_SELF ?>" method="POST">
Benutzer: <input type="text" size="12" name="benutzer"><BR>
<input type="submit" name="senden" value="OK">
</form>
<?
$senden = $_POST['senden'];
$benutzer = $_POST['benutzer'];
if ($senden && $benutzer <> 't.user') {
$fehlermeldung = "Dieser Benutzer gibt es nicht! Moechten Sie Ihn trotzdem eintragen?";
print $fehlermeldung;
}
elseif ($senden && $benutzer == 't.user') {
print "Alles ok! Benutzer wird in Datenbank eingetragen.";
}
?>
</body>
</html>
hey,
natürlich geht das ...
wenn Du etwas ahnung von PHP und SQL hast, dürfte dies eigentlich kein großes problem darstellen.
wenn dies allerdings nicht der fall ist, würd ich mir zuerst ma ein tutorial zu beiden anschauen.
mfG,
Markus.
Hallo Markus,
Danke für Deine Antwort.
Ich arbeite schon ein wenig mit PHP und SQL. Die
Datenbankanbindung ist kein Problem und die SQL Statements
auch nicht. -> ist schon realisiert.
Mein Problem beschränkt sich auf das wiederholte Absenden
des Formulars, nach dem Hinweis. Danach sollte der Benutzer
durch Aufrufen des jeweilige Skripts: "benutzer_eintragen.php"
den Benutzer in die Datenbank einfügen.
(Das benutzer_eintragen.php Skript existiert schon und
funktioniert. -> nur zur INFO)
Wie kann ich dieses Problem angehen?
bis denn
Florian
hey,
ich weiß wirklich nicht, ob ich Dich richtig verstehe, aber versuchs mal...
falls der user noch nicht bekannt ist, leite auf eine seite weiter und frag da, ob er sich eintragen will oder nicht und reagier dementsprechend darauf...
eine bessere lsg. ("grad eingefallen...) ist meiner meinung nach folgende:
öffne über javascript eine popup mit den buttons "eintragen" und "nicht eintragen" ... über javascript kannst Du ja dann auf die Formular-elemente zugreifen (... . submit() ) !
mfG,
Markus
hi,
ganz einfach ..
<?php
if ($senden && $benutzer != 't.user') {
$fehlermeldung = "Dieser Benutzer gibt es nicht! Moechten Sie Ihn trotzdem eintragen?";
print $fehlermeldung;
}
elseif ($senden && $benutzer == 't.user') {
print "Alles ok! Benutzer wird in Datenbank eingetragen.";
// hier den input-befehl an die datenbank eintragen ..
}
?>
<html>
<body>
<form action="<? echo $PHP_SELF ?>" method="POST">
Benutzer: <input type="text" size="12" name="benutzer"><BR>
<input type="submit" name="senden" value="OK">
</form>
</body>
</html>
gruß
chris
Hi Chris und Markus,
ich glaube wir schreiben aneinander vorbei.
@Markus: JavaSkript kommt nicht in Frage.
-> kann man deaktivieren. Dann ist nichts
mit PopUp.
@Chris
Dein Skript ist doch identisch zu meinem.
Oder irre ich mich? Wenn ja kläre mich auf.
@an alle
Ich möchte falls der Benutzer <> zu dem
in der Datenbank (Dies wird beim ersten
Senden überprüft -> funktioniert) ist, dass
es trotzdem möglich sein durch erneutes Klicken
auf den OK-Button, dass der Benutzer in die
Datenbank eingetragen wird. Es sollte nur
vorher dieser Hinweis erfolgen, dass dieser
Benutzer noch nicht in der Datenbank vorhanden
ist. (NUR HINWEIS -> muss sein)
Danke für Eure Hilfe
Florian
hi florian,
@Chris
Dein Skript ist doch identisch zu meinem.
Oder irre ich mich? Wenn ja kläre mich auf.
es ist identisch .. NUR die abfrage if - elseif muss VOR dem formular stehen .. du schickst das formular ja an sich selbst, d.h. das die daten erst NACH dem versenden zur verfügung stehen und in dem fall in der if - elseif analysiert werden können ..
zum besseren verständnis:
1. schritt - formular wird zum ersten mal angezeigt
2. schritt - formular wird ausgefüllt und an sich selbst geschickt
gruß
chris
Hallo Florian,
hab zwar nicht genau verstanden was du gemeint hast, aber mal bischen antwort...
wahrscheinlich ziemlich unübersichtlich und vielleicht auch tippfehler drin aber vielleicht hilfts dir trotzdem..
$senden = $_POST['senden'];
$benutzer = $_POST['benutzer'];
// für was braucht man diese zwei zeilen?? haben die variablen nicht automatisch den wert?
if ($senden && $benutzer <> 't.user') {
// diesen Test wirst du dann wahrscheinlich über eine Datenbank Abfrage durchführen müssen.. weiß jetzt nicht ob du weißt wie das geht? ;-)
Struktur könnte dann ungefähr so ausschauen:
$fehlermeldung = "Dieser Benutzer gibt es nicht! Moechten Sie Ihn trotzdem eintragen?";
print $fehlermeldung;
für eine zweite bestätigung könntest du hier entweder nochmal ein Formular hinmachen oder einen einfachen link der den User-Namen als Parameter übergibt..
am besten so in der art..
?>
<form action="<?php echo $PHP_SELF?>" method="post">
<input type="hidden" name="benutzer" value="<?php echo $benutzer?>">
<input type="submit" name="eintragen" value="Eintragen">
</form>
<?php
}
elseif ($senden && $benutzer == 't.user') {
print "Alles ok! Benutzer wird in Datenbank eingetragen.";
}
hier dann noch das Eintragen eines neuen Benutzers (nach der zweiten Abfrage):
[mysql-Befehl INSERT INTO]
wenn erfolgreich:
print "Alles ok! Benutzer wird in Datenbank eingetragen.";
wenn nicht:
print "Es ist ein Fehler aufgetreten";
?>
</body>
</html>
machs über session...
falls variable noch nicht registriert ist, meldung und variable registrieren...
falls variable registriert, Eintrag in DB durch drücken des OK-Button erlauben...
... jetz aber ...;)
mfG,
Markus.