christophkoeln
Goto Top

PHP Formular Weiterleitung abhängig vom Inhalt möglich ?

Liebe Admins,

Ich möchte Euch mal wieder um Hilfe bei einem "Kreativitätsblock" bitten ...

simples Setting: PHP-Formular mit einem Textfeld. Je nach Eingabe des Users in das Textfgeld soll nun Seite B oder Seite C der selben Site aufgerufen werden, will heißen: ist eine eingabeabhängige Verlinkung möglich und wenn ja, wie ?

Gruß aus Kölle

Content-ID: 135817

Url: https://administrator.de/contentid/135817

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

maretz
maretz 12.02.2010 um 12:29:11 Uhr
Goto Top
ja - sie ist möglich. Mittels Preg_match z.B. kannst du Text-Strings vergleichen.

Das wie überlasse ich dir, deiner Phantasie und ggf. deinem Blick auf www.php.net ;)
christophkoeln
christophkoeln 12.02.2010 um 13:58:22 Uhr
Goto Top
Es geht mir nicht (!) um den Textvergleich, der ist simpel - ich hätte auch Zahlen oder boolsche Parameter nennen können - es geht mir um die If-Abfrage am Formular - wie muss ich die konkret (!) formulieren ?

Ausserdem - ganz generell - hier in einem Forum auf Fachbücher, Literatur oder andere Foren zu verweisen ist wenig hilfreich. Dann lieber gar nicht antworten.
maretz
maretz 12.02.2010 um 14:05:48 Uhr
Goto Top
Also: Du hast dein Formular, drückst auf Senden -> oben steht ja <form action=....> -> in dem form-Bereich verweist du auf deine PHP-Seite. Dort ist es eine simple if-Abfrage

if (preg_match($_POST....)) {
...} else {
.,..
}

Und das musst du jetzt nur abhängig von deinen Anforderungen ausfüllen.

Und ausserdem - ganz generell - bringt es bei sowas mehr die Leute auf php.net u.ä. mit dem richtigen Suchbegriff zu verweisen als das ich hier die Doku von php.net o.ä. nochmal abschreibe. Es ist ja nicht so das php.net kostenpflichtig wäre oder du da nicht dran kommen kannst. Weiterhin findest du dort auch die genauen Möglichkeiten die preg_match dir alle liefert,...

Aber gut - wenn es dir lieber ist bei sowas dann gar keine Antwort zu erhalten statt die Antwort zu bekommen wo du die Lösung findest dann bitte...
christophkoeln
christophkoeln 12.02.2010 um 14:40:25 Uhr
Goto Top
Also - ich wollte Dir nicht persönlich auf den Schlips treten, aber Internet-Quellen zu suchen ist wirklich nicht das Problem !
Das Problem ist aber u.a., dass Fragen nicht konkret beantwortet werden. Deine hilft ebenfalls nicht weiter.
mit "..." kann ich nichts anfangen - genau da, wo Deine Anführungszeichen stehen, sollte die Antwort auf meine Frage zu finden sein.
Ich bin mir recht sicher, dass Du die Lösung nicht so einfach aus dem Ärmel schüttelst. Wie baue ich die Links zur einen oder anderen Seite ein, das ist die Frage !!!
Würde mich freuen, wenn Du es nochmal in "ausführlich" versuchst.
maretz
maretz 12.02.2010 um 15:04:12 Uhr
Goto Top
Doch - auch das ist kein Problem. Auch hier hilft dir die PHP.net-Seite weiter. Um genau zu sein der Befehl

"header" (mit dem "Location" dran).

http://de.php.net/manual/de/function.header.php -> dort steht nun wirklich genau das Beispiel:

[quote]
header('Location: http://www.example.com/');
[/quote]

Entweder ist dann header("seite1.html"); oder "header("seite2.html"); - das baust du in die IF-Abfrage ein und die Sache ist erledigt (vorher darf KEINE Ausgabe durch die PHP-Seite erfolgen da ein Header nur als erstes gesendet werden kann).

Es ist einfach das man nur Fragen stellt -> nur ganz ehrlich: Es bringt dich nicht weiter wenn ich dir den Code hier komplett schreibe. ICH kann PHP (und auch ne vielzahl anderer Sprachen) - nur muss ich das nicht programmieren. Und selbst wenn du bei Google nur nach "php html redirect" suchst dann findest du eine vielzahl von Seiten die dir den Header-Befehl auch gesagt hätten.... Ich stehe nunmal auf dem Standpunkt das ein Forum generell dafür da ist jemanden die Hilfe zur Selbsthilfe zu geben - und nicht dafür das andere deine Arbeit machen...
kopie0123
kopie0123 12.02.2010 um 15:21:23 Uhr
Goto Top
Moin,

maretz Meinung, was ein Forum leisten sollte, kann ich nur zu stimmen face-smile

Aber was anderes: Du lässt die Benutzer frei etwas eingeben? Dann musst drauf achten, dass die Eingaben filterst bzw validierst. Benutzereingaben sollten aus Sicherheitsgründen immer überprüft werden.

Gruß
christophkoeln
christophkoeln 12.02.2010 um 15:33:54 Uhr
Goto Top
Sorry, das ist heiße Luft ...
mit header() kann das IMHO nicht funktionieren !
Zu Deinem Standpunkt: ich stehe mitten im wirklich stressigen Berufsleben, mit 12 Stunden-Tagen etc., habe einige Baustellen ausserhalb von PHP zu bearbeiten, eine Familie zu ernähren und ganz selten auch mal Zeit für Freizeit oder Hobbies.
Das Letzte, was ich suche ist "Hilfe zur Selbsthilfe" - ich brauche hier keinen Pädagogen, sondern jemand, der mir mit ein paar Zeilen Code aushilft, einfach so - wenn es denn in seinen Möglichkeiten liegt.
Also - wäre wirklich freundlich, wenn Du die Lösung hier mal aufschreiben könntest, ganz schlicht und einfach ohne irgendwelche weltanschaulichen Essays.
Ich wäre wirklich (!) sehr dankbar.
christophkoeln
christophkoeln 12.02.2010 um 15:49:47 Uhr
Goto Top
1. Die Meinungen über die Funktion eines Forums mögen geteilt sein - kein Problem.

2. Natürlich werden die möglichen Benutzereingaben überprüft und im Zweifelsfall dem Orkus übergeben! Schadcode dürfte weitgehen ausgeschlossen sein (100 % geht nimmer !)

Gruß
maretz
maretz 12.02.2010 um 16:44:22 Uhr
Goto Top
Das ist schön das es deine Meinung ist das es nicht funktionieren kann. Und entschuldige - aber die Leute die hier Schreiben haben AUCH nen Berufsalltag (und als Admin ist nen 12h-Tag durchaus mal drin - nicht nur bei dir). Auch die haben andere Baustellen. Und auch die haben ggf. Familien/Freunde/Hobbys...

Du solltest hier jetzt alles zusammenhaben -> die If-Funktion, die Header-Funktion usw... Das ganze zusammenschreiben musst du nunmal selbst - da hier eh keiner sagen kann wie das genau aussehen soll (es mag dich überraschen - aber meine Glaskugel hier verrät mir nicht wie deine $_POST["..."]-Variable heisst - und auf welche Werte die if-Abfrage verzweigen soll). Sollte dieses zuviel verlangt sein ist das kein Problem - gerne schreiben dir hier einige auch den kompletten Code so das du den einfach einbauen kannst. Allerdings musst du dann schon die Adresse geben an die Rechnung gehen soll. Denn: Diese Leute haben AUCH eine Familie, haben AUCH einen Stressigen Berufsalltag und das ist ggf. deren Job das die am Programmieren sind.

Von meiner Seite aus ist hier jetzt Ende. Ob du mir glaubst das ich den Code schreiben kann oder nicht - mir zimlich egal. ICH habe das Problem nunmal nicht.
Mitchell
Mitchell 12.02.2010 um 17:29:10 Uhr
Goto Top
Hi christop,

kleiner Tipp, wie du dir vieles an Nachfragen und Kommentaren ersparen kannst. Information, Information, Information...du schreibst z.B., dass du ein Script mit Feld hast, wohl auch schon etwas mit PHP drin. Genau das gibst du hier wieder, so hilfst du nicht nur dir (deine Lösung kommt evtl. schneller), sondern vorallem uns (siehe "maretz" und seine Glaskugel, die wir alle nicht besitzen).

Mfg
Mitchell
christophkoeln
christophkoeln 12.02.2010 um 17:41:19 Uhr
Goto Top
an Mitchell: Danke für den Tipp - muss mal schauen, wie man hier am besten Code demonstriert und werde den hochladen, wenn ich morgen oder übermorgen wieder dazu komme. Vielleicht fällt Dir ja dann was ein - wäre schön.

Gruß aus Köln
dog
dog 13.02.2010 um 02:06:17 Uhr
Goto Top
Vielleicht solltest du dich wirklich mal auf die Hilfe einlassen, die dir hier von Leuten angeboten wird, die wesentlich mehr Ahnung von PHP haben als du face-smile

Im Übrigen kann ich maretz nur zustimmen: Wenn du hier fertige Lösungen haben willst kannst du das gerne haben - gegen den üblichen Studenlohn der Forenteilnehmer.

Aber weil WE ist:
<?php

	if (isset($_POST['frm_sbmt'])) {  
		switch (@$_POST['frm_go']) {  

			case 'google':  
				$tgt = 'http://www.google.de';  
				break;

			case 'web':  
				$tgt = 'http://web.de';  
				break;

			case 'wiki':  
				$tgt = 'http://de.wikipedia.org';  
				break;

			default:
				die("Input Error");  
				break;
		}
		header('Location: '.$tgt);  
		exit(0);
	}

?>
<html>
	<body>
		<form action="" method="post">  
			<select name="frm_go">  
				<option value="google">Google</option>  
				<option value="web">web.de</option>  
				<option value="wiki">Wikipedia</option>  
			</select>
			<input value="Los" name="frm_sbmt" />  
		</form>
	</body>
</html>

Wenn dir das immer noch nicht passt hat es einen ganz einfachen Grund: Du hast deine Frage falsch formuliert.
christophkoeln
christophkoeln 13.02.2010 um 11:10:09 Uhr
Goto Top
@dog: Zunächst einmal vielen Dank für Deinen Lösungsvorschlag - werde ihn gleich mal testen.
Zum Allgemeinen: ich bin großer Anhänger des Tutor-Prinzips, in der Schule, in der Uni und auch im Beruf. Wir können nur gemeinsam wachsen, wenn wir gewillt sind, uns gegenseitig zu helfen und ich lebe dies in meinem professionellen Bereich auch. Dies beinhaltet teilweise auch mal das "Vorkauen" von Klein-Lösungen. Ich sehe den Sinn von Foren ebenfalls darin. Hier geht es nicht um Profi-Projekte, sondern um Code-Häppchen und für die gibt es überhaupt keinen Stundenlohn, nirgendwo - aber ein ernst gemeintes "Danke" - und das ist doch auch was wert, oder ?