Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Variablen in Array speichern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema [Erledigt] Variablen in Array speichern.

    [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

  • Schnulli
    antwortet
    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

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    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.

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    @Schnulli
    Deine Sicherheitsmassnahmen in allen Ehren, aber mysql_real_escape funktioniert nur mit einer bestehenden DB Verbindung.

    Einen Kommentar schreiben:


  • Schnulli
    antwortet
    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.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    @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

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    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.

    Einen Kommentar schreiben:

Lädt...
X