+ Antworten
Ergebnis 1 bis 14 von 14

Thema: Elemente aus Array Löschen

  1. #1
    TP-Supporter TP-Sponsor Spin macht alles soweit korrekt Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    Elemente aus Array Löschen

    Hallo zusammen

    Folgendes Problem! Ein Formular übermittellt Daten an mein PHP Script! Nun möchte ich aber nicht alle Daten aus dem Formular haben sondern einige Daten löschen!
    Habe das mal so probiert:

    PHP-Code:
    $methode "POST";
    $methode strtolower($methode);

    if (
    $methode == "get") {
        
    $daten $_GET;
        }
    else {
        
    $daten $_POST;
        }

    unset(
    $daten[betreff]);
    unset(
    $daten[weiterleitung]);
    unset(
    $daten[empfaenger]);
    unset(
    $daten[absender]);
    unset(
    $daten[senden]); 
    Nun werden zwar die Variablen tadelos gelöscht aber leider werden auch noch andere Felder gelöscht! An was kann das liegen? Wenn ich die unset Zeilen auskommentiere werden wieder ganz normal alle Daten übermittelt halt auch die fünf die ich nicht will!

    Gruss: Spin

  2. #2
    TP-Insider P4r4 macht sich hier sehr viel Mühe Avatar von P4r4
    Registriert seit
    Feb 2002
    Beiträge
    550
    Hi,

    guck doch einfach mal, was nach dem Löschen des Arrays noch alles vorhanden ist.

    PHP-Code:
    <?
    ###vorher
    foreach($daten as $key => $elem)
    {
    echo 
    $key." = "$elem."<br>";
    }


    unset(
    $daten[betreff]);
    unset(
    $daten[weiterleitung]);
    unset(
    $daten[empfaenger]);
    unset(
    $daten[absender]);
    unset(
    $daten[senden]);

    ###nachher
    foreach($daten as $key => $elem)
    {
    echo 
    $key." = "$elem."<br>";
    }


    ?>
    Oder wird dann das ganze Array gelöscht?
    Eine andere weniger schöne Möglichkeit wäre noch:
    $daten[x]=NULL;
    zu schreiben.

  3. #3
    TP-Supporter TP-Sponsor Spin macht alles soweit korrekt Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    [PHP] Elemente aus Array Löschen

    Also am unset kanns irgendwie nicht liegen!

    Gibt mir folgendes zürück:
    PHP-Code:
    #vorher
    empfaenger = [email]test@test.ch[/email]
    betreff hehehe
    weiterleitung 
    = [url]http://www.google.ch[/url]
    number 3
    os 
    win9598ME
    senden 
    Senden

    #nachher
    number 3
    os 
    win9598ME 
    Das ist ja eigentlich genau was ich will! Nur wenn das Script nachher weiterläuft fehlen nachher plötzlich Datensätze!
    Das Script geht wie folgt weiter:

    PHP-Code:
    reset($daten);
    $linie "-1";
    foreach(
    $daten as $name => $value) {
            if(!
    $linie) {
                
    $linie "$name - $value\n";
                
    $linie++;            
                }
            else {
                
    $inhalt .= "$name - $value\n";
                
    $linie++;
                }
            } 
    An was liegt das? Finds einfach nicht raus! Am Ende des Scripts bleibt auf jeden fall nur noch das übrig:

    number = 3

    was passiert mit dem os?

    Gruss: Spin
    Geändert von Spin (19.12.2003 um 10:41 Uhr)

  4. #4
    TP-Insider P4r4 macht sich hier sehr viel Mühe Avatar von P4r4
    Registriert seit
    Feb 2002
    Beiträge
    550
    Hi,

    also ich denke mal, dass das am reset() liegt.
    Mit reset springt man zum ersten Element eines Arrays und gibt dessen Wert aus. Da du nur zwei Elemente hast und number vor os kommt, wird das wohl daran liegen.

    Was mir bei deinem Script noch ein wenig aufstößt:
    PHP-Code:
    $line="-1";   #<----- string <----- mach mal lieber als inter: $line=-1;

    #...
    $line++;       #<----- post-inkrement für integer; 
    cYa
    P4r4

  5. #5
    TP-Supporter TP-Sponsor Spin macht alles soweit korrekt Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    [PHP] Elemente aus Array Löschen

    Also ich hab mal das gesamte Script angehängt! Ich kriegs nicht! Habe das mit dem reset() probiert aber es kommt nicht hin! An was liegt das? Weiss echt nicht mehr weiter habe noch ein paar Sachen probiert aber es geht nicht!

    PHP-Code:
    <?
    session_start
    ();
    session_unregister('fehler');


    /*Post und Get werden in neue Variable geschrieben damit nachher nur immer eine Variable eingesetzt werden muss*/
    /* Geben Sie die Übermittlungsmethode an... (Es stehen POST und GET zur Verfügung) - POST ist sicherer!!! */
    $methode "POST";
    $methode strtolower($methode);

    if (
    $methode == "get") {
        
    $daten $_GET;
        }
    else {
        
    $daten $_POST;
        }

    /*Die Konfigurationsdatei wird includiert */
    include ("config.inc.php");

    /*Es wird geprüft ob das Script über ein Formular aufgerufen wurde und alle Felder richtig gesetzt sind*/
    if(empty($daten)) {
        
    $fehler"aufruf";
        
    session_register('fehler');
        
    header("location: $nicht_autorisiert");
        exit();
        }
    if ((!isset(
    $daten[empfaenger])) || (!isset($daten[betreff])) || (!isset($daten[weiterleitung]))) {
        
    $fehler"felder";
        
    session_register('fehler');
        
    header("location: $nicht_autorisiert");
        exit();
        }
    $absender_form false;
    if((isset(
    $daten[absender]))) {
        
    $absender_form true;
        }

    /* Anfragende Email und Domain werden festgelegt und bereitgestellt*/
    $anfragende_email $daten[empfaenger];
    $anfragende_email strtolower($anfragende_email);
    $anfragende_email trim($anfragende_email);

    $referer $_SERVER['HTTP_REFERER'];
    $domain explode("http://",$referer);
    $domain $domain[1];
    $domain explode("/",$domain);
    $anfragende_domain $domain[0];
    $anfragende_domain strtolower($anfragende_domain);
    $anfragende_domain trim($anfragende_domain);

    /* Email wird mit dem entsprechenden Array aus der Konfiguration verglichen */
    $emailfalse;
    if (
    in_array($anfragende_email$erlaubte_email)) {
        
    $emailtrue;
        }

    /* Domains werden mit dem entsprechenden Arrays aus der Konfiguration verglichen */
    $domainfalse;
    if (
    in_array($anfragende_domain$erlaubte_domain)) {
        
    $domaintrue;
        }

    /* Es wird überprüft ob die beiden Variablen $email und $domain auf true stehen*/
    if ((!$email) || (!$domain)) {
        
    $fehler"auto";
        
    session_register('fehler');
        
    header("location: $nicht_autorisiert");
        exit();
        }

    /* Die Variablen aus den Versteckten Feldern werden in neue Variablen überführt*/
    $betreff $daten[betreff];
    $weiterleitung $daten[weiterleitung];
    $empfaenger $daten[empfaenger];
    $absender_mail $daten[absender];

    /* Überflüssige Variablen werden aus dem Array entfernt*/
    unset($daten[betreff]);
    unset(
    $daten[weiterleitung]);
    unset(
    $daten[empfaenger]);
    unset(
    $daten[absender]);
    unset(
    $daten[senden]);

    /* Die Auswertung für Methode GET und POST über die am Anfang definierte Variable $daten wird durchgeführt*/
    reset($daten);
    $linie = -1;
    foreach(
    $daten as $name => $value) {
            if(!
    $linie) {
                
    $linie "$name - $value\n";
                
    $linie++;            
                }
            else {
                
    $inhalt .= "$name - $value\n";
                
    $linie++;
                }
            }
        
    /* Variablen für Header und Empfänger und Mail werden gesetzt und bereitgestellt*/
    if ((!$absender) || (!$absender_form)) {
        
    $headers .= "From: <$credits[Info8]>\r\n"
        
    $headers .= "X-Mailer: NetMailer 1.0";
        }
    else {
        
    $headers .= "From: <$absender_mail>\r\n";
        
    $headers .= "X-Mailer: NetMailer 1.0";
        }

    $empfaenger_formular $empfaenger;
    $betreff_formular $betreff;
    $weiterleitung_formular $weiterleitung;

    $nachricht $kopf;
    $nachricht .= $inhalt;
    $nachricht .= $fuss;

    /* Mail wird zusammengestellt und versendet*/
    if (mail($empfaenger_formular$betreff_formular$nachricht$headers)) {
        
    header("location: $weiterleitung_formular");
        exit();
        }
    else {
        
    $fehler"senden";
        
    session_register('fehler');
        
    header("location: $nicht_autorisiert");
        exit();
        }
        
    ?>
    Gruss: Spin

  6. #6
    TP-Insider P4r4 macht sich hier sehr viel Mühe Avatar von P4r4
    Registriert seit
    Feb 2002
    Beiträge
    550
    Hast du reset() wirklich ganz raus genommen?

  7. #7
    TP-Supporter TP-Sponsor Spin macht alles soweit korrekt Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    [PHP] Elemente aus Array Löschen

    Hallo!

    Ja ich habs rausgenommen! Ich finde den Hund nicht!
    Es liegt auch nicht am reset() glaube ich!
    Bei einem Normalen Form das nur Textfelder enthält tritt das Problem nicht auf! Aber sobald Pulldown und Checkboxen ins Spiel kommen tritts auf!
    Aber eigentlich solte das ja keinen Unterschied machen!
    Wenn ich die ganzen Zeilen mit dem unset auskommentiere kommen komischerweise alle Daten bei mir an. Sowohl os als auch number kommen an! Halt auch die die ich eigentlich nicht will!

    Gruss: spin

  8. #8
    TP-Insider P4r4 macht sich hier sehr viel Mühe Avatar von P4r4
    Registriert seit
    Feb 2002
    Beiträge
    550
    Hmmmm, ....
    zeig mal dein Form her!

  9. #9
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    Wo ist der Sinn dieser Schleife??
    PHP-Code:
    $linie = -1;
    foreach(
    $daten as $name => $value) {
            if(!
    $linie) {
                
    $linie "$name - $value\n";
                
    $linie++;            
                }
            else {
                
    $inhalt .= "$name - $value\n";
                
    $linie++;
                }
            } 
    Im ersten Durchlauf wird der Else-Zweig angesprochen und die Variable $inhalt mit Text gefüllt... Im 2ten Durchlauf sollte !$linie ein true zurückliefern und den ersten IF-Zweig zulassen... dort Schreibst du auf einmal Text in die Variable $linie und erhöhst deren Wert um 1... Denk nochmal drüber nach

    Gruss
    Jan

  10. #10
    TP-Supporter TP-Sponsor Spin macht alles soweit korrekt Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    [PHP] Elemente aus Array Löschen

    Sorry zusammen war mal schnell weg übers Weekend!

    Hier ist meine Form! Die Schleife habe ich gelöscht aber es geht immer noch nicht

    PHP-Code:
    <form action="http://www.nettown.ch/webinterface/f2m/f2m.php" method="POST">
      <
    p
        <
    input type="text" name="empfaenger" value="andre.nater@sqts.ch"/>
        <
    input type="text" name="betreff" value="hehehe"/>
        <
    input type="text" name="weiterleitung" value="http://www.google.ch"/>
      </
    p>

        <
    p>
        <
    select name="number">
            <
    option value="1">One
            
    <option value="2">Two
            
    <option value="3">Three
        
    </select>
        </
    p>

        <
    p>
        <
    input type="radio" name="os" value="winxp" CHECKED>Windows XP<br>
        <
    input type="radio" name="os" value="win2000">Windows 2000<br>
        <
    input type="radio" name="os" value="win9598ME">Windows 95/98/ME<br>
        </
    p>

        <
    p>
        <
    input type="submit" name="senden" value="Senden">
        </
    p>
    </
    form
    Gruss: Spin

  11. #11
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    Wenn du die Schleife gelöscht hast, kann ja die Variable $inhalt nicht gefüllt werden. Also - es funktioniert nicht... Wie wäre es, wenn du mal überlegst, was du mit dieser Schleife überhaupt anstellen wolltest, anstatt sie einfach zu löschen? ...

  12. #12
    TP-Supporter TP-Sponsor Spin macht alles soweit korrekt Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    [PHP] Elemente aus Array Löschen

    Hallo zusammen

    Jetzt hab ich nochmal ein bisschen an der Schleife rumstudiert und schau da ich habs gefunden! So machts doch mehr Sinn und funktioniert auch!

    Danke an alle und schöne Festtage!!!!

    PHP-Code:

    $linie 
    = -1;
    foreach(
    $daten as $name => $value) {
            
    $inhalt .= "$name - $value\n";
            
    $linie++;
            } 
    Gruss: Spin

  13. #13
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    Und wofür ist $linie da? ...ist doch auch überflüssig, oder?

  14. #14
    TP-Supporter TP-Sponsor Spin macht alles soweit korrekt Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    [PHP] Elemente aus Array Löschen

    Ah shit! klar! Hab ich vergessen!
    So muss es natürlich korrekt heissen!

    PHP-Code:
    foreach($daten as $name => $value) {
            
    $inhalt .= "$name - $value\n";
            } 
    Danke und ein schönes Fest!

    Gruss: Spin

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51