kostenloser Webspace werbefrei: lima-city


Notice: Undefined variable: _Post in...

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    grey-wolf

    Kostenloser Webspace von grey-wolf

    grey-wolf hat kostenlosen Webspace.

    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&uuml;nschter Benutzername:</div>
    <div><input name="name" style="width:200px;" maxlength="14"></div>
    <div>Gew&uuml;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&uuml;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&uuml;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&uuml;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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Verbesserter Code:

    $name1 = $_POST['name'];
    $passwd1 = $_POST['passwd'];
    $txt1 = $_POST['txt'];
    $email1 = $_POST['email'];


    Die Fehlermeldungen sind da ja eigentlich recht selbsterklärend.
  4. Autor dieses Themas

    grey-wolf

    Kostenloser Webspace von grey-wolf

    grey-wolf hat kostenlosen Webspace.

    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
  5. 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 :wink:

    Beitrag zuletzt geändert: 20.1.2011 8:26:54 von karpfen
  6. Autor dieses Themas

    grey-wolf

    Kostenloser Webspace von grey-wolf

    grey-wolf hat kostenlosen Webspace.

    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&uuml;nschter Benutzername:</div>
    						<div><input name=\"name\" style=\"width:200px;\" maxlength=\"14\"></div>
    						<div>Gew&uuml;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&uuml;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&uuml;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&uuml;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&uuml;tzt!<br>
    			Tun Sie sich und auch s&auml;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&auml;ngigen CSS-Standarts h&auml;lt.<br>
    			<br></center><table><tr><td width=\"150px\"></td><td style=\"align:left;\"><b>
    			* Mozilla Firefox k&ouml;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&ouml;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&ouml;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
  7. 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...
  8. Autor dieses Themas

    grey-wolf

    Kostenloser Webspace von grey-wolf

    grey-wolf hat kostenlosen Webspace.

    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&uuml;nschter Benutzername:</div>
    029							<div><input name=\"name\" style=\"width:200px;\" maxlength=\"14\"></div>
    030							<div>Gew&uuml;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&uuml;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&uuml;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&uuml;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	?>
  9. 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?
  10. Autor dieses Themas

    grey-wolf

    Kostenloser Webspace von grey-wolf

    grey-wolf hat kostenlosen Webspace.

    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
  11. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    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!?
  12. Autor dieses Themas

    grey-wolf

    Kostenloser Webspace von grey-wolf

    grey-wolf hat kostenlosen Webspace.

    Habs nochmal neu hochgeladen, aber merkwürdigerweise funktionierts jetzt, obwohl ich nichts geändert habe O.o
    Dafür werden nun meine &uuml; 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
  13. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    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
  14. Autor dieses Themas

    grey-wolf

    Kostenloser Webspace von grey-wolf

    grey-wolf hat kostenlosen Webspace.

    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 >.<)
  15. Hi,

    eine kleine Ergänzung noch, die GET und POST Parameter sind tatsächlich unabhängig, außerdem wirft dieses vorgeschlagene Konstrukt:
    $var = $_POST['var'];
    if(isset($var)) {
        …
    einen Fehler vom Typ E_NOTICE, besser wäre so etwas:
    $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:
    // 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;
    }
    Wenn da dann Fehler auftreten, bzw. keine Anzeige erfolgt, gehts zurück zum HTML denn da will ich ja den Postrequest erzwingen.

    Übrigens um deinen Code besser lesen zu können solltest du das Mehrzeilige in einem HERE-Doc schreiben, das sieht dann so aus:
    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;
    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.
    Außerdem schreibt man echo $output; und nicht echo($output); so als Tipp.

    Mit freundlichen Grüßen
  16. 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.
  17. 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?
  18. 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
  19. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!