Supportnet Computer
Planet of Tech

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:



<?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

Antwort 3 von naja

hat $name_des_befragten nen wert?

Antwort 4 von Mel

Zitat:

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 :-)

Antwort 6 von naja

5 dateien natürlich, hab ich mich vertan....

Antwort 7 von Mel

Zitat:
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.

<?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>

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();
?>

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

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

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.


 <?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 möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: