php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen
Alt 12.11.2010, 10:41  
Neuer Benutzer
 
Registriert seit: 08.10.2010
Beiträge: 21
PHP-Kenntnisse:
Anfänger
themk# ist zur Zeit noch ein unbeschriebenes Blatt
Standard Notice: Undefined index

Hallo

ich bekomme für diese Codezeile :
PHP-Code:
$korr1dat $_POST['korr1dat']; 
Die Fehlermeldung :
Zitat:
Notice: Undefined index: korr1dat in .... on line 38
Laut php-fehlermeldungen liegt der Fehler hier :
Zitat:
-Ursache: da der Arrayschlüssel eine Variable ist, darf dieser Schlüssel nicht in Anführungszeichen stehen, da er dadurch von PHP nicht ausgewertet werden kann.
Wenn ich aber die Anführungszeichen weg mache bekomme ich natürlich auch eine Fehlermeldung like :
Zitat:
Notice: Use of undefined constant korr1dat - assumed 'korr1dat'
Wie löse ich das Problem ?
themk# ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.11.2010, 10:43  
bandit600
Gast
 
Beiträge: n/a
Standard

$_POST['korr1dat']; gibt's halt nicht.
 
Alt 12.11.2010, 10:46  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 5.393
PHP-Kenntnisse:
Fortgeschritten
Wolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz sein
Standard

Offenbar existiert der Schlüssel 'korr1dat' nicht im Array weshalb die Warnung ausgegeben wird.

Ich vermute, dass du ein Formular auswerten willst und nicht abfragst, ob dieses überhaupt abgesendet wurde.

PHP-Code:
if ( isset($_POST['Senden']) {
  
$korr1dat $_POST['korr1dat'];

(wenn dein Sendebutton den value "Senden" hat).
__________________
PHP-Code:
if ($var != 0) {
  
$var 0;

Wolla ist offline  
Alt 12.11.2010, 10:49  
bandit600
Gast
 
Beiträge: n/a
Standard

Und was spricht dagegen, direkt den richtigen Index anzusprechen?

PHP-Code:
$korr1dat = (isset($_POST['korr1dat'])) ? $_POST['korr1dat'] : ""
 
Alt 12.11.2010, 10:49  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 5.658
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist jedem bekannteagle275 ist jedem bekannteagle275 ist jedem bekannteagle275 ist jedem bekannteagle275 ist jedem bekannteagle275 ist jedem bekannt
Standard

das mit dem Arrayschlüssel als Variable betrifft doch diesen Fall

$key='korr1dat';

$korr1dat=$_POST[$key]; <-- hier ist es wichtig, das $key nicht in Quotes kommt.


für das andere Problem ... frag halt einfach mit isset ab
PHP-Code:
if (isset($_POST['korr1dat']))
   
$korr1dat=$_POST['korr1dat'];
else
   
$korr1dat=''
- allerdings musst du dann im Zweifelsfall immer nachgucken, ob in $korr1dat nur ein Leerstring enthalten ist, oder aber richtiger Inhalt
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline  
Alt 12.11.2010, 10:56  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 5.393
PHP-Kenntnisse:
Fortgeschritten
Wolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz sein
Standard

Zitat:
Zitat von bandit600 Beitrag anzeigen
Und was spricht dagegen, direkt den richtigen Index anzusprechen?

PHP-Code:
$korr1dat = (isset($_POST['korr1dat'])) ? $_POST['korr1dat'] : ""
Wenn der Kollege ein Formular mit 50 Feldern hat, dann müsste er überflüssigerweise 50 mal diese eh schon unübersichtliche Ternär-Syntax hinschreiben.

Ferner würde er überflüssigerweise Eingabeprüfungen für nicht gemachte Eingaben machen.

Nein, der richtige Weg ist der, zunächst zu prüfen, ob überhaupt was in $_POST stehen kann weil ein Formular geschickt wurde.

Mehr weiß man allerdings erst, wenn man mehr Code sieht. Ich hatte ja oben auch nur eine Vermutung geäußert, tippe aber darauf, dass ich zu 99% richtig liege.
__________________
PHP-Code:
if ($var != 0) {
  
$var 0;

Wolla ist offline  
Alt 12.11.2010, 11:03  
da schreibt der ElePHPant
 
Registriert seit: 18.06.2008
Beiträge: 10.043
PHP-Kenntnisse:
Fortgeschritten
Flor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende ZukunftFlor1an hat eine strahlende Zukunft
Standard

Es kann aber sein das "Senden" mitgeschickt wird im POST aber ein anderes Feld dann nicht, von daher würde dann wieder der selbe Fehler auftreten. Eigentlich sollte man jeden Wert prüfen bevor man ihn anspricht.
Flor1an ist offline  
Alt 12.11.2010, 11:07  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 5.393
PHP-Kenntnisse:
Fortgeschritten
Wolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz seinWolla kann auf vieles stolz sein
Standard

Genau. Checkboxen oder Radiobuttons muss man gesondert betrachten.
__________________
PHP-Code:
if ($var != 0) {
  
$var 0;

Wolla ist offline  
Alt 12.11.2010, 11:33  
Neuer Benutzer
 
Registriert seit: 08.10.2010
Beiträge: 21
PHP-Kenntnisse:
Anfänger
themk# ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das sind viele Antworten - ich werde mal versuchen auf alle einzugehen !

Es wird geprüft, ob was gesendet wird. Die Variablenbelegung mit POST Werten beginnt mit
PHP-Code:
if ($_POST['POST']) { 
Ich habe nun auch erkannt, wo der Fehler liegt.
Und zwar handelt es sich um insgesamt 10 Radiobutton-Kombinationen wobei nicht jede davon belegt ist. Ich müsste also wohl in der Tat vorher prüfen welche der Buttons wirklich genutzt wurde. Gibt es da eine kurze Variante - es sind immerhin fast 100 Werte - oder muss ich das für jede Variable einzeln machen ?
themk# ist offline  
Alt 12.11.2010, 11:37  
bandit600
Gast
 
Beiträge: n/a
Standard

Wenn es mehrere Formularfelder geben würde, bekäme man mehrere Notice-Meldungen. Also kann man in diesem Fall von einem Formularfeld ausgehen und alles andere ist reine Spekulation. Und somit kann man auch die keineswegs unübersichtliche Ternär-Syntax benutzen.

<edit>
Lesen des Threads und meine Antwort sind vor der Antwort von themk# entstanden (leider war ich wohl etwaszu langsam), also bitte so beachten, als wenn dies hier Posting #9 wäre


Nach neuer Sachlage sieht das jetzt etwas anders aus
</edit>

Geändert von bandit600 (12.11.2010 um 11:42 Uhr).
 
 


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Notice: Undefined index: Rutor PHP Tipps 2010 4 11.02.2010 16:35
Notice: Undefined index: Jens P. PHP Tipps 2009 7 10.01.2010 13:48
Notice: Undefined property Thoresus PHP Tipps 2009 2 17.08.2009 22:30
Formular läuft lokal, online nicht simon1101 PHP Tipps 2009 9 25.03.2009 11:16
php datei löschen djscaleo PHP Tipps 2008 21 14.11.2008 14:47
Undefined variable Undefined property: block xxJJxx PHP Tipps 2008 16 05.08.2008 14:30
Notice: Undefined index Kein Genie PHP Tipps 2008 5 23.04.2008 16:40
PHP Notice: Undefined index: ORIG_PATH_TRANSLATED TFT PHP Tipps 2008 1 18.04.2008 10:42
Notice: Undefined index: PHP Tipps 2006 3 08.03.2006 15:39
Notice: Undefined index: eintrag Jojo1 PHP Tipps 2005 6 16.04.2005 11:41
Notice: Undefined index: senden in ...... Skazi PHP Tipps 2005 10 28.03.2005 02:04
Notice-Meldungen bei PHP PHP Tipps 2005 14 02.02.2005 11:52
Notice: Undefined index: in Zeile 7 PHP Tipps 2004 6 12.08.2004 09:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php undefined index, undefined index php, notice: undefined index:, undefined index, notice: undefined index, undefined index:, php notice: undefined index:, php undefined index:, notice undefined index php, php notice undefined index, notice undefined index, php notice: undefined index, undefined index: php, php \undefined index\, notice: undefined index: php, undefined index in php, notice: undefined index php, php undefinded index, php undefinied index, \notice: undefined index:\

Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum