Notice: Undefined variable: _Post in...
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfrage
betreff
break
code
datum
email
fehler
fehlermeldung
feld
frage
http
index
inhalt
login
page
post
text
trennlinie
url
zeile
-
Ich bin gerade dabei mir ein Kontaktformular zusammen zu basteln nur bin ich langsam am Verzweifeln, was die Übergabe der Daten mittels POST angeht.
Mein Formular schaut so aus:
<Form action="index.php?page=4&a=1" method="Post"> <div>Gewünschter Benutzername:</div> <div><input name="name" style="width:200px;" maxlength="14"></div> <div>Gewünschtes Password:</div> <div><input name="passwd" style="width:200px;" maxlength="14"></div> <div>E-Mail:</div> <div><input name="email" style="width:200px;" maxlength="30"></div> <div>Begründung:</div> <div><textarea name="txt" style="width:200px; height:150px;"></textarea></div> <div><center><input type="Submit" value="absenden"></center></div> </form>
Und mein PHP script, welches die Daten auswerten soll, schaut so aus:
$name1 = $_POST[name]; $passwd1 = $_Post[passwd]; $txt1 = $_Post[txt]; $email1 = $_Post[email]; if(isset($name1)){ if(isset($passwd1)){ if(isset($txt1)){ if(isset($email1)){ $x=1; } } } } if($x==1){ $mail_empfaenger = "xyz@xyz.de"; $mail_absender = $email; $betreff = $name; $text = "Mein Name ist $name1. /n $txt1 /n Mein gewünschtes Password lautet: $passwd1"; mail($mail_empfaenger, $betreff, $text,"From: $name1 <$mail_absender>"); echo("<center>Ihre Anfrage wurde abgeschickt.<p><a href=\"index.php\">Zurück</a></center>"); }else{ echo("<center>Es wurden nicht alle Felder ausgefüllt!<br> Ihre Anfrage wurde nicht abgeschickt.<p><a href=\"index.php?page=4\">Zurück</a></center>"); echo("name: $name1 <br>passwd: $passwd1 <br>txt: $txt1 <br>email: $email1"); }
schick ich dann die Daten ab (vom kontaktformular an das Script) dann erhalte ich folgende Meldungen:
Notice: Use of undefined constant name - assumed 'name' in D:\xampp\htdocs\v1.01\login.php on line 56
Notice: Undefined variable:_POST in D:\xampp\htdocs\v1.01\login.php on line 56
Notice: Use of undefined constant passwd - assumed 'passwd' in D:\xampp\htdocs\v1.01\login.php on line 57
Notice: Undefined variable: _Post in D:\xampp\htdocs\v1.01\login.php on line 57
Notice: Use of undefined constant txt - assumed 'txt' in D:\xampp\htdocs\v1.01\login.php on line 58
Notice: Undefined variable: _Post in D:\xampp\htdocs\v1.01\login.php on line 58
Notice: Use of undefined constant email - assumed 'email' in D:\xampp\htdocs\v1.01\login.php on line 59
Notice: Undefined variable: _Post in D:\xampp\htdocs\v1.01\login.php on line 59
Mittels Get geht alles wunderbar, nur ist es bei einem Kontaktformular nicht so schön und auch nicht sinnvoll, wenn das Password gut sichtbar in der Url steht. Zumal ich später noch ein loginsystem einbauen will und da brauche ich die Datenübergabe mittels POST.
Kann mir da wer helfen den Fehler zu finden? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Verbesserter Code:
$name1 = $_POST['name']; $passwd1 = $_POST['passwd']; $txt1 = $_POST['txt']; $email1 = $_POST['email'];
Die Fehlermeldungen sind da ja eigentlich recht selbsterklärend.
-
Ok, danke erstmal. Das hatte ich so am Anfang auch, glaub ich. Damit halbieren sich die Fehlermeldungen.
Bleiben nur noch die, die mir richtig Kopfzerbrechen bereiten:
Notice: Undefined index: name in D:\xampp\htdocs\v1.01\login.php on line 56
Notice: Undefined index: passwd in D:\xampp\htdocs\v1.01\login.php on line 57
Notice: Undefined index: txt in D:\xampp\htdocs\v1.01\login.php on line 58
Notice: Undefined index: email in D:\xampp\htdocs\v1.01\login.php on line 59 -
Schön wäre es besagte Zeilen +- 2 Zeilen aussen herum zu sehen, denn wirklich übersichtlich ist das hier mit dem Code immer nicht, da die Zeilenangaben fehlen. Kannst du vielleicht mal die Zeilen aus der login.php hier getrennt voneinander posten?
Und Lesestoff auch noch: http://www.php-fehlermeldungen.de/topic25.html
Beitrag zuletzt geändert: 20.1.2011 8:26:54 von karpfen -
Na dann machen wir dies mal
<?php $x=0; error_reporting(E_ALL); if(!Isset($_GET['a'])){ echo(" <div style=\"margin: 5px 0px 10px; width: 706px;\"> <H1>Einloggen/Registrieren</H1><p> Nun, einige werden sich sicherlich fragen, wozu man auf einer privaten Homepage unbedingt ein Loggin benötigt, kommen doch fast alle Anderen privaten Seiten ohne ein solches System aus. Die Frage ist durchaus berechtigt und ich will sie gerne beantworten.<br> Ich habe mich dafür entschieden, weil ich diese Seite universell nutzen möchte. Ich möchte hier sowohl der breiten Öffentlichkeit etwas bieten, meinen Freunden etwas zeigen aber auch Firmen etwas vorlegen können.<br> Nun gibt es aber Daten, die gehen der Öffentlichkeit und den Firmen nichts an, sondern sind einzig und allein für meine Freunde vorbehalten. Dann gibt es da aber auch wieder Daten, die brauchen meine Internetbekanntschaften nicht zu interessieren, dafür die Firmen aber umso mehr.<br> Um es kurz zu machen: Das System ist dazu da, Daten gefiltert unter die Leute zu bringen.<p> </div> <div style=\"height:150;\ border:1pt solid #5f6d7a;margin: 5px 0px 10px; width: 706px;\"> <div style=\"border: 3pt solid #5f6d7a; float:left;\"> <form method=\"POST\" action=\"index.php?page=4&a=2\"> <div>Benutzer</div><div><input name=\"name\" style=\"width:200px;\" maxlength=\"14\"></div> <div>Password</div><div><input type=\"password\" name=\"passwd\" style=\"width:200px;\" maxlength=\"14\"></div> <div><center><input type=\"Submit\" value=\"anmelden\"></center></div> </form> </div> <div style=\"border:0pt; float: left; margin: 5px 0px 20px 10px;\"> Wenn Sie bereits registriert sind und Zugangsdaten besitzen,<br> können Sie sich hier einloggen. </div> </div> <div style=\"margin:5px 0px 36px; width: 706px;\"> <div style=\"border: 3pt solid #5f6d7a; float:left;\"> <Form action=\"index.php?page=4&a=1\" method=\"Post\"> <div>Gewünschter Benutzername:</div> <div><input name=\"name\" style=\"width:200px;\" maxlength=\"14\"></div> <div>Gewünschtes Password:</div> <div><input name=\"passwd\" style=\"width:200px;\" maxlength=\"14\"></div> <div>E-Mail:</div> <div><input name=\"email\" style=\"width:200px;\" maxlength=\"30\"></div> <div>Begründung:</div> <div><textarea name=\"txt\" style=\"width:200px; height:150px;\"></textarea></div> <div><center><input type=\"Submit\" value=\"absenden\"></center></div> </form> </div> <div style=\"border:0pt; float: left; margin: 5px 20px 0px 10px; float:left;width: 465px;\"> Wenn Sie noch keinerlei Zugangsdaten haben oder aber Ihre Zugangsberechtigung abgelaufen ist, dann können Sie sich mittels Formulares links registrieren oder aber auch ihre Zugangsberechtigung verlängern.<br> Schreiben sie bitte in das Feld mit der Begründung, warum Sie die Zugangsdaten benötigen oder weshalb Sie sie verlängern lassen wollen und auch wer Sie sind.<br> Sind mir die Informationen zu dürftig, nicht vertrauenswürdig oder aber haben, aus meiner Sicht, kein berechtigtes Interesse, so werde ich die Freischaltung verständlicherweise nicht vornehmen.<br> Sollte jdoch nichts dagegen sprechen, dass sie die Daten bekommen, so werde ich die Freischaltung in der Regel innerhalb von drei Tagen vornehmen. </div> </div>"); }elseif($_GET['a']==1){ $name1 = $_POST['name']; $passwd1 = $_POST['passwd']; $txt1 = $_POST['txt']; $email1 = $_POST['email']; if(isset($name1)){ if(isset($passwd1)){ if(isset($txt1)){ if(isset($email1)){ $x=1; } } } } if($x==1){ $mail_empfaenger = "grey_wolf_web@yahoo.de"; $mail_absender = $email; $betreff = "$name wünscht Zugangsdaten"; $text = "Mein Name ist $name1. /n Ich möchte Zugangsdaten zu ihrer Website mit folgender Begründung: /n $txt1 /n Mein gewünschtes Password lautet: $passwd1"; mail($mail_empfaenger, $betreff, $text,"From: $name1 <$mail_absender>"); echo("<center>Ihre Anfrage wurde abgeschickt.<p><a href=\"index.php\">Zurück</a></center>"); }else{ echo("<center>Es wurden nicht alle Felder ausgefüllt!<br> Ihre Anfrage wurde nicht abgeschickt.<p><a href=\"index.php?page=4\">Zurück</a></center>"); echo("name: $name1 <br>passwd: $passwd1 <br>txt: $txt1 <br>email: $email1"); } }elseif($_GET['a']==2){ echo($_GET['a']); }elseif($_GET['a']==3){ echo($_GET['a']); }else{ echo($_GET['a']); } ?>
Diese wird mittels include() in die index.php eingefügt welche so aussieht:
<html> <head> <title> <?php error_reporting(E_ALL); $check = strstr($_SERVER["HTTP_USER_AGENT"], "IE"); if($check) { echo("fehler in adresse 0xGreyWolf"); }else{ echo ("Grey Wolfs Homepage"); } ?> </title> <link rel="stylesheet" type="text/css" href="style.css"><!--Stylesheetaufruf--> <?php error_reporting(E_ALL); include("#mysql.inc") ?> <!--MySQL zugangsdaten mittels PHP aufrufen--> <?php if($check) { echo(" <body style=\"background-color:blue; color:#fff; text-decoration:none; font-family:Lucida Console, verdana, sans-serif; font-size:12px;\"> <table style=\"width:100%; height:100%;\"><tr style=\"vertical-align: middle;\"><td><center> <b><p style=\"background-color:#fff; color:blue; font-size:14px; width:150px;\">Internetexplorer!</p><br><br> Sie nutzen den Internet Explorer. Dieser wird leider von dieser Website derzeit nicht unterstützt!<br> Tun Sie sich und auch sämtlichen Webdesignern einen Gefallen und nutzen Sie eine der vielen Alternativen.<Br> Der Internet Explorer ist der einzigste Browser, welcher sich nicht an die gängigen CSS-Standarts hält.<br> <br></center><table><tr><td width=\"150px\"></td><td style=\"align:left;\"><b> * Mozilla Firefox können sie unter <a href=\"http://www.mozilla-europe.org/de/firefox/\" style=\"text-decoration:none;color:#fff;\">http://www.mozilla-europe.org/de/firefox/</a> downloaden.<br> * Opera können Sie sich unter <a href=\"http://de.opera.com/download/\" style=\"text-decoration:none;color:#fff;\">http://de.opera.com/download/</a> downloaden.<br> * Safari können Sie sich unter <a href=\"http://www.apple.com/de/safari/\" style=\"text-decoration:none;color:#fff;\">http://www.apple.com/de/safari/</a> downloaden.<br> </b></td></tr></table> </b></td></tr></table>"); }else{ echo(" <body bgcolor=\"#5f6d7a\"> <div id=\"mother\"><!--Hauptcontainer, in welchem sich die komplette Seite befindet--> <div id=\"header\"><!--Header--> <a href=\"index.php\"><!--Bei klick auf den header weiterleitung zur Startseite--> <img src=\"bilder/header.jpg\" alt=\"Grey Wolf\" width=\"746\" height=\"194\" style=\"margin:20px 0px 0px;\"> </a> </div> <div class=\"menue_mother\"><!-- Hauptcontainer für das Menue--> <a href=\"index.php\" class=\"menue\"> <div class=\"menue\"> <img src=\"bilder/end_left.jpg\" style=\"float:left;\" class=\"menue_pic\"><!--linkes Ende des Menues als jpg--> Home </div> </a> <a href=\"index.php?page=1\" class=\"menue\"> <div class=\"menue\"> <img src=\"bilder/menue_line.jpg\" style=\"float:left;\" class=\"menue_pic\"><!--Trennlinie--> Test2 </div> </a> <a href=\"index.php?page=2\" class=\"menue\"> <div class=\"menue\"> <img src=\"bilder/menue_line.jpg\" style=\"float:left;\" class=\"menue_pic\"><!--Trennlinie--> Test3 </div> </a> <a href=\"index.php?page=3\" class=\"menue\"> <div class=\"menue\"> <img src=\"bilder/menue_line.jpg\" style=\"float:left;\" class=\"menue_pic\"><!--Trennlinie--> Test4 </div> </a> <a href=\"index.php?page=4\" class=\"menue\"> <div class=\"menue\"> <img src=\"bilder/menue_line.jpg\" style=\"float:left;\" class=\"menue_pic\"><!--Trennlinie--> Test5 </div> </a> <a href=\"index.php?page=5\" class=\"menue\"> <div class=\"menue\"> <img src=\"bilder/menue_line.jpg\" style=\"float:left;\" class=\"menue_pic\"><!--Trennlinie--> Test6 </div> </a> <a href=\"index.php?page=6\" class=\"menue\"> <div class=\"menue\"> <img src=\"bilder/menue_line.jpg\" style=\"float:left;\" class=\"menue_pic\"><!--Trennlinie--> Disclaimer <img src=\"bilder/end_right.jpg\" style=\"float:right;\" class=\"menue_pic\"><!--rechtes Ende des Menues als jpg--> </div> </a> </div><!-- Ende des Menue´s--> <div class=\"line\"><!--container für die Linie unter dem Menue--> <img src=\"bilder/line.jpg\" alt=\"\" width=\"746\" height=\"11\"> </div> <div class=\"text\"><!--Container für den Inhalt der Seite--> <div class=\"text2\" id=\"text\" height=\"400px\"><!-- Container für den eigendlichen Text mit Seitenabstand ~20px--> <!--PHP-Script zur Auswertung der Adresse und Bestimmung des Inhaltes-->"); $page=$_GET['page']; /* Abfrage der in der Adresse befindlichen Variable "page" */ if(!isset($page)){ /* Ist Variable "page" überhaupt vorhanden, wenn nicht dann weiterleitung zur Startseite */ include("home.php"); }else{ switch($page){ /* Abfrage und Vergleich des Wertes "page" und bestimmung, welcher Inhalt angezeigt werden soll */ case 1: include("about_me.php"); break; case 2: include("blog.php"); break; case 3: include("links.php"); break; case 4: include("login.php"); break; case 5: include("impressum.php"); break; case 6: include("disclaimer.php"); break; default: include("home.php"); } } echo(" <div style=\"height:1px; clear:left;\"> </div> </div> </div> <div class=\"bottom\"><!--Fusszeile--> <img src=\"Bilder/button.jpg\"> </div> </div><!-- Ende des Hauptcontainers und damit auch der Seite-->"); } ?> </body> </html>
Beitrag zuletzt geändert: 20.1.2011 8:46:32 von grey-wolf -
Ich meinte es eigentlich eher so:
Zeile 10
Zeile 8 Zeile 9 Zeile 10 Zeile 11 Zeile 12
Zeile 59
Zeile 57 Zeile 58 Zeile 59 Zeile 60 Zeile 61
usw... -
So, dann numeriert.
001 <?php 002 $x=0; 003 error_reporting(E_ALL); 004 if(!Isset($_GET['a'])){ 005 echo(" 006 <div style=\"margin: 5px 0px 10px; width: 706px;\"> 007-011 <!--Unwesendlicher Text--> 012 </div> 013 <div style=\"height:150;\ border:1pt solid #5f6d7a;margin: 5px 0px 10px; width: 706px;\"> 014 <div style=\"border: 3pt solid #5f6d7a; float:left;\"> 015 <form method=\"POST\" action=\"index.php?page=4&a=2\"> 016 <div>Benutzer</div><div><input name=\"name\" style=\"width:200px;\" maxlength=\"14\"></div> 017 <div>Password</div><div><input type=\"password\" name=\"passwd\" style=\"width:200px;\" maxlength=\"14\"></div> 018 <div><center><input type=\"Submit\" value=\"anmelden\"></center></div> 019 </form> 020 </div> 021 <div style=\"border:0pt; float: left; margin: 5px 0px 20px 10px;\"> 022 <!--Unwesendlicher Text--> 023 </div> 024 </div> 025 <div style=\"margin:5px 0px 36px; width: 706px;\"> 026 <div style=\"border: 3pt solid #5f6d7a; float:left;\"> 027 <Form action=\"index.php?page=4&a=1\" method=\"Post\"> 028 <div>Gewünschter Benutzername:</div> 029 <div><input name=\"name\" style=\"width:200px;\" maxlength=\"14\"></div> 030 <div>Gewünschtes Password:</div> 031 <div><input name=\"passwd\" style=\"width:200px;\" maxlength=\"14\"></div> 032 <div>E-Mail:</div> 033 <div><input name=\"email\" style=\"width:200px;\" maxlength=\"30\"></div> 034 <div>Begründung:</div> 035 <div><textarea name=\"txt\" style=\"width:200px; height:150px;\"></textarea></div> 036 <div><center><input type=\"Submit\" value=\"absenden\"></center></div> 037 </form> 038 </div> 039 <div style=\"border:0pt; float: left; margin: 5px 20px 0px 10px; float:left;width: 465px;\"> 040-051 <!--Unwesendlicher Text--> 052 </div> 053 054 </div>"); 055 }elseif($_GET['a']==1){ 056 $name1 = $_POST['name']; 057 $passwd1 = $_POST['passwd']; 058 $txt1 = $_POST['txt']; 059 $email1 = $_POST['email']; 060 if(isset($name1)){ 061 if(isset($passwd1)){ 062 if(isset($txt1)){ 063 if(isset($email1)){ 064 $x=1; 065 } 066 } 067 } 068 } 069 if($x==1){ 070 $mail_empfaenger = "grey_wolf_web@yahoo.de"; 071 $mail_absender = $email; 072 $betreff = "$name wünscht Zugangsdaten"; 073 $text = "Mein Name ist $name1. /n 074 Ich möchte Zugangsdaten zu ihrer Website mit folgender Begründung: /n 075 $txt1 /n 076 Mein gewünschtes Password lautet: $passwd1"; 077 mail($mail_empfaenger, $betreff, $text,"From: $name1 <$mail_absender>"); 078 echo("<center>Ihre Anfrage wurde abgeschickt.<p><a href=\"index.php\">Zurück</a></center>"); 079 }else{ 080 echo("<center>Es wurden nicht alle Felder ausgefüllt!<br> Ihre Anfrage wurde nicht abgeschickt.<p><a href=\"index.php?page=4\">Zurück</a></center>"); 081 echo("name: $name1 <br>passwd: $passwd1 <br>txt: $txt1 <br>email: $email1"); 082 } 083 }elseif($_GET['a']==2){ 084 echo($_GET['a']); 085 }elseif($_GET['a']==3){ 086 echo($_GET['a']); 087 }else{ 088 echo($_GET['a']); 089 } 090 ?>
-
Sehr seltsam, ich kann jetzt da keinen wirklichen Fehler entdecken. Kann es sein, dass du bei den hochgeladenen Input-Feldern ganz andere Namen vergeben hattest? Denn laut
http://www.php-fehlermeldungen.de/topic25.html
wäre das eine Möglichkeit!
Gibts nen Link zu betroffener Seite? -
gibt es: http://grey-wolf.lima-city.de/v1.0/index.php?page=4
Nur wird da merkwürdigerweise kein fehler angezeigt, die Daten werden aber nicht übertragen. Aufgrund der fehlenden fehlermeldung und einer sehr schwächelnden Internetleitung teste ich das ganze derzeit mit xampp.
okee... ich seh gerade, dass aus irgendeinem unerfindlichen Grund nichtmehr überprüft wird, ob daten vorhanden sind beim abschicken, ich füg deshalb noch die
echo("name: $name1 <br>passwd: $passwd1 <br>txt: $txt1 <br>email: $email1");
da ein
Beitrag zuletzt geändert: 20.1.2011 9:21:03 von grey-wolf -
Ich bin ja kein Profi, aber, man kann doch nicht die Methoden GET und POST gemeinsam verwenden!?
055 }elseif($_GET['a']==1){ 056 $name1 = $_POST['name'];
Dein Code wird asugeführt, wenn die GET-Variabel a gleich 1 ist, wenn jedoch GET verwendet wird, dann kann das POST-Array doch garnichts enthalten!? -
Habs nochmal neu hochgeladen, aber merkwürdigerweise funktionierts jetzt, obwohl ich nichts geändert habe O.o
Dafür werden nun meine ü und dergleichen nichtmehr erkannt und die isset-abfrage geht auch net vernünftig -.-
Kann es sein, dass die $_POST['var']-variablen beim schreiben in eine Variable $var=$_POST['var'] auf NULL gesetzt werden, wenn sich kein Inhalt drin befindet und isset nun meint, es hätte einen Wert?
Beitrag zuletzt geändert: 20.1.2011 9:28:44 von grey-wolf -
Ja, du hast ihr ja einen Wert zugewiesen
du müsstest es umgekehrt machen
if isset($_POS['var']) {$var=$_POST['var'];} ...
Dann kannst du auch den Inhalt von $var mit isset prüfen -
Na dann machen wir das doch gleich, bliebe dann nur noch die Frage, ob und wann die function mail() wieder funktioniert.
Euch vorerst besten Dank für die Hilfe, vieleicht wurde das Script auch nicht korrekt hochgeladen. Der bescheidenen Internetleitung des Hotels trau ich alles zu (Ping zu google: ~5000ms und 25-75% Datenverlust >.<) -
Hi,
eine kleine Ergänzung noch, die GET und POST Parameter sind tatsächlich unabhängig, außerdem wirft dieses vorgeschlagene Konstrukt:
einen Fehler vom Typ E_NOTICE, besser wäre so etwas:$var = $_POST['var']; if(isset($var)) { …
$var = isset($_POST['var']) ? $_POST['var'] : null; if($var !== null) { …
Daher kommen übrigens auch deine Fehler, denn das sind alles E_NOTICE, die geworfen werden weil du versuchst eine undefinierte Variable an eine andere zu übergeben, daraus schliesse ich, dass bei der Übertragung etwas schief geht.
Also gucke ich mir als nächstes das Formular an, aber da kann ich keine Fehler finden, außer dass man alleine schon aus Formgründen der method-Wert klein schreibt.
Der nächste Schritt wäre also die Ausgabe aller Parameter:
Wenn da dann Fehler auftreten, bzw. keine Anzeige erfolgt, gehts zurück zum HTML denn da will ich ja den Postrequest erzwingen.// Ganz oben hinschreiben, direkt hinter das erste <?php if($_SERVER['REQUEST_METHOD'] === 'POST') { header('Content-Type: text/plain'); // nur damit man die ausgabe anständig lesen kann... echo "\$_POST:\n\n"; var_dump($_POST); echo "\n\n\$_GET\n\n"; var_dump($_GET); exit; }
Übrigens um deinen Code besser lesen zu können solltest du das Mehrzeilige in einem HERE-Doc schreiben, das sieht dann so aus:
Das ist besser als deine Variante mit den Anführungszeichen und verhält sich nahezu genauso, nur dass man die Gänsefüsschen nicht maskieren braucht.echo <<<HERE_END_THE_OUTPUT <div id="beispiel"> <p>Das hier ist eine tolle aus gabe, in der man sogar Variablen ausgeben kann, Beispiel: \$x = $x</p> </div> HERE_END_THE_OUTPUT;
Außerdem schreibt man echo $output; und nicht echo($output); so als Tipp.
Mit freundlichen Grüßen -
burgi schrieb:
Ich bin ja kein Profi, aber, man kann doch nicht die Methoden GET und POST gemeinsam verwenden!?
055 }elseif($_GET['a']==1){ 056 $name1 = $_POST['name'];
Dein Code wird asugeführt, wenn die GET-Variabel a gleich 1 ist, wenn jedoch GET verwendet wird, dann kann das POST-Array doch garnichts enthalten!?
Hallo burgi,
man kann beide verwenden. Man kann jedoch nicht beides gleichzeitig in einem Formular absenden. Da aber das GET-Array vom query-String der URL gespeist wird und man den selbst erstellen kann, kann man manuell beide Daten übergeben wodurch beide Arrays verwendet werden können. Zum Beispiel praktisch bei deaktivierten Cookies, wenn man trotzdem die Session-ID bei einer Form übergeben möchte, da die Session-ID grundsätzlich bei jeder URL enthalten sein muss wird sie an die URL dran gehängt (Meistens mit "?SESS_ID=ASHG76JbgH" und die Formulardaten per POST übergeben.
Realisiert kann soetwas zum Beispiel mit folgendem html-Code:
<form action="http://example.org/datei.php?SESS_ID=ASHG76JbgH" method="post">
Dabei wird dann die Session-ID per GET übergeben (Im action-Parameter des form-Tags) und die restlichen Formulardaten per POST. -
Um kein neuen Topic zu öffnen:
Ich habe die Notice-Meldungen bisher einfach abgeschaltet. Zum debugging sind die allerdings doch recht hilfreich. Nur gibt es welche, die sind einfach unumgänglich, oder doch nicht? Und zwar die simple Meldung für eine undeklarierte Variable. Ich teile eine Variable mit explode auf und teste dann ob sich etwas im zweiten Teil befindet. Z.B. um eine EmailAdresse im Kontaktscript zu checken. Wenn nichts drinne ist dann Fehlerausgabe. Aber wenn die leer ist, dann bekomme ich auch eine Notice-Meldung. Meine Antwort: Ist halt so. Oder? -
h4nni schrieb: Nur gibt es welche, die sind einfach unumgänglich, oder doch nicht?
Nein! Wenn das Script irgendwelche Meldungen gibt, dann ist es auch ein Fehler. Undeklarierte Variablen prüft man mit isset () und empty (). Die Funktionen erzeugen auch keine Fehler.
if (empty ($_GET['ID'])) echo 'ID fehlt.';
empty überprüft gleichzeitig ob die Variable vorhanden und nicht leer ist. Das ist das gleiche wie isset () und ($variable == '') nur kürzer.
Beitrag zuletzt geändert: 28.9.2011 18:32:59 von chatter -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage