php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.04.2007, 15:05  
Patrick Schwarz
Gast
 
Beiträge: n/a
Standard [Erledigt] Variablen in Array speichern

Hallo Leute,
hätte mal eine kurze Frage. Habe schon Google, Forensuche, usw. befragt, aber leider nix gefunden.

Wieso funktioniert folgende Anweisung nicht:

PHP-Code:
$arrVars = array($Unternehmen => "Unternehmen"$Firma => "Firma"$Inhaber => "Inhaber",
                
$Strasse => "Strasse"$Hausnummer => "Hausnummer"$PLZ => "PLZ"$Ort => "Ort"
                
$Telefon => "Telefon"$Fax => "Fax"$Email => "Email"$Internet => "Internet" ); 
Er gibt mir bei print_r immer nur das Letzte Element aus.
Wäre super, wenn mir jemand helfen könnte.

Gruß,
Patrick
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.04.2007, 15:18  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Alle Variablen existieren nicht, somit wird jeweils der Leer-String als Key verwendet, welcher für jedes Element dann neu überschrieben wird.

Würde ich zumindest vermuten.
Solltest du hier nicht lieber die String ("Unternehmen") als Key und die Variablen ($Unternehmen) als Werte für den Array verwenden?

error_reporting(E_ALL); hilft auch ungemein am Skript-Anfang.
Zergling-new ist offline  
Alt 03.04.2007, 15:32  
Patrick Schwarz
Gast
 
Beiträge: n/a
Standard

@Zergling:

danke für deine schnelle Antwort!
Mein Ziel war folgendes:

Ich bekomme über ein Formular Get-Variablen. Jetzt wollte ich folgendes Konstrukt bauen:

PHP-Code:
<?php $arrVars = array($Unternehmen => "Unternehmen"$Firma => "Firma"$Inhaber => "Inhaber",
                
$Strasse => "Strasse"$Hausnummer => "Hausnummer"$PLZ => "PLZ"$Ort => "Ort",
                
$Telefon => "Telefon"$Fax => "Fax"$Email => "Email"$Internet => "Internet" );


foreach(
$arrVars as $key => $value){
   
$key mysql_real_escape_string($_GET[$value]);

}
klingt sehr abenteuerlich, wäre aber super wenn es funktioniert hätte =)

Zu error_reporting(E_ALL): hätte in diesem Fall nicht viel genutzt, da kein Fehler entstanden ist. Aber danke für den Tipp! Werd ich mir zu Herzen nehmen.

Gruß,
Patrick
 
Alt 03.04.2007, 17:31  
Erfahrener Benutzer
 
Registriert seit: 03.03.2007
Beiträge: 112
Schnulli
Standard

Etwas ähnliches ist mit
PHP-Code:
<?php

$arrVars 
= array("Unternehmen","Firma""Inhaber",
                
"Strasse","Hausnummer""PLZ""Ort",
                
"Telefon""Fax""Email""Internet" );

// Variante #1
foreach($arrVars as $value){
   $
$value mysql_real_escape_string($_GET[$value]);
}


// Variante #2
$sqlParameter array_map('mysql_real_escape_string'$_GET);
?>
möglich.
Schnulli ist offline  
Alt 03.04.2007, 17:57  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

@Schnulli
Deine Sicherheitsmassnahmen in allen Ehren, aber mysql_real_escape funktioniert nur mit einer bestehenden DB Verbindung.
nikosch ist offline  
Alt 03.04.2007, 19:10  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von Patrick Schwarz
@Zergling:

danke für deine schnelle Antwort!
Mein Ziel war folgendes:

Ich bekomme über ein Formular Get-Variablen. Jetzt wollte ich folgendes Konstrukt bauen:

PHP-Code:
<?php $arrVars = array($Unternehmen => "Unternehmen"$Firma => "Firma"$Inhaber => "Inhaber",
                
$Strasse => "Strasse"$Hausnummer => "Hausnummer"$PLZ => "PLZ"$Ort => "Ort",
                
$Telefon => "Telefon"$Fax => "Fax"$Email => "Email"$Internet => "Internet" );


foreach(
$arrVars as $key => $value){
   
$key mysql_real_escape_string($_GET[$value]);

}
klingt sehr abenteuerlich, wäre aber super wenn es funktioniert hätte =)

Zu error_reporting(E_ALL): hätte in diesem Fall nicht viel genutzt, da kein Fehler entstanden ist. Aber danke für den Tipp! Werd ich mir zu Herzen nehmen.

Gruß,
Patrick
Ist doch prinzipiell auch möglich, trotzdem ist es unüblich Keys variabel und Werte konstant zu halten. Der Key sollte konstant sein, damit ich verlässlich seinen Wert abfragen kann.

Ich rate dir ein ähnliches Konstrukt:
PHP-Code:
<?php
class DatabaseManager
{
  
// .. das übliche
  
public function quoteValue($mValue)
  {
    if (
is_array($mValue)) {
      return 
array_map(array($this'quoteValue'), $mValue);
    }
    if (
get_magic_quotes_gpc()) {
      
$mValue strip_slashes($mValue);
    }
    return 
mysql_real_escape_string($mValue$this->_connectionLink);
  }
  
// ..
}
?>
Das Validieren ist nun eigentlich recht einfach:
PHP-Code:
<?php
$oDB 
= new DatabaseManager(..);
$aValidatedGet $oDB->quoteValue($_GET);
?>
Dann validierst du schonmal alles und vergißt keinen Eintrag.
Zergling-new ist offline  
Alt 04.04.2007, 04:05  
Erfahrener Benutzer
 
Registriert seit: 03.03.2007
Beiträge: 112
Schnulli
Standard

Zitat:
Zitat von nikosch77
@Schnulli
Deine Sicherheitsmassnahmen in allen Ehren, aber mysql_real_escape funktioniert nur mit einer bestehenden DB Verbindung.
Wird keine übergeben, wird die zuletzt verwendete benutzt.
Demnach
  1. mysql_connect/select_db -> mysql_real_escape_string => kein Problem
  2. Wenn es Dich stört, verpack es halt wie Zergling
Schnulli ist offline  
 


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
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Bilder aus Dir in mehrdim. Array speichern Riot PHP Tipps 2006 11 05.06.2006 23:12
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Nachträgliches verknüpfen von Variablen mit einem Array PHP Tipps 2007 1 02.12.2005 16:38
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
[Erledigt] Mehrdimensionales Array in Session speichern PHP-Fortgeschrittene 6 11.10.2005 17:32
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array in Session speichern und wieder auslesen Riot PHP Tipps 2005-2 3 08.07.2005 11:43
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
erg von readdir() in array speichern? imported_dex PHP Tipps 2004-2 2 27.12.2004 10:23
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
variable in array speichern php, php variable in array speichern, variable in array speichern, variablen in einem array speichern, variablen array speichern, php alle variablen in array speichern, speichern von variablennamen in einem array, variablen in einen array speichern php, php variable in array speichern, aber variable verändern, plz in array speichern, variablen in array speichern, php variablen in array speichern

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:45 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.