php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.01.2012, 22:55  
Benutzer
 
Registriert seit: 04.12.2011
Beiträge: 56
PHP-Kenntnisse:
Anfänger
myoddo befindet sich auf einem aufstrebenden Ast
Standard Im Input-Feld steht ARRAY

Hallo,
weshalb steht in diesem input-Feld Array ? echo $name[1];
In diesem steht nichts echo $name[0]; (so sollte es sein)
Danke
PHP-Code:
<?php 
$name 
=$_GET['name'];
$mail =$_GET['mail'];
$bereitsaufgerufen =$_GET['bereitsaufgerufen'];

$name[0]    = "<input type=\"text\" styl=\"background-color:#c0c0c0\" name\" value=\"$name\"  />";
$name[1]     = "<input type=\"text\" style=\"background-color:#800000\" name\" value=\"$name\"  />";
$submit     "<br /><input type=\"submit\" value=\"senden\"  />";   //submit senden 

if (empty ($name));
    {
    echo 
"Name: ";
    echo 
$name[0];     
    echo 
$name[1];
    }
?>
myoddo ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.01.2012, 23:13  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Mit der Schreibweise $name[0] überschreibst du die Variable $name und sie hat nicht mehr den Wert von $_GET['name'], sondern ist eben ein Array. Aus diesem Grund beinhaltet die Variable $name bei $name[1] nicht länger den $_GET['name']-Wert, sondern einen Array, welchen du eine Zeile zuvor definierst. Verstanden?
Trainmaster ist offline   Mit Zitat antworten
Alt 03.01.2012, 23:13  
Erfahrener Benutzer
 
Registriert seit: 19.06.2009
Beiträge: 837
PHP-Kenntnisse:
Fortgeschritten
Jens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nett
Standard

Das kann nur passieren, wenn Du keinen Wert "name" per GET übergibst. In diesem Fall ist $name durch die erste Zuweisung "nichts" oder null. Bei der ersten Verwendung im String wird also nichts in den Value geschrieben. Durch die erste Zuweisung (nach der Verwendung im String) wird die Variable zum Array (nicht initialisierte Variable + Zuweisung mit eckigen Klammern). Arrays können nicht problemlos in Strings umgewandelt werden, deshalb macht PHP bei der zweiten Verwendung in einem String beim Versuch der Umwandlung "array" draus.

Noch schlimmer käme es, wenn Du einen Wert per GET übergeben hättest. In dem Fall hätte PHP versucht, dem ersten Buchstaben des übergebenen Wertes Dein erstes Input-Element zuzuweisen.

Bist Du sicher, dass das wirklich die Frage war, die Du beantwortet haben wolltest?

Gruß Jens
Jens Clasen ist offline   Mit Zitat antworten
Alt 03.01.2012, 23:27  
Benutzer
 
Registriert seit: 04.12.2011
Beiträge: 56
PHP-Kenntnisse:
Anfänger
myoddo befindet sich auf einem aufstrebenden Ast
Standard

Na eigentlich geht es noch um den Farbwechsel.
siehe. http://www.php.de/php-einsteiger/868...ltem-feld.html (Farbwechsel bei nicht ausgefülltem Feld.)
Aber bin grenzenlos überfordert und es kommen immer weitere Fragen.
myoddo ist offline   Mit Zitat antworten
Alt 03.01.2012, 23:28  
Benutzer
 
Registriert seit: 04.12.2011
Beiträge: 56
PHP-Kenntnisse:
Anfänger
myoddo befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Trainmaster Beitrag anzeigen
Mit der Schreibweise $name[0] überschreibst du die Variable $name und sie hat nicht mehr den Wert von $_GET['name'], sondern ist eben ein Array. Aus diesem Grund beinhaltet die Variable $name bei $name[1] nicht länger den $_GET['name']-Wert, sondern einen Array, welchen du eine Zeile zuvor definierst. Verstanden?

Jap. Verstanden
myoddo ist offline   Mit Zitat antworten
Alt 03.01.2012, 23:35  
Erfahrener Benutzer
 
Registriert seit: 19.06.2009
Beiträge: 837
PHP-Kenntnisse:
Fortgeschritten
Jens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nett
Standard

Vorsicht! Die Erklärung vom Trainmaster war leider falsch. Mit der Schreibweise $name[0] wird die Variable $name nicht zwingend überschrieben - das hängt davon ab, was vorher drin stand. (In Deinem Fall durch die kaputten Input-Elemente: Nichts)

Beweis:

Code:
user@host ~/path/2/current/dir $ php -a
Interactive shell

php > $name='';
php > $name[0]='foobar';
php > var_dump($name);
array(1) {
  [0]=>
  string(6) "foobar"
}
php > $name='foobar';
php > $name[0]='foobar';
php > var_dump($name);
string(6) "foobar"
php > $name[0]='bar';
php > var_dump($name);
string(6) "boobar"
Gruß Jens
Jens Clasen ist offline   Mit Zitat antworten
Alt 04.01.2012, 00:17  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Danke für die Korrektur, Jens. In der Tat ist meine Erklärung nur richtig, solange $name keinen Wert hat. Ansonsten bewirkt die Array-Schreibweise eine Stringmanipulation ...
Trainmaster ist offline   Mit Zitat antworten
Alt 04.01.2012, 08:23  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Fazit: @myoddo, du darfst name nicht gleichzeitig für dein GET-Parameter und als array benutzen.
Da mit dem Farbarray hast du wohl nicht oder völlig mißverstanden.
Dafür mal ein funktionsfähiges Beispiel, welches sich nur darauf konzentriert, es fehlt noch viel was zu einer ordentlichen Formularverarbeitung gehört!
PHP-Code:
<?php 
error_reporting
(E_ALL); 

$backgrColors = array(
  
'name' => 'white',
  
'mail' => 'white'
  
);

if(isset(
$_GET['name'])) 
{
  
$name =$_GET['name'];
  if(
$name == ''$backgrColors['name'] = 'red';
}
else
{
  
$name '';
}
if(isset(
$_GET['mail']))
{
  
$mail =$_GET['mail'];
  if(
$mail == ''$backgrColors['mail'] = 'red';
}  
else
{
  
$mail '';
}

if (!isset(
$_GET['gesendet']) || $backgrColors['name'] == 'red' || $backgrColors['mail'] == 'red')
//Formular ausgeben wenn nichts gesendet oder name leer oder mail leer
  
echo '<form action="" method="GET">';
  echo 
"Name: ";
  echo 
'<input type="text" style="background-color:'.$backgrColors['name'].'" name="name" value="'.$name.'"  />'
  echo 
" Mail: ";  
  echo 
'<input type="text" style="background-color:'.$backgrColors['mail'].'" name="mail" value="'.$mail.'"  />';
  echo 
'<br /><input type="submit" value="senden" name="gesendet"  />';   //submit senden 
  
echo '</form>';
}
else
{
  echo 
"Name :".$name." und Mail:".$mail." vorhanden";
}
?>

Geändert von jspit (04.01.2012 um 08:34 Uhr). Grund: Code verbessert
jspit ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Sortierung mehrerer Arrays philosapiens PHP Tipps 2010 16 08.06.2010 05:22
input feld focusieren jens76 JavaScript, Ajax und mehr 4 10.05.2010 17:46
IE8 verliert Session Lenki PHP-Fortgeschrittene 10 25.04.2010 01:10
Ein (Teil)Array anhand von level und depth zurückgeben. greatcthulhu Scriptbörse 4 16.04.2010 10:45
[Erledigt] Problem bei update mit array feldern fulltilt PHP Tipps 2010 6 13.02.2010 00:59
[Erledigt] array sortieren PHP Tipps 2004 17 13.05.2009 10:44
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Cursorfokus automatisch in ein Input Feld setzen DDogg HTML, Usability und Barrierefreiheit 5 17.05.2006 22:48
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
[Erledigt] nach x zeichen ins nächste input feld springen HTML, Usability und Barrierefreiheit 3 13.12.2005 11:21
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25
input "text" als array, weis das einer..? PHP Tipps 2004 1 05.07.2004 08:02

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
input felder array, text array php input, php input feld array, php input feld array erzeugen, javascript variable php übergeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:48 Uhr.




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