Notice: Undefined index: name in
mymaster
- php
Hallo,
Ich hab jetzt mal eine Shoutbox gebastelt, die funktioniert auch,
nur kommt da immer Notice: Undefined index: name in .. in line sowieso,
hier ist mal der Quellcode in den besagten Zeilen:
$_POST['name'] = htmlentities($_POST["name"]);
$_POST['text'] = htmlentities($_POST["text"]);
$_POST['homepage'] = htmlentities($_POST["homepage"]);
$_POST['ip'] = $_SERVER["REMOTE_ADDR"];
Was hab ich falsch gemacht?
Vielen Dank schonmal im vorraus!
Gruß, mymaster
Hallo,
hier ist mal der Quellcode in den besagten Zeilen:
$_POST['name'] = htmlentities($_POST["name"]);
$_POST['text'] = htmlentities($_POST["text"]);
$_POST['homepage'] = htmlentities($_POST["homepage"]);
$_POST['ip'] = $_SERVER["REMOTE_ADDR"];
der Fehler tritt auf, weil du auf ein array-element zugreifst, was es nicht gibt
erst wenn du dein Formulat abschickst, gibt es $_POST['name'
ich würde es so machen
$name = (isset($_POST['name'])) ? htmlentities($_POST['name'] : '';
$text = (isset($_POST['text'])) ? htmlentities($_POST['text'] : '';
$homepage = (isset($_POST['homepage'])) ? $htmlentities($_POST['homepage'] : '';
$ip = $_SERVER['REMOTE_ADDR'];
mfg
Twilo
Hello Twilo,
der Fehler tritt auf, weil du auf ein array-element zugreifst, was es nicht gibt
erst wenn du dein Formulat abschickst, gibt es $_POST['name'
ich würde es so machen
$name = (isset($_POST['name'])) ? htmlentities($_POST['name'] : '';
$text = (isset($_POST['text'])) ? htmlentities($_POST['text'] : '';
$homepage = (isset($_POST['homepage'])) ? $htmlentities($_POST['homepage'] : '';
Das stimmt zwar alles, aber irgendwie fehlt mir für die Praxis da auch schon lange eine Funktion.
Und da habe ich mir gestern nun endlich mal vorgenommen, heute darüber nachzudenken. Das werde ich gleich (in 37 Minuten) beginnen:
Die Funktion heißt
init(attribut)
und muss nun dafür sorgen, dass keine Fehler mehr auftritt, wenn attribut nicht vorhanden ist. Dann liefert sie zweckmäßigerweise NULL oder FALSE zurück und nicht ''. Das muss ich mir noch überlegen. Sie wird auch besimmte Standardregeln berücksichtigen müssen, wie stripslashes() bei magic_quotes_qpc oder strip_tags(), wenn gesetzt usw.
Lass uns mal gemeinsam darüber nachdenken, wie solch eine Funktion aussehen müsste, die auf Attribute zugreifen darf, die es ggf. nicht gibt.
Bis später dann.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo,
Danke für die Antworten, aber dann kommt
Parse error: syntax error, unexpected ':' in C:....
Gruß, Mymaster
Hallo,
Danke für die Antworten, aber dann kommt
Parse error: syntax error, unexpected ':' in C:....
diese Zeile ist falsch
$homepage = (isset($_POST['homepage'])) ? $htmlentities($_POST['homepage'] : '';
sie muss
$homepage = (isset($_POST['homepage'])) ? htmlentities($_POST['homepage'] : '';
so lauten
mfg
Twilo
Hallo,
[...]
Das stimmt zwar alles, aber irgendwie fehlt mir für die Praxis da auch schon lange eine Funktion.
Und da habe ich mir gestern nun endlich mal vorgenommen, heute darüber nachzudenken. Das werde ich gleich (in 37 Minuten) beginnen:
Die Funktion heißt
init(attribut)
und muss nun dafür sorgen, dass keine Fehler mehr auftritt, wenn attribut nicht vorhanden ist. Dann liefert sie zweckmäßigerweise NULL oder FALSE zurück und nicht ''. Das muss ich mir noch überlegen. Sie wird auch besimmte Standardregeln berücksichtigen müssen, wie stripslashes() bei magic_quotes_qpc oder strip_tags(), wenn gesetzt usw.
Lass uns mal gemeinsam darüber nachdenken, wie solch eine Funktion aussehen müsste, die auf Attribute zugreifen darf, die es ggf. nicht gibt.
ich hab mir diese Funktion zusammengebastelt
function _variable($name, $methode, $alternative=false){
if($methode == 'session') $variable = (isset($_SESSION[$name]) && trim($_SESSION[$name]) != '') ? trim($_SESSION[$name]) : $alternative;
elseif($methode == 'cookie') $variable = (isset($_COOKIE[$name]) && trim($_COOKIE[$name]) != '') ? trim($_COOKIE[$name]) : $alternative;
elseif($methode == 'get') $variable = (isset($_GET[$name]) && trim($_GET[$name]) != '') ? trim($_GET[$name]) : $alternative;
else $variable = (isset($_POST[$name]) && trim($_POST[$name]) != '') ? trim($_POST[$name]) : $alternative;
return $variable;
}
das ganze rufe ich dann so auf
$text_value = _variable('text', 'post');
$name_value = _variable('text', 'get', '');
diese Funktion ist bestimmt noch verbesserungswürdig, hat aber bis jetzt gereicht ;-)
vielleicht hat jemand eine bessere Funktion parat?
mfg
Twilo