Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Leerzeichen im Array

  1. #1
    Registrierter Benutzer
    Registriert seit
    28.07.2003
    Ort
    Tirschenreuth
    Beiträge
    81

    Leerzeichen im Array

    Hallo,

    ich habe leider schon wieder ein Problem.

    Ich habe ein Textfeld, in dem normaler Text eingegeben werden soll.
    Allerdings habe ich ein Problem den Inhalt in die Datenbank zu schreiben, sobald
    ein Leerzeichen enthalten ist.
    Ich dachte eigentlich, dass in einem Array die Leerzeichen egal sind, wenn ich sie nicht
    direkt als Trenner angeben ??.
    Muss ich bei PHP irgendwas anders einstellen??

    Beispiel:

    echo '<td><input name=txtInfo[] type=text size=15 maxlength=50></td>';

    Inhalt wäre so was wie: Achtung: nur in der Farbe 20 einsetzen

    Gruss Klaus

  2. #2
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Also ehrlich gesagt verstehe ich nicht was du meinst. Dein Code ist auch nicht besonders aufschlussreich. Leerzeichen werden in PHP als Metazeichen mit gelesen daher dürfte es kein Problem sein. Die Frage ist eher wie und welchen Code du zum einlesen verwendest und WICHTIG was in der phpinfo unter magic_quotes_gpc steht on oder off?

  3. #3
    Registrierter Benutzer
    Registriert seit
    28.07.2003
    Ort
    Tirschenreuth
    Beiträge
    81
    Morgn undefined,

    schiebe noch die Infos nach. Dachte es wäre eher ein programmtechnisches Problem.
    Ich habe ein Array, welches einwandfrei funktioniert, sofern ich keine Leerzeichen in den Text einfüge.
    Sobald ich das mache, wird nur der Teil vor dem Leerzeichen per $HTTP_POST_VARS['liste'] übergeben und
    beim Schreiben in die Datenbank krachts.


    Skript Ausschnitt:

    // Zelle mit dem Array
    echo '<td bgcolor=#BDBDBD align=middle><input type=checkbox name=liste[] value=' . $rs_liste4['ars_key'] . '> </td>';
    // Auslesen des Arrays und speichern
    if (isset ($HTTP_POST_VARS['liste']) && count ($HTTP_POST_VARS['liste']) > 0)
    {
    foreach ($HTTP_POST_VARS['liste'] AS $ars_array)
    { ...}



    Einträge aus der php.ini

    ; This directive is deprecated. Use variables_order instead.
    gpc_order = "GPC"

    ; Magic quotes
    ;

    ; Magic quotes for incoming GET/POST/Cookie data.
    magic_quotes_gpc = On

    ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
    magic_quotes_runtime = Off

    ; Use Sybase-style magic quotes (escape ' with '' instead of \').
    magic_quotes_sybase = Off




    Werte aus phpinfo():

    PHP Version 4.3.3

    System Linux edvlinux 2.4.21-192-athlon #1 Wed Feb 18 19:28:00 UTC 2004 i686
    Build Date Sep 24 2003 00:33:28
    Configure Command './configure' '--prefix=/usr/share' '--datadir=/usr/share/php' '--bindir=/usr/bin' '--libdir=/usr/share' '--includedir=/usr/include' '--sysconfdir=/etc' '--with-_lib=lib' '--with-config-file-path=/etc' '--with-exec-dir=/usr/lib/php/bin' '--disable-debug' '--enable-bcmath' '--enable-calendar' '--enable-ctype' '--enable-dbase' '--enable-discard-path' '--enable-exif' '--enable-filepro' '--enable-force-cgi-redirect' '--enable-ftp' '--enable-gd-imgstrttf' '--enable-gd-native-ttf' '--enable-inline-optimization' '--enable-magic-quotes' '--enable-mbstr-enc-trans' '--enable-mbstring' '--enable-mbregex' '--enable-memory-limit' '--enable-safe-mode' '--enable-shmop' '--enable-sigchild' '--enable-sysvsem' '--enable-sysvshm' '--enable-track-vars' '--enable-trans-sid' '--enable-versioning' '--enable-wddx' '--enable-yp' '--with-bz2' '--with-dom=/usr/include/libxml2' '--with-ftp' '--with-gdbm' '--with-gettext' '--with-gmp' '--with-imap=yes' '--with-iodbc' '--with-jpeg-dir=/usr' '--with-ldap=yes' '--with-mcal=/usr' '--with-mcrypt' '--with-mhash' '--with-mysql=/usr' '--with-ndbm' '--with-pgsql=/usr' '--with-png-dir=/usr' '--with-readline' '--with-snmp' '--with-t1lib' '--with-tiff-dir=/usr' '--with-ttf' '--with-freetype-dir=yes' '--with-xml' '--with-xpm-dir=/usr/X11R6' '--with-zlib=yes' '--with-qtdom=/usr/lib/qt3' '--with-gd' '--with-openssl' '--with-curl' '--with-swf=/usr/src/packages/BUILD/swf/dist/' '--with-imap-ssl' '--enable-xslt' '--with-xslt-sablot' '--with-iconv' '--with-apxs2=/usr/sbin/apxs2-prefork' 'i586-suse-linux'
    Server API Apache 2.0 Handler
    Virtual Directory Support disabled
    Configuration File (php.ini) Path /etc/php.ini
    PHP API 20020918
    PHP Extension 20020429
    Zend Extension 20021010
    Debug Build no
    Thread Safety disabled
    Registered PHP Streams php, http, ftp, https, ftps, compress.bzip2, compress.zlib


    Gruss Klaus

  4. #4
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Also vom Code her kann es nicht sein, ich vermute also eher mal wie oben schon angedeutet das es an Magic quotes liegt. Am sinvollsten wird es dann sein Sonderzeichen mit stripslashes zu säubern.
    PHP-Code:
    <?php
    echo <<<EOT
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <title>POSTEN</title>
      <meta name="GENERATOR" content="Quanta Plus" />
    </head>
    <body>
    EOT;
    ?>
    <?php
    echo "<form action=\"" $_SERVER['PHP_SELF'] . "\" method=\"post\">";
     for (
    $i 0$i 5$i++) {
       echo 
    $i " ) <input type=\"checkbox\" name=\"liste[]\" value=\"$i) Warum werden meine Strings zerhagt?\" />"
     }
    ?>
    <input type="submit" />
    </form>
    <?php
     
    if (isset($_POST['liste']) && count($_POST['liste']) > 0) {
        foreach (
    $_POST['liste'] AS $keys) {
             echo 
    $keys "<br />";
        } 
     }
     
     echo 
    "<pre>";
      
    print_r($_POST);
     echo 
    "</pre>";
    ?>
    </body>
    </html>

  5. #5
    Registrierter Benutzer
    Registriert seit
    28.07.2003
    Ort
    Tirschenreuth
    Beiträge
    81
    Hallo undefined,

    ich habe es jetzt noch einmal versucht, aber das funktioniert auch nicht. Ich habe ausser dem Leerzeichen ja keine anderen Sonderzeichen drin.

    danke trotzdem

    gruss Klaus

  6. #6
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Dann zeige bitte mal deinen Code mit dem du ausliest und schreibst.

  7. #7
    Registrierter Benutzer
    Registriert seit
    28.07.2003
    Ort
    Tirschenreuth
    Beiträge
    81
    Morgn undefined,


    ICH BIN EIN DEPP !!!!!

    Schreiben funktioniert. Was nicht funktioniert ist die Weitergabe des Array Inhalts mittels HTTP_POST_VARS.

    Benutzer schreibt etwas ins Formular und bekommt dann seinen geschriebenen Text + eine Liste. Die Angaben kann er dann noch einmal prüfen und dann speichern.

    Er schreibt hier rein:

    z.B.: 17, 25

    echo '<td><input name=txtFarbenEingabe[] type=text size=8 maxlength=25></td>';

    hier soll der Inhalt wieder angezeigt werden:

    foreach ($HTTP_POST_VARS['txtFarbenEingabe'] AS $Farben){$test = $Farben;}
    echo '<td><input name=txtFarbenEingabe[] type=text size=8 maxlength=25 value=' . $Farben . '></td>';

    Es kommt aber nur der Teil vor dem Komma an : hier halt 17 und ich kann ja nicht sagen, wieviel hier geschrieben wird.

    Geschrieben wird der Datensatz dann so:

    foreach ($HTTP_POST_VARS['txtFarbenEingabe'] AS $fb_array){;}
    $SQL_insert="INSERT INTO tabelle (kal_farben) values ('{" . $fb_array ."}')";

    Das funktioniert, auch wenn es doof aussieht.


    Gruss Klaus

  8. #8
    Registrierter Benutzer
    Registriert seit
    28.07.2003
    Ort
    Tirschenreuth
    Beiträge
    81
    Habs gefunden !!!!!!

    habe vergessen die Variable noch einmal in Hochkommas zu packen. Damit hat der Browser das Zeugs zerlegt.

    Danke an alle

    Gruss Klaus

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •