Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Weiterleitung mit PHP - anfängerfrage
Frage
Hallo noch einmal,
ich hab folgendes Problem:
Ich habe
Formular_seite1.html
check1.php
Formular_seite2.php
check2.php
Antwortseite.php
Ich würde gern nach Prüfung der Eingabedaten auf formular_seite1.html mich bei erfolgreicher Prüfung auf formular_seite2. weiterleitet.
Wie mach ich das?
Gibt es eine Weiterleitung bei PHP ohne ein weiteres Formular zu verwenden?
Mit Include scheint es nicht zu funktionieren:
[code]
<?php
if ($name_des_Befragten!=""){
include("formular_seite2.php");
}
else{
echo "<p>Es fehlen Daten</p>";
}
?>
Danke Euch für Tips
Gruss Mel
Antwort 1 von naja
hi,
also deine checkseite könnte so aussehen:
mfg naja
ps: weiß nicht ob das das ist was du suchst, hab deine anfrage glaub ich nicht ganz verstanden...
also deine checkseite könnte so aussehen:
<?php
// code zum prüfen von eingaben
header(´Location: link zum file´);
?>
mfg naja
ps: weiß nicht ob das das ist was du suchst, hab deine anfrage glaub ich nicht ganz verstanden...
Antwort 2 von Mel
sorry,
ich versuch nochmal mich auszudrücken.
Ich will von formular_seite1 nach erfolgtem check auf formular_seite2.landen und hatte auch bereits folgendes ausprobiert:
<?php
if ($name_des_Befragten!=""){
header(´Location: formular_seite2.php´);;
}
else{
echo "<p>Es fehlen Daten</p>";
}
?>
Weisst Du, was ich mein?
Dank Dir
Mel
ich versuch nochmal mich auszudrücken.
Ich will von formular_seite1 nach erfolgtem check auf formular_seite2.landen und hatte auch bereits folgendes ausprobiert:
<?php
if ($name_des_Befragten!=""){
header(´Location: formular_seite2.php´);;
}
else{
echo "<p>Es fehlen Daten</p>";
}
?>
Weisst Du, was ich mein?
Dank Dir
Mel
Antwort 3 von naja
hat $name_des_befragten nen wert?
Antwort 4 von Mel
Zitat:
hat $name_des_befragten nen wert?
hat $name_des_befragten nen wert?
Ja, ich hab im Formular einen WErt eingeben, falls Du das meinst.
Hmh, da steh ich nun echt auf dem Schlauch oder?
gruss Mel
Antwort 5 von naja
poste mal alle drei dateien bitte.
und nutze mal $_POST[´name_des_befragten´];
und alle dateien zeigen :-)
und nutze mal $_POST[´name_des_befragten´];
und alle dateien zeigen :-)
Antwort 6 von naja
5 dateien natürlich, hab ich mich vertan....
Antwort 7 von Mel
Zitat:
und nutze mal $_POST[´name_des_befragten´];
und nutze mal $_POST[´name_des_befragten´];
das hab ich schon geändert aber es will trotzdem nicht funktionieren
ich hab gerad gelesen, dass evtl. einstellungen auf dem Server störend sein können in Bezug auf den header...
aber ich werd gleich mal die Dateien posten
gruss mel
Antwort 8 von Mel
Hier die Lösung des header-Problems:
Laut den http-Spezifikationen muss es sich um eine absolute Url im Header handeln, dann klappt auch die Weiterleitung.
Ich hoffe, daß die Lösung auch anderen Verzweifelten hilft.
Cheers Mel
Laut den http-Spezifikationen muss es sich um eine absolute Url im Header handeln, dann klappt auch die Weiterleitung.
<?php
if ($_POST["name_des_befragten"]!=""){
header("location: http://www.xyz.com/pfc/Formular_seite2.php ");
}
else{
echo "<p>Es fehlen Daten</p>";
}
?>
Ich hoffe, daß die Lösung auch anderen Verzweifelten hilft.
Cheers Mel
Antwort 9 von Daniel776
<?php
session_start();
$Feld1 = $_REQUEST["form_Feld1"];
$Feld2 = $_REQUEST["form_Feld2"];
if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "insert" )
{
// Pflichtfeldkontrolle
$error_msg = "";
if ( $_REQUEST["form_Feld1"] == "" )
{
$error_msg = "Bitte Feld1 belegen!" ."<br>";
}
if ( $_REQUEST["form_Feld2"] == "")
{
$error_msg .= "Bitte Feld2 belegen";
}
if ( $error_msg == "")
{
$_SESSION["st"] = 1;
header("Location: ausgabe.php?<? SID;?>");
die();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>Prüfen</title>
</head>
<body><form action="<? echo $_REQUEST[$PHP_SELF]; ?>" method="post">
<table width="550" border="0" cellspacing="5" cellpadding="2">
<tr>
<td align="right">Feld1<input type="text" name="form_Feld1" size="15" border="0"></td>
</tr>
<tr>
<td align="right">Feld2<input type="text" name="form_Feld2" size="15" border="0"></td><p><? echo $error_msg ?></p>
</tr>
<tr>
<td align="right"><input type="Reset" name="abbrechen" value="Reset">
<input type="hidden" name="do" value="insert">
<input type="submit" name="submit" value="Erstellen"></td>
</tr>
<tr>
<td align="right"><a href="index.php?<? $_SESSION[st]=0?>">zurück</a>
</tr>
</table>
</form>
</body>
</html>
session_start();
$Feld1 = $_REQUEST["form_Feld1"];
$Feld2 = $_REQUEST["form_Feld2"];
if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "insert" )
{
// Pflichtfeldkontrolle
$error_msg = "";
if ( $_REQUEST["form_Feld1"] == "" )
{
$error_msg = "Bitte Feld1 belegen!" ."<br>";
}
if ( $_REQUEST["form_Feld2"] == "")
{
$error_msg .= "Bitte Feld2 belegen";
}
if ( $error_msg == "")
{
$_SESSION["st"] = 1;
header("Location: ausgabe.php?<? SID;?>");
die();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>Prüfen</title>
</head>
<body><form action="<? echo $_REQUEST[$PHP_SELF]; ?>" method="post">
<table width="550" border="0" cellspacing="5" cellpadding="2">
<tr>
<td align="right">Feld1<input type="text" name="form_Feld1" size="15" border="0"></td>
</tr>
<tr>
<td align="right">Feld2<input type="text" name="form_Feld2" size="15" border="0"></td><p><? echo $error_msg ?></p>
</tr>
<tr>
<td align="right"><input type="Reset" name="abbrechen" value="Reset">
<input type="hidden" name="do" value="insert">
<input type="submit" name="submit" value="Erstellen"></td>
</tr>
<tr>
<td align="right"><a href="index.php?<? $_SESSION[st]=0?>">zurück</a>
</tr>
</table>
</form>
</body>
</html>
Antwort 10 von Daniel776
ausgabe.php
<?
session_start();
$Feld1 = $_REQUEST["form_Feld1"];
$Feld2 = $_REQUEST["form_Feld2"];
if ($_SESSION["st"] != 1)
{
die();
}
echo "Guten Tag!" . "<br><br>";
echo "$Feld1" . "$Feld2";
session_destroy();
?>
<?
session_start();
$Feld1 = $_REQUEST["form_Feld1"];
$Feld2 = $_REQUEST["form_Feld2"];
if ($_SESSION["st"] != 1)
{
die();
}
echo "Guten Tag!" . "<br><br>";
echo "$Feld1" . "$Feld2";
session_destroy();
?>
Antwort 11 von Daniel776
Damit hast du nur 2 Dateien und hoffendlich alles was du haben willst. Pflichtfeldkontrolle und zusätzlich durch Session ist gewährleistet das die Ausgabeseite nicht ohne die erste Seite geöffnet werden kann.
if ($_SESSION["st"] != 1)
Mfg
if ($_SESSION["st"] != 1)
Mfg
Antwort 12 von Mel
Danke Daniel,
mit session hab ich mich noch nicht auseinandergesetzt, aber scheint dringend notwendig.
ich schau mir das gleich mal genauer an...
Gruss Mel
mit session hab ich mich noch nicht auseinandergesetzt, aber scheint dringend notwendig.
ich schau mir das gleich mal genauer an...
Gruss Mel
Antwort 13 von Mel
Hallo,
so hab mich mal mit dem Thema Session ein wenig auseinandergesetzt und hab mir gerade dazu den Code von DAniel angeschaut.
Frage:
die Zeile
Ganz genau ist mir "do" und "insert" unklar. Worauf beziehen sich die beiden Strings?!
Ich denke, daß ich die Zeile weglassen kann, da sie hier nicht gebraucht wird oder?
Gruss und grosses Dankeschön Mel
so hab mich mal mit dem Thema Session ein wenig auseinandergesetzt und hab mir gerade dazu den Code von DAniel angeschaut.
<?php
session_start();
$Feld1 = $_REQUEST["form_Feld1"];
$Feld2 = $_REQUEST["form_Feld2"];
if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "insert" )
{
// Pflichtfeldkontrolle
$error_msg = "";
if ( $_REQUEST["form_Feld1"] == "" )
{
$error_msg = "Bitte Feld1 belegen!" ."<br>";
}
if ( $_REQUEST["form_Feld2"] == "")
{
$error_msg .= "Bitte Feld2 belegen";
}
if ( $error_msg == "")
{
$_SESSION["st"] = 1;
header("Location: ausgabe.php?<? SID;?>");
die();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>Prüfen</title>
</head>
<body><form action="<? echo $_REQUEST[$PHP_SELF]; ?>" method="post">
<table width="550" border="0" cellspacing="5" cellpadding="2">
<tr>
<td align="right">Feld1<input type="text" name="form_Feld1" size="15" border="0"></td>
</tr>
<tr>
<td align="right">Feld2<input type="text" name="form_Feld2" size="15" border="0"></td><p><? echo $error_msg ?></p>
</tr>
<tr>
<td align="right"><input type="Reset" name="abbrechen" value="Reset">
<input type="hidden" name="do" value="insert">
<input type="submit" name="submit" value="Erstellen"></td>
</tr>
<tr>
<td align="right"><a href="index.php?<? $_SESSION[st]=0?>">zurück</a>
</tr>
</table>
</form>
</body>
</html>
Frage:
die Zeile
if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "insert" )
versteh ich nicht so ganz. Ganz genau ist mir "do" und "insert" unklar. Worauf beziehen sich die beiden Strings?!
Ich denke, daß ich die Zeile weglassen kann, da sie hier nicht gebraucht wird oder?
Gruss und grosses Dankeschön Mel
Antwort 14 von Mel
Sorry,
ich war wohl etwas übermüdet und hab das hiddden-feld nicht gesehen.
Die Frage hat sich damit schon geklärt.
P.S. Auf die Frage hätte ich auch nicht geantwortet. :-)
ich war wohl etwas übermüdet und hab das hiddden-feld nicht gesehen.
Die Frage hat sich damit schon geklärt.
P.S. Auf die Frage hätte ich auch nicht geantwortet. :-)