ich versteh es einfach nicht

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

  • ich versteh es einfach nicht

    wenn ich den folgenden code ausführe dann werden die daten wunderbar in die
    datenbank geschrieben. versuche ich mir die var. $Clipboard per request zu holen
    dann funktioniert nichts mehr. die felder bleiben alle auf "nicht übertragen".



    PHP-Code:
    <?
    error_reporting(E_ALL);
      // Datenbankdaten:

    // 
    $ANREDE_H = "nicht übertragen";
    $exportzaehler = "nicht übertragen";
    $ANREDE_H = "nicht übertragen";
    $FAMNAME = "nicht übertragen";
    $VORNAME = "nicht übertragen";
    $STRASSE = "nicht übertragen";
    $PLZ = "nicht übertragen";
    $ORT = "nicht übertragen";
    $NATION = "nicht übertragen";
    $TELEFON = "nicht übertragen";
    $FAX = "nicht übertragen";
    $P_EMAIL = "nicht übertragen";

    //$Clipboard = $_REQUEST['Clipboard'];

    $Clipboard= "Anrede: Herr`nNachname: Lehnner`nName: Johann`nStraße: Brückens 21`nPLZ, 
    Ort: 75669 Unterens`nLand: Germany`nTelefon: 00491719220029`nFax:`nE-Mail: 
    m.lehn@usas.com`nSprache: Deutsch";
    ## ARRAYS AUFTEILEN #######################################
    $textlaenge = substr_count ( $Clipboard, '`n' );
    for($i=0; $i<$textlaenge; $i++) 
    {
    $zeile = explode("`n", $Clipboard);
    $inhalt = explode(":", $zeile[$i]);


    if(in_array("Anrede",$inhalt))
      {
       $ANREDE_H = $inhalt[1];
        }
      
    if(in_array("Nachname",$inhalt))
      {
       $FAMNAME = $inhalt[1];
      }
      
    if(in_array("Name",$inhalt))
      {
       $VORNAME = $inhalt[1];
      }
     
    if(in_array("Straße",$inhalt))
      {
       $STRASSE = $inhalt[1];
    echo $STRASSE;
      }
      
    if(in_array("PLZ, Ort",$inhalt))
      {
        $output = explode(" ", $inhalt[1]);
        $PLZ = $output[1];
        $ORT = $output[2] . " " . $output[3] . " " . $output[4];
        echo $PLZ;
        echo $ORT;
      }
       
    if(in_array("Land",$inhalt))
      {
       $NATION = $inhalt[1];
      }  
      
    if(in_array("Telefon",$inhalt))
      {
       $TELEFON = $inhalt[1];
      }  
      
    if(in_array("Fax",$inhalt))
      {
       $FAX = $inhalt[1];
      }   
      
    if(in_array("E-Mail",$inhalt))
      {
       $P_EMAIL = $inhalt[1];
      }    
    }
    /*
    $ANREDE_H = "m";
    $exportzaehler = "m";
    $ANREDE_H = "m";
    $FAMNAME = "m";
    $VORNAME = "m";
    $STRASSE = "m";
    $PLZ = "m";
    $ORT = "m";
    $NATION = "m";
    $TELEFON = "m";
    $FAX = "m";
    $P_EMAIL = "m";
    */


     echo $ANREDE_H;
     echo $FAMNAME;
        echo $VORNAME;
        echo $STRASSE;
         echo $PLZ;
          echo $ORT;
                echo $NATION;
          echo $TELEFON;          
                    echo $FAX;
                        echo $P_EMAIL;
                      $FAMNAME = $_REQUEST['Clipboard'];
    ### MySQl DB Server ######################################
    $servername="localhost";
    $benutzername="webxx";
    $passwort="232323";
    $db="usr_webxx_3";
    ### MySQl DB Verbindung ##################################
    $verbindung = mysql_connect ($servername,$benutzername,$passwort)
    or die ("Zurzeit keine Verbindung möglich!");
    mysql_select_db($db)or die ("Die Datenbank existiert nicht.");
    ### hösten Zähler ermitteln und dann um 1 erhöhen #################
      $sql="SELECT MAX(exportzaehler) FROM nova_export;";
      $ergebnis=mysql_query($sql);
      $row=mysql_fetch_row($ergebnis);
      $exportzaehler=$row[0]+1;
    ### MySQl DB Eintrag #####################################
    $eintrag = "INSERT INTO nova_export
    (ID,exportzaehler,ANREDE_H,FAMNAME,VORNAME,STRASSE,PLZ,ORT,TELEFON,FAX,P_EMAIL)
    VALUES
    ('','$exportzaehler', '$ANREDE_H', '$FAMNAME', '$VORNAME', '$STRASSE',
    '$PLZ', '$ORT','$TELEFON', '$FAX', '$P_EMAIL')";
    $eintragen = mysql_query($eintrag);
    mysql_close($verbindung);
    //echo "Erfolgreich";

    //echo "$exportzaehler";
    ?>
    Zuletzt geändert von franks; 26.07.2010, 15:03.

  • #2
    Furchtbarer Code ...

    ... den du jetzt bitte wenigstens erst mal umbrichst, wie es in den Foren-Regeln steht.


    Und etwas mehr als „funktioniert nicht“ solltest du auch liefern können.
    Was hast du denn bisher schon probiert, um das Problem zu analysieren?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      mein vorhaben
      1.ich erhalte per post eine variable namens $clipboard
      2. diese varible möchte ich in ein array lesen
      3. den array teile ich wiederum auf z. B. anrede: herr
      4. nun erstelle ich eine var mit dem gewünschten array
      5. ich schreibe die varibeln in eine datenbank

      das problem
      1. keine fehlermeldung
      2. die varible clipoard funktioniert nicht wenn ich sie per request
      übernehmen möchte
      3. ich weiss nicht was nicht funktioniert --> der request kommt
      wird jedoch nicht in die arrays geschrieben

      meine versuche
      -die var. clipboard direkt zu benutzen --> funktioniert
      -die var. clipboard im ganzen in ein feld der datenbank schreiben um zu
      schauen was übertragen wird. die zeilenumbrüche (`n)
      werden in der datenbank nicht gezeigt
      -ich habe versucht andere trennzeichen zu benutzen. ( ::: und ;;; )
      -anhand am error reporting alle fehler beseitigt
      -stundenlange überprüft ob die daten von der software autohotkey
      richtig übertragen werden



      PHP-Code:
      <?
      error_reporting(E_ALL);
        // Datenbankdaten:

      // 
      $ANREDE_H = "nicht übertragen";
      $exportzaehler = "nicht übertragen";
      $ANREDE_H = "nicht übertragen";
      $FAMNAME = "nicht übertragen";
      $VORNAME = "nicht übertragen";
      $STRASSE = "nicht übertragen";
      $PLZ = "nicht übertragen";
      $ORT = "nicht übertragen";
      $NATION = "nicht übertragen";
      $TELEFON = "nicht übertragen";
      $FAX = "nicht übertragen";
      $P_EMAIL = "nicht übertragen";

      //$Clipboard = $_REQUEST['Clipboard'];

      $Clipboard= "Anrede: Herr`nNachname: Lehnner`nName: Johann`nStraße: 
      Brückens 21`nPLZ, Ort: 75669 Unterens`nLand: Germany`nTelefon: 
      00491719220029`nFax:`nE-Mail: m.lehn@usas.com`nSprache: Deutsch";
      ## ARRAYS AUFTEILEN #######################################
      $textlaenge = substr_count ( $Clipboard, '`n' );
      for($i=0; $i<$textlaenge; $i++) 
      {
      $zeile = explode("`n", $Clipboard);
      $inhalt = explode(":", $zeile[$i]);


      if(in_array("Anrede",$inhalt))
        {
         $ANREDE_H = $inhalt[1];
          }
        
      if(in_array("Nachname",$inhalt))
        {
         $FAMNAME = $inhalt[1];
        }
        
      if(in_array("Name",$inhalt))
        {
         $VORNAME = $inhalt[1];
        }
       
      if(in_array("Straße",$inhalt))
        {
         $STRASSE = $inhalt[1];
      echo $STRASSE;
        }
        
      if(in_array("PLZ, Ort",$inhalt))
        {
          $output = explode(" ", $inhalt[1]);
          $PLZ = $output[1];
          $ORT = $output[2] . " " . $output[3] . " " . $output[4];
          echo $PLZ;
          echo $ORT;
        }
         
      if(in_array("Land",$inhalt))
        {
         $NATION = $inhalt[1];
        }  
        
      if(in_array("Telefon",$inhalt))
        {
         $TELEFON = $inhalt[1];
        }  
        
      if(in_array("Fax",$inhalt))
        {
         $FAX = $inhalt[1];
        }   
        
      if(in_array("E-Mail",$inhalt))
        {
         $P_EMAIL = $inhalt[1];
        }    
      }
      /*
      $ANREDE_H = "m";
      $exportzaehler = "m";
      $ANREDE_H = "m";
      $FAMNAME = "m";
      $VORNAME = "m";
      $STRASSE = "m";
      $PLZ = "m";
      $ORT = "m";
      $NATION = "m";
      $TELEFON = "m";
      $FAX = "m";
      $P_EMAIL = "m";
      */


       echo $ANREDE_H;
       echo $FAMNAME;
          echo $VORNAME;
          echo $STRASSE;
           echo $PLZ;
            echo $ORT;
                  echo $NATION;
            echo $TELEFON;          
                      echo $FAX;
                          echo $P_EMAIL;
                        $FAMNAME = $_REQUEST['Clipboard'];
      ### MySQl DB Server ######################################
      $servername="localhost";
      $benutzername="webxx";
      $passwort="232323";
      $db="usr_webxx_3";
      ### MySQl DB Verbindung ####################
      $verbindung = mysql_connect ($servername,$benutzername,$passwort)
      or die ("Zurzeit keine Verbindung möglich!");
      mysql_select_db($db)or die ("Die Datenbank existiert nicht.");
      ### hösten Zähler ermitteln und dann um 1 erhöhen #####################################
        $sql="SELECT MAX(exportzaehler) FROM nova_export;";
        $ergebnis=mysql_query($sql);
        $row=mysql_fetch_row($ergebnis);
        $exportzaehler=$row[0]+1;
      ### MySQl DB Eintrag #####################################
      $eintrag = "INSERT INTO nova_export
      (ID,exportzaehler,ANREDE_H,FAMNAME,VORNAME,STRASSE,
      PLZ,ORT,TELEFON,FAX,P_EMAIL)
      VALUES
      ('','$exportzaehler', '$ANREDE_H', '$FAMNAME', '$VORNAME', 
      '$STRASSE', '$PLZ', '$ORT','$TELEFON', '$FAX', '$P_EMAIL')";
      $eintragen = mysql_query($eintrag);
      mysql_close($verbindung);
      //echo "Erfolgreich";

      //echo "$exportzaehler";
      ?>

      Kommentar


      • #4
        Code schon umgebrochen?

        Kommentar


        • #5
          ja, den ersten beitrag habe ich auch umgebrochen.

          Kommentar


          • #6
            Hallo,

            solange das auskommentiert ist, wird PHP nicht auf die Post-Daten zugreifen:

            PHP-Code:
            //$Clipboard = $_REQUEST['Clipboard']; 


            Gruß,

            Amica
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              1. http://php-coding-standard.de/php_coding_standard.php
              2. Lass dir mal ein paar Debugausgaben anzeigen, z.B. in der Schleife mal ein echo reinmachen was er eigentlich genau leist bei jedem Durchlauf
              3. $zeile kannst du vor der "for"-Schleife definieren, daran ändert sich im Durchlaufen nichts
              4. Sowas macht man normalerweise nicht mit explode, das ist zu unsicher. Du weiß nicht, in welcher Codierung die Sachen übergeben werden, und wenn die von der abweicht, in der deine PHP-Datei ist, wirds schwer.
              5. Warum suchst du nach "`n" - eine neue Zeile wird als "\n" codiert
              6. Was steht in $zeile ( var_dump($zeile) ) und $inhalt in jedem schleifendurchlauf?
              This is what happens when an unstoppable force meets an immovable object.

              Kommentar


              • #8
                Zitat von AmicaNoctis Beitrag anzeigen
                Hallo,

                solange das auskommentiert ist, wird PHP nicht auf die Post-Daten zugreifen:

                PHP-Code:
                //$Clipboard = $_REQUEST['Clipboard']; 


                Gruß,

                Amica

                danke für deine antwort.
                ich habe es zum testen auskommentiert.
                an dem liegt es nicht.

                Kommentar


                • #9
                  danke für deinen beitrag.
                  kann es sein dass php den zeilenumbruch nicht erkennt.
                  die var clipboard ist der inhalte von strg+c und strg+v
                  was würdest du anstatt von explode empfehlen?
                  muss ich vielleicht nach dem ":" suchen und dann den inhalt davor und danch in eine var umwandeln?

                  beispiel:
                  [CODE]
                  Adresse
                  Anrede: Herr
                  Nachname: Vollbach
                  Name: Markus
                  Straße: Kiefernweg 1a
                  PLZ, Ort: 50999 Köln
                  Land: Germany
                  Telefon: (0049) 172 893 4526
                  [/QUOTE]

                  Kommentar


                  • #10
                    Zitat von franks Beitrag anzeigen
                    kann es sein dass php den zeilenumbruch nicht erkennt.
                    Welchen Zeilenumbruch - meinst du das, wo in deinem Script immer `n steht?
                    Das ist kein Zeilenumbruch.

                    Und ja, selbst wenn du dich für richtige Zeilenumbrüche interessieren würdest, und nicht nur für eine seltsame Zeichenkombination - dann können die je nach System immer noch unterschiedlich aussehen.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Zitat von wahsaga Beitrag anzeigen
                      Welchen Zeilenumbruch - meinst du das, wo in deinem Script immer `n steht?
                      Das ist kein Zeilenumbruch.

                      Und ja, selbst wenn du dich für richtige Zeilenumbrüche interessieren würdest, und nicht nur für eine seltsame Zeichenkombination - dann können die je nach System immer noch unterschiedlich aussehen.
                      ja, ich meinte die `n zeilenumbrüche. wenn ich mich nicht an den zeilenumbrüchen orientieren sollte, was gibt es für eine alternative?
                      wie kann man das wort vor und ein wort nach dem ":" in eine var oder array lesen?

                      Kommentar


                      • #12
                        ich habe es mit split versucht und das ganze per echo ausgegeben.
                        Code:
                        $inhalt = split("\n",$Clipboard); 
                        echo $inhalt[$i] . "+++++++++++";

                        resultat des echos:
                        Gast+++++++++++Anrede: Herr+++++++++++Nachname: Vollbach+++++++++++Name: Markus+++++++++++Straße: Kiefernweg 1a+++++++++++PLZ, Ort: 50999 Köln+++++++++++Land: Germany usw.

                        schaut doch eigentlich ganz gut aus! oder ?
                        Zuletzt geändert von franks; 26.07.2010, 21:12.

                        Kommentar


                        • #13
                          kurz vor dem ziel

                          alle informationen werden jetzt in die datenbank geschrieben.
                          nur die var strasse nicht. kann es sein dass es ein problem mit dem "ß" gibt?

                          mir ist auch aufgefallen dass wenn ich die daten per pst komme umlaute falsch angezeigt bekomme.
                          z.b. ü . wenn ich die var nicht per post sondern zum testen direkt i script erstelle dann besteht das problem nicht.
                          nur der Array Straße wird nie gefunden.

                          PHP-Code:
                          if(in_array("Name",$inhalt))
                            {
                             
                          $VORNAME $inhalt[1];
                            }
                           
                          if(
                          in_array("Straße",$inhalt))
                            {
                             
                          $STRASSE $inhalt[1];
                             } 
                          Zuletzt geändert von franks; 26.07.2010, 23:20.

                          Kommentar


                          • #14
                            das Problem mit dem "ß" hast du ja selbst schon gesehen ...

                            wenn du die Daten per Post bekommst und dann Umlaute nicht korrekt sind, dann betrifft das IMMER auch "ß" .. von daher ist halt "Straße" nicht in deinem Array..

                            Setz mal den Zeichensatz sowohl der Datenbank als auch den vom PHP script auf UTF-8 .
                            [font=Verdana]
                            Wer LESEN kann, ist klar im Vorteil!
                            [/font]

                            Kommentar


                            • #15
                              utf-8 habe ich schon ausprobiert.
                              wenn ich per post vars schicke dann funktioniert es leider nicht.
                              an was kann das liegen?
                              Zuletzt geändert von franks; 27.07.2010, 08:16.

                              Kommentar

                              Lädt...
                              X