 |
06.07.2005, 07:23
| Nach oben
#1 | | Gast | Weiterleitung funtkioniert nicht...
Ich habe ein Formular wo man sich eintragen kann (wer hätte das gedacht  )
Ich will wenn alles in Ordnung ist (formularüberprüfung postiv) dass die Seite dann weitergeleitet wird in mein index.php wieder.
hab mit: PHP-Code: <?php //HTML- und PHP-Stuff if ($pruf == true) { header("Location: [url]http://zieladresse/zieldatei.php"[/url]); } //PHP- und JS-Stuff ?> aber er leitet es nicht weiter.
Also $pruf wird aufjedenfall true wenn die Eingaben des Formular stimmen.
| |
| |
06.07.2005, 08:28
| Nach oben
#2 | | Benjamin Klaile
Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.471
| Re: Weiterleitung funtkioniert nicht...
Hi,
mich stört an Deinem Code, dass vor der if-Abfrage "HTML-Stuff" steht. Zitat: |
Zitat von cengiz PHP-Code: <?php //HTML- und PHP-Stuff if ($pruf == true) { header("Location: [url]http://zieladresse/zieldatei.php"[/url]); } //PHP- und JS-Stuff ?> | Les mal hier: http://php.net/header Zitat: |
Beachten Sie, dass header() aufgerufen werden muss, bevor eine Ausgabe gesendet wurde, egal ob normale HTML Tags, leere Zeilen in einer Datei oder von PHP. Ein weit verbreiteter Fehler ist mittels include(), require(), oder anderen Dateizugriffsmethoden Code zu lesen, und so unbewusst Leerzeichen oder Leerzeilen auszugeben, bevor header() aufgerufen wird. Das gleiche Problem besteht auch bei Verwendung einer einzigen PHP/HTML Datei.
| Das heißt, dass im Normalfall vor der Verwendung von header() ausschließlich PHP-Code stehen darf.
Grüße Ben.
Geändert von Jann Hendrik (21.06.2007 um 17:15 Uhr).
Grund: php-info.org - link entfernt.
|
| |
06.07.2005, 08:40
| Nach oben
#3 | | Gast | Weiterleitung funtkioniert nicht...
hmm also
am anfang der datei habe ich mit javascript das desing eingefügt.
also das kann ich unmöglich wegmachen weil nun mal mit javascript das design erstellt wird.
also gibt es keien andere möglichkeit nach dem senden des formulares weiterzuleiten?
also im beispiel mit dem formular eingabe gibet ja nur PHP-Stuff aber bei mir ist halt JS und HTML drin :-/
| |
| |
06.07.2005, 11:18
| Nach oben
#4 | | Benjamin Klaile
Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.471
| Weiterleitung funtkioniert nicht... Zitat: |
Zitat von cengiz hmm also
am anfang der datei habe ich mit javascript das desing eingefügt.
also das kann ich unmöglich wegmachen weil nun mal mit javascript das design erstellt wird.
also gibt es keien andere möglichkeit nach dem senden des formulares weiterzuleiten?
also im beispiel mit dem formular eingabe gibet ja nur PHP-Stuff aber bei mir ist halt JS und HTML drin :-/ | Du kennst doch das oben verlinkte Tutorial.
Da beschreibe ich doch eine Möglichkeit. |
| |
06.07.2005, 19:07
| Nach oben
#5 | | Gast | Weiterleitung funtkioniert nicht...
also ich habs mir schon durchgelesen aber das steht ja nichts anderes also auch php.net
und so wie es gemacht hast habe ich es ja auch eigentlich...gucke ob irgendwo ein fehler ist wenn nicht leite ich weiter ansonsten noch mal zurück zum formular
| |
| |
06.07.2005, 21:08
| Nach oben
#6 | | Benjamin Klaile
Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.471
| Weiterleitung funtkioniert nicht...
Gibt es denn eine Fehlermeldung?
|
| |
07.07.2005, 07:13
| Nach oben
#7 | | Gast | Weiterleitung funtkioniert nicht...
also ich kriege keine fehlermeldung ausgegeben.
| |
| |
08.07.2005, 17:53
| Nach oben
#8 | | Jann Hendrik Bekaan
Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.203
| Weiterleitung funtkioniert nicht...
wenn auch ungerne, poste mal hier den formatierten Code.
|
| |
11.07.2005, 07:20
| Nach oben
#9 | | Gast | Weiterleitung funtkioniert nicht...
ok...
sry das ich erst jetzt poste aber am Wochenende hab ich kein zugriff auf die Datei. PHP-Code:
<html> <head> <script language="JavaScript" src="../design/slt_design.js" type="text/javascript"> </script>
<script language="JavaScript" src="../design/slt_navigation.js" type="text/javascript"> </script>
<script> SltHead("Werk Düsseldorf / PF-SLT"); SltBodyStart(); SltBodyInit(); SltContentStart("Raumreservierung", "Reservierung","schmal"); </script>
<link rel="stylesheet" type="text/css" media="all" href="jscalendar/calendar.css" title="win2k-cold-1" />
<!-- main calendar program --> <script type="text/javascript" src="jscalendar/calendar.js"></script> <script type="text/javascript" src="jscalendar/calendar.css"></script>
<!-- language for the calendar --> <script type="text/javascript" src="jscalendar/lang/calendar-de.js"></script> <!-- the following script defines the Calendar.setup helper function, which makes adding a calendar a matter of 1 or 2 lines of code. --> <script type="text/javascript" src="jscalendar/calendar-setup.js"></script> </head>
<h3>Meeting-Raum reservieren</h3> <body> <?php $pruf = true; $vorhanden = false; if (!isset($_POST["submit"])) {
echo '<form name="formular" method="POST"> <table border="0"> <tr> <td>Vorname:</td> <td><input name="vname" type="text"></td> </tr> <tr> <td>Name:</td> <td><input name="name" type="text"></td> </tr> <tr> <td>Datum:</td> <td><input name="datum" id="f_datum" type="text" onchange="document.form_news.new_rem_start_date.value=document.form_news.new_ start_date.value"> <img src="jscalendar/img.gif" id="start" style="cursor: pointer; border: none;" title="Datum auswählen"><font size="-3"> (z.B. 07.09.2005)</font></td></td> </tr> <tr> <td>Uhrzeit von:</td> <td><input name="uhrzeitvon" type="text"><font size="-3"> (z.B. 08:00)</font></td> </tr> <tr> <td>Uhrzeit bis:</td> <td><input name="uhrzeitbis" type="text"><font size="-3"> (z.B. 09:00)</font></td> </tr> <tr height="50"> <td><input name="submit" type="submit" value="Eintragen"></td> <td><input name="reset" type="reset" value="Löschen"></td> </tr> </table> </form>';
} else { $file = "csv/reservierung.csv"; $vname = $_POST["vname"]; $name = $_POST["name"]; $datum = $_POST["datum"]; $zeitv = $_POST["uhrzeitvon"]; $zeitb = $_POST["uhrzeitbis"]; $datZ = explode(".", $datum); $date = date('Y'); $now = time(); if ($vname == "") { echo "<p><b>Vornamen bitte eingeben!</b></p>"; $pruf = false; } if ($name == "") { echo "<p><b>Namen bitte eingeben!</b></p>"; $pruf = false; } if ($datum == "") { echo "<p><b>Ein Datum bitte eingeben!</b></p>"; $pruf = false; } else { if (!ereg("([0-9]{2}).([0-9]{2}).([0-9]{4})", $datum)) { echo "<p><b>Eingabeformat des Datums stimmt nicht!</b></p>"; $pruf = false; } else { if ( $datZ[0] >= 32 ) { echo "<p><b>Ungültiger Tag!</b></p>"; $pruf = false; } if ( 13 <= $datZ[1]) { echo "<p><b>Ungültiger Monat!</b></p>"; $pruf = false; } if ($datZ[2] < $date) { echo "<p><b>Ungültige Jahreszahl!</b></p>"; $pruf = false; } } } if ($zeitv == "") { echo "<p><b>Zeitangabe fehlt!</b></p>"; $pruf = false; } else { if (!ereg("([0-9]{2}:(([0-9]{2})", $zeitv)) { echo "<p><b>Eingabeformat der Uhrzeit berücksichtigen!</b></p>"; $pruf = false; } else { if ($zeitvZ[0] >= 24 || $zeitvZ[1] > 59 || $zeitbZ[0] >= 24 || $zeitbZ[1] > 59) { echo "<p><b>Uhrzeit ungültig!</b></p>"; $pruf = false; } else { if ($zeitbZ[0] < $zeitvZ[0]) { echo "<p><b>'<i>Uhrzeit bis</i>' darf nicht kleiner als '<i>Uhrzeit von</i>' sein!</b></p>"; $pruf = false; } } } }
if ($zeitb == "") { echo "<p><b>Zeitangabe fehlt!</b></p>"; $pruf = false; } else { if (!ereg("([0-9]{2}:(([0-9]{2})", $zeitb)) { echo "<p><b>Eingabeformat der Uhrzeit berücksichtigen!</b></p>"; $pruf = false; } }
if ($pruf == true) { $file = "csv/reservierung.csv"; $handle = fopen($file, 'r'); $vorhanden = file($file); while ( ($data = fgetcsv($handle, filesize($file), '-') ) != false ) { $daten[] = $data; $datumF = explode('.', $data[2]); $uhrzBisF = explode(':', $data[4]); $uhrzVonF = explode(':', $data[3]); $timestmpBisF[] = mktime($uhrzBisF[0], $uhrzBisF[1], 0, $datumF[1], $datumF[0], $datumF[2]); $timestmpVonF[] = mktime($uhrzVonF[0], $uhrzVonF[1], 0, $datumF[1], $datumF[0], $datumF[2]); $timestmpDatF[] = mktime(0, 0, 0, $datumF[1], $datumF[0], $datumF[2]); } fclose($handle); $datumFrm = explode('.', $datum); $uhrzVonFrm = explode(':', $zeitv); $uhrzBisFrm = explode(':', $zeitb); $timestampVonFrm = mktime($uhrzVonFrm[0], $uhrzVonFrm[1], 0, $datumFrm[1], $datumFrm[0], $datumFrm[2]); $timestampBisFrm = mktime($uhrzBisFrm[0], $uhrzBisFrm[1], 0, $datumFrm[1], $datumFrm[0], $datumFrm[2]); $timestampDatFrm = mktime(0, 0, 0, $datumFrm[1], $datumFrm[0], $datumFrm[2]); if ($timestampDatFrm == (mktime(0, 0, 0, date('n'), date('j'), date('Y')))) { if ($timestampVonFrm < $now) { echo "<p><b>Die Urhzeit liegt in der Vergangenheit!</b><br></p>"; $pruf = false; } } for ($i = 0; $i < (count($timestmpDatF)); $i++) { if ($timestmpDatF[$i] == $timestampDatFrm) { if ($timestampVonFrm >= $timestmpVonF[$i] && $timestampBisFrm <= $timestmpBisFrm[$i]) { echo "<p><b>Sie überschneiden sich mit dem folgendem Termin:</b></p><br>"; $pruf = false; $string = explode('-',$vorhanden[$i]); echo "<p><b>$string[0] $string[1] $string[2] <i> $string[3]-$string[4] Uhr</i></b></p>"; break; } if ($timestampVonFrm <= $timestmpVonF[$i] && $timestampBisFrm <= $timestmpBisF[$i] && $timestampBisFrm > $timestmpVonF[$i]) { echo "<b>Sie überschneiden sich mit dem folgendem Termin:</b><br>"; $pruf = false; $string = explode('-',$vorhanden[$i]); echo "<p><b>$string[0] $string[1] $string[2] <i> $string[3]-$string[4] Uhr</i></b></p>"; break; } if ($timestampVonFrm >= $timestmpVonF[$i] && $timestampBisFrm <= $timestmpBisF[$i] && $timestampBisFrm > $timestmpVonF[$i]) { echo "<b>Sie überschneiden sich mit dem folgendem Termin:</b><br>"; $pruf = false; $string = explode('-',$vorhanden[$i]); echo "<p><b>$string[0] $string[1] $string[2] <i> $string[3]-$string[4] Uhr</i></b></p>"; break; }
if ($timestampVonFrm >= $timestmpVonF[$i] && $timestampVonFrm < $timestmpBisF[$i] && $timestampBisFrm > $timestmpVonF[$i]) { echo "<b>Sie überschneiden sich mit dem folgendem Termin:</b><br>"; $pruf = false; $string = explode('-',$vorhanden[$i]); echo "<p><b>$string[0] $string[1] $string[2] <i> $string[3]-$string[4] Uhr</i></b></p>"; break; } } } }
if ($pruf == true) { $wtage = array("Monday"=>"Montag", "Tuesday"=>"Dienstag", "Wednesday"=>"Mittwoch", "Thursday"=>"Donnerstag", "Friday"=>"Freitag", "Saturday"=>"Samstag", "Sunday"=>"Sonntag"); $date = explode('.', $datum); $wochentag = getdate(mktime(0, 0, 0, $date[1], $date[0], $date[2])); $wtagE = $wochentag["weekday"]; $zeiger = fopen($file, "a"); fwrite($zeiger, "".$vname."-".$name."-".$datum."-".$zeitv."-".$zeitb."-".$wtage[$wtagE]."\n"); //echo "<b>Die Reservierung wurde berücksichtigt</b>"; fclose($zeiger); header("Location: [url]http://IP-Adresse/neu/reservierung/index.php"[/url]); } print "<form name='formular' method='POST'> <table border='0'> <tr> <td>Vorname:</td> <td><input name='vname' type='text' value='$vname'></td> </tr> <tr> <td>Name:</td> <td><input name='name' type='text' value='$name'></td> </tr> <tr> <td>Datum:</td> <td><input name='datum' id='f_datum' type='text' value='$datum'> <img src='jscalendar/img.gif' id='start' style='cursor: pointer; border: none;' title='Datum auswählen'><font size='-3'> (z.B. 07.09.2005)</font></td></td> </tr> <tr> <td>Uhrzeit von:</td> <td><input name='uhrzeitvon' type='text' value='$zeitv'><font size='-3'> (z.B. 08:00)</font></td> </tr> <tr> <td>Uhrzeit bis:</td> <td><input name='uhrzeitbis' type='text' value='$zeitb'><font size='-3'> (z.B. 09:00)</font></td> </tr> <tr height='50'> <td><input name='submit' type='submit' value='Eintragen'></td> <td><input name='reset' type='reset' value='Löschen' onClick='return loschen()'></td> </tr> </table> </form> "; }
echo " <script type='text/javascript'> Calendar.setup({ inputField : 'f_datum', ifFormat : '%d.%m.%Y', button : 'start', singleClick : false }); </script>"; ?> <script> SltLinkboxStart(); SltLinkboxLink("Reservierungen anzeigen", "index.php");
SltLinkboxEnde("Reservierung"); SltBodyEnde(); </script> </body> </html> | |
| |
11.07.2005, 10:14
| Nach oben
#10 | | Jann Hendrik Bekaan
Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.203
| Re: Weiterleitung funtkioniert nicht... error_reporting
Du solltest zu Beginn des Skriptes folgendes stehen haben: PHP-Code: <?php error_reporting(E_ALL); ?> Dann werden dir Fehler im PHP-Code angezeigt. Dann weißt du, was du noch beseitigen musst. http://de2.php.net/error_reporting
Ebenso kann man das auch in die config-Datei schreiben, wenn diese auf jeder Seite zu Beginn eingebunden wird.
Mögliche Fehler die dann auftreten und wie man sie beheben kann: Notice: Use of undefined constant ... Notice: Undefined variable ...
und zu header(); Zitat: |
Zitat von Ben Les mal hier: http://php.net/header Zitat: |
Beachten Sie, dass header() aufgerufen werden muss, bevor eine Ausgabe gesendet wurde, egal ob normale HTML Tags, leere Zeilen in einer Datei oder von PHP. Ein weit verbreiteter Fehler ist mittels include(), require(), oder anderen Dateizugriffsmethoden Code zu lesen, und so unbewusst Leerzeichen oder Leerzeilen auszugeben, bevor header() aufgerufen wird. Das gleiche Problem besteht auch bei Verwendung einer einzigen PHP/HTML Datei.
| Das heißt, dass im Normalfall vor der Verwendung von header() ausschließlich PHP-Code stehen darf. | Da wird für dich keine Ausnahme gemacht!
|
| |
11.07.2005, 10:48
| Nach oben
#11 | | Gast | Weiterleitung funtkioniert nicht...
danke für deine antowrt
ich sitz im praktikum und hier gibt es überhaupt keinerlei Ausgabe der Fehlermeldung auch wenn ich error_reporting(E_ALL) einbinden. habe ich shcon versucht aber geht auch nicht.
ja zum header...
ja ich weiß ja das ich am Anfang include und ausgaben habe und ich brauche aber irgendwie trotzdem ne weiterleitung...
gibt es keine möglich keit via javascript oder HMTL sowas zu machen...
eigentlich ist es mir egal wie man es löst hauptsache es funtkioniert nach dem ich den button drücke und alles richtig ist.
| |
| |
11.07.2005, 11:00
| Nach oben
#12 | | Jann Hendrik Bekaan
Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.203
| Weiterleitung funtkioniert nicht...
über META-refresh kannst du das machen - aber nur im head
aber das ist für dich wohl auch schon zu spät...
per JS: bringt nichts, weil es deaktivierbar ist!
|
| |
11.07.2005, 11:09
| Nach oben
#13 | | Gast | Weiterleitung funtkioniert nicht...
js wäre sinnvoll...
das ding wird im intranet verwendet und bei denen ist javascript pflicht also wäre es doch machbar oder nicht?
wäre doch so oder? Code: <script LANGUAGE="JavaScript">
top.location.href='http://www.zieladresse.de/zielseite.html'
</script>
ehm das versteh ich nicht richtig...wie haben die das denn umgegangen | |
| |
11.07.2005, 11:13
| Nach oben
#14 | | Jann Hendrik Bekaan
Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.203
| Weiterleitung funtkioniert nicht...
da ich kein JS-Freund bin:
keine Ahnung!
ich verwende auf den von mir erstellten Seiten KEIN JS!
|
| |
11.07.2005, 13:11
| Nach oben
#15 | | Gast | Weiterleitung funtkioniert nicht...
danke dir trotzdem
hab alles hinbekommen
| |
| | |