joane: mysql datenbank

hello,

ich bin neu hier, verzeien sie mir meine rechtfehler.

eine frage,

warum geht das

  
$sql=mysql_query("SELECT art FROM table WHERE id = '3'");  
while($result=mysql_fetch_object($sql))  
{  
echo"$result->art";  
}  

zeigt richtig an. aber das nicht?

  
$sql=mysql_query("SELECT art FROM table WHERE id = '$_POST[number]'");  
while($result=mysql_fetch_object($sql))  
{  
echo"$result->art";  
}  

kein fehler kommt? wer ist falsch,
schönen dank
joane

  1. Hallo,

    1.) Mach doch aus $_POST[number] $_POST['number'], dann sollte es gehen.
    2.) echo "$variable"; kann gehen, macht aber keinen Sinn, lass die Anführungszeichen weg: echo $variable;

    Gruß, Thomas

    1. echo $begrüßung;

      1.) Mach doch aus $_POST[number] $_POST['number'], dann sollte es gehen.

      Außerhalb eines String notiert ist ein literal notierter Array-Schlüssel in Anführungszeichen zu setzen. Why is $foo[bar] wrong? Innerhalb eines mit "" eingefassten Strings ist die Schreibweise ohne Anführungszeichen gültige PHP-Syntax. Siehe dazu die Note am Ende des verlinkten Abschnitts, kurz nach dem Unterabschnitt So why is it bad then? Mit ''-Anführungszeichen in ""-Strings muss die {}-Syntax verwendet werden.

      Allerdings ist es im Falle des OP besser, die Sache ganz anders zu notieren.

      $sql = sprintf("SELECT art FROM table WHERE id = '%s'",
        mysql_real_escape_string($_POST['number']));
      if ($result = mysql_query($sql))
        while ($record = mysql_fetch_...($result))
          ...
      else
        // Alternative im Fehlerfall

      Die Query wird vor SQL-Injektion geschützt, indem der übergebene Wert mit mysql_real_escape_string() behandelt wird, bevor er in den SQL-String-Kontext eingefügt wird. Das sprintf() lässt den Query-String im Ganzen, zerstückelt ihn also nicht, um den mit mysql_real_escape_string() behandelten Wert einzufügen. Außerdem ist ein Reagieren auf Fehler angebracht, das ich im obigen Code angedeutet habe.

      echo "$verabschiedung $name";

  2. Versuche es mal so:

      
    $num = (int) $_POST['number'];  
    $sql=mysql_query("SELECT art FROM table WHERE id = {$num}");  
    while($result=mysql_fetch_object($sql))  
    {  
    echo $result->art;  
    }  
    
    

    Du solltest POST-Variablen immer prüfen (Sicherheitsloch!!).

    Gruß
    Tom123

    1. hi tom123,

      der tipp ist gut, sehr gut sogar.

      wie ist, wenn mein $_POST['number'] chars bzw. strings sind?

      ich habe (char) (varchar) (string) probiert, aber hat nicht funktioniert....

      vielen dank für deine hilfe.

      joane

      Versuche es mal so:

      $num = (int) $_POST['number'];
      $sql=mysql_query("SELECT art FROM table WHERE id = {$num}");
      while($result=mysql_fetch_object($sql))
      {
      echo $result->art;
      }

      
      >   
      > Du solltest POST-Variablen immer prüfen (Sicherheitsloch!!).  
      >   
      > Gruß  
      > Tom123  
      > 
      
  3. Hi,

    warum geht das [...] aber das nicht?

    Eine andere Frage: Wieso kommst du uns mit "funzt nich", obwohl du doch gelesen hast, dass das bloedsinnig ist?
    Und wieso betreibst du kleinerlei sinnvolles Debugging?

    $sql=mysql_query("SELECT art FROM table WHERE id = '$_POST[number]'");

    Kontrollausgabe dieser zusammengebastelten Query [1] ergibt was?

    [1] Nach Umschreibung in eine zum Debugging sinnvolle Form:
        $query = "SELECT ...";
        $sql = mysql_query($query);

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. hi chris,

      PokerASS = joane

      ich spiele sehr gern poker

      joane

      1. Hi,

        PokerASS = joane

        Und warum bleibst du nicht bei einem Nickname?

        Weil du weisst, dass du unter dem anderen langsam keine Antworten mehr bekommst, weil du die gegebenen Tipps nicht umsetzt?

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
        1. hi,

          no, hat nichts damit zu tun. ich habe einmal meinen nicknamen vergessen.
          bleibe jetzt bei mein namen joane

          joane

          Hi,

          PokerASS = joane

          Und warum bleibst du nicht bei einem Nickname?

          Weil du weisst, dass du unter dem anderen langsam keine Antworten mehr bekommst, weil du die gegebenen Tipps nicht umsetzt?

          MfG ChrisB

  4. Hello,

    warum geht das

    $sql=mysql_query("SELECT art FROM table WHERE id = '3'");
    while($result=mysql_fetch_object($sql))
    {
    echo"$result->art";
    }

    
    >   
    > zeigt richtig an. aber das nicht?  
    > ~~~php
      
    
    > $sql=mysql_query("SELECT art FROM table WHERE id = '$_POST[number]'");  
    > while($result=mysql_fetch_object($sql))  
    > {  
    > echo"$result->art";  
    > }  
    > 
    
    

    Weil die Array-Referenz leider bnicht aufgelöst wird in diesem String.

    So müsste es funktionieren:
      $sql = mysql_query("SELECT art FROM table WHERE id = '{$_POST[number]}'");

    So geht es auch:
      $sql = mysql_query("SELECT art FROM table WHERE id = '" . $_POST[number] . "'");

    und so ist es sicherer...
      $sql = mysql_query("SELECT art FROM table WHERE id = " . intval($_POST[number]) );

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hello,

      und fehlende die Quotierung des Elementnamens habe ich auch übersehen...

      So müsste es funktionieren:

      $sql = mysql_query("SELECT art FROM table WHERE id = '{$_POST['number']}'");

      So geht es auch:

      $sql = mysql_query("SELECT art FROM table WHERE id = '" . $_POST['number'] . "'");

      und so ist es sicherer...

      $sql = mysql_query("SELECT art FROM table WHERE id = " . intval($_POST['number']) );

      Liebe Grüße aus Syburg bei Dortmund

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. hi tom

        du bist der richtige man, deine hilfe sind sehr nett

        der code funktioniert

          
        
        > $sql = mysql_query("SELECT art FROM table WHERE id = " . intval($_POST['number']) );  
        
        

        wenn number zahlen sind. aber wenn number wie "blue" "pink" ist, geht nicht.

        number ist in mysql database vom type varchar vielleicht hilft es weiter

        joane

        1. Hi,

          der code funktioniert

          $sql = mysql_query("SELECT art FROM table WHERE id = " . intval($_POST['number']) );

          
          >   
          > wenn number zahlen sind. aber wenn number wie "blue" "pink" ist, geht nicht.  
            
          MySQL Handbuch, [9.1. Literale: wie Strings und Zahlen geschrieben werden](http://dev.mysql.com/doc/refman/5.1/de/literals.html)  
            
          MfG ChrisB  
            
          
          -- 
          „This is the author's opinion, not necessarily that of Starbucks.“
          
          1. hi chris,

            danke für den link. ich habe es gelesen. aber wie ich aus den intval einen string mach steht auch nicht wirklich da.

            mit strval geht es nicht. es zeigt dann nichts an der stelle an.

            joane

            Hi,

            der code funktioniert

            $sql = mysql_query("SELECT art FROM table WHERE id = " . intval($_POST['number']) );

            
            > >   
            > > wenn number zahlen sind. aber wenn number wie "blue" "pink" ist, geht nicht.  
            >   
            > MySQL Handbuch, [9.1. Literale: wie Strings und Zahlen geschrieben werden](http://dev.mysql.com/doc/refman/5.1/de/literals.html)  
            >   
            > MfG ChrisB  
            >   
            > 
            
            1. Hi,

              zitiere bitte endlich mal vernuenftig, und nicht immer alles!

              danke für den link. ich habe es gelesen. aber wie ich aus den intval einen string mach steht auch nicht wirklich da.

              Per POST uebergebene Werte sind immer Strings - es besteht also gar keine Notwendigkeit, daraus erst einen solchen zu machen.

              MfG ChrisB

              --
              „This is the author's opinion, not necessarily that of Starbucks.“
              1. hi chris,

                Per POST uebergebene Werte sind immer Strings - es besteht also gar keine Notwendigkeit, daraus erst einen solchen zu machen.

                wenn so ist, warum klappt die anfrage nicht. verbindung zur datenbank ist. es wird nichts ausgegeben.

                wenn ich mit intval mache erscheinen alle einträge in der spalte id nebeneinander,

                da stimmt was nicht. der code ist immer der gleiche. ich spiele mit der "grammatik" etwas rum....

                ich will es gerne bald fertig haben.

                joane

                Hi,

                zitiere bitte endlich mal vernuenftig, und nicht immer alles!

                danke für den link. ich habe es gelesen. aber wie ich aus den intval einen string mach steht auch nicht wirklich da.

                Per POST uebergebene Werte sind immer Strings - es besteht also gar keine Notwendigkeit, daraus erst einen solchen zu machen.

                MfG ChrisB

                1. Hi,

                  sag mal, bist du daemlich?
                  Ich bat dich jetzt schon mehrfach, endlich mal vernuenftig zu zitieren - also mach das bitte endlich!

                  Per POST uebergebene Werte sind immer Strings - es besteht also gar keine Notwendigkeit, daraus erst einen solchen zu machen.

                  wenn so ist, warum klappt die anfrage nicht.

                  Weil sie fehlerhaft ist?

                  verbindung zur datenbank ist. es wird nichts ausgegeben.

                  Verwendest du etwa immer noch kein mysql_error zur Kontrolle?
                  Dann wird's aber Zeit.

                  MfG ChrisB

                  --
                  „This is the author's opinion, not necessarily that of Starbucks.“
                  1. hi chris,

                    nur weil ich eine frau bin, denkst du ich bin doof.

                    ich habe "or die(mysql_error())" in der abfrage schon, aber der zeigt mir auch keinen fehler.....

                    ich habe ja in meinem ersten oder zweiten posting geschrieben, das der php code keinen fehler enthät, nur dass es bei einer mysql_query klappt und bei der anderen nicht, siehe mein erstes posting.

                    fehler sind nirgends...

                    joane....

                    1. Hi,

                      nur weil ich eine frau bin, denkst du ich bin doof.

                      Nein, aber weil du den Hinweis mit dem vernuenftigen Zitieren fortwaehrend ignoriert hast.

                      ich habe "or die(mysql_error())" in der abfrage schon, aber der zeigt mir auch keinen fehler.....

                      Und wie sieht der Code an dieser Stelle aktuell aus? (Reduziert bitte.)

                      ich habe ja in meinem ersten oder zweiten posting geschrieben, das der php code keinen fehler enthät,

                      Das interessiert die Datenbank wenig.

                      fehler sind nirgends...

                      Doch, ganz bestimmt.

                      MfG ChrisB

                      --
                      „This is the author's opinion, not necessarily that of Starbucks.“
                      1. hi chris,

                        an der stelle, wo eigentlich der eine inhalt aus der datenbank stehen sollte, steht gar nichts. Da ist auch kein Error oder sowas angezeigt.

                        Doch, ganz bestimmt.

                        ich benutze den zweiten code, der in meinem ersten posting, steht. den mit $sql="SELECT art FROM table WHERE id = '$_POST[number]'"
                        $result=mysql_query($sql) or die(mysql_error());
                        while($result=mysql_fetch_object($sql))
                        {
                        echo"$result->art";
                        }

                        wenn ich diesen Code eingebe erscheint der feld wo was drinne stehen sollte gar nichts. und ein fehler wird auch nicht angezeigt.

                        1. Hi,

                          ich benutze den zweiten code, der in meinem ersten posting, steht. den mit $sql="SELECT art FROM table WHERE id = '$_POST[number]'"
                          $result=mysql_query($sql) or die(mysql_error());
                          while($result=mysql_fetch_object($sql))
                          {
                          echo"$result->art";
                          }

                          wenn ich diesen Code eingebe erscheint der feld wo was drinne stehen sollte gar nichts. und ein fehler wird auch nicht angezeigt.

                          Dann lasse $sql mit echo zur Kontrolle ausgeben, und teste es per Copy&Paste ueber ein DB-Frontend wie bspw. phpMyAdmin.

                          MfG ChrisB

                          --
                          „This is the author's opinion, not necessarily that of Starbucks.“
                          1. hi chris,

                            ich verstehe es nicht, was du meinst. ich habe schon 3 tage an diesem problem gesetzt. es wäre sehr nett wenn Du mir es richtig aufschreiben würdest. ich bin jetzt die tage sehr müde geworden.

                            vielen dank für deine hilfe. und falls du nett bist und mir den richtigen code schreibst, tausend dank. vielleicht, kann ich dir mit internationalem recht entgegen kommen.

                            joane

                            1. Hi,

                              ich verstehe es nicht, was du meinst.

                              Hast du meine zweite Antwort auch gelesen?

                              MfG ChrisB

                              --
                              „This is the author's opinion, not necessarily that of Starbucks.“
                              1. hi chris,

                                ja ich habe es gesehen, ich wende es auf $sql an, und ich weiß auch nicht warum es falsch sein sollte.

                                ich bin echt erschöpft von den letzten tage, es wäre sehr nett und sehr freundlich wenn man mir einen ausweg "schreiben" könnte.

                                dann auch dankeschön

                                joane

                                1. Hi,

                                  ja ich habe es gesehen, ich wende es auf $sql an, und ich weiß auch nicht warum es falsch sein sollte.

                                  Dann lies im Manual nach, was fuer eine Art von Parameter die mysql_fetch-Funktionen an erster Stelle erwarten. Vergleiche das mit dem Typ des Parameters, den du angegeben hast.

                                  ich bin echt erschöpft von den letzten tage, es wäre sehr nett und sehr freundlich wenn man mir einen ausweg "schreiben" könnte.

                                  Spar' dir jetzt bitte die Bettelei.
                                  Ich gebe dir gerne Hinweise, aber das (Mit-)Denken nehme ich dir nicht komplett ab.

                                  MfG ChrisB

                                  --
                                  „This is the author's opinion, not necessarily that of Starbucks.“
                        2. Hi,

                          ich benutze den zweiten code, der in meinem ersten posting, steht. den mit $sql="SELECT art FROM table WHERE id = '$_POST[number]'"
                          $result=mysql_query($sql) or die(mysql_error());
                          while($result=mysql_fetch_object($sql))

                          Ach so, jetzt sehe ich's ...

                          Schau noch mal genau hin, auf welche Variable du mysql_fetch_object da anwendest!

                          MfG ChrisB

                          --
                          „This is the author's opinion, not necessarily that of Starbucks.“
                          1. hi chris,

                            ja ich habe es gesehen, ich wende es auf $sql an, und ich weiß auch nicht warum es falsch sein sollte.

                            ich bin echt erschöpft von den letzten tage, es wäre sehr nett und sehr freundlich wenn man mir einen ausweg "schreiben" könnte.

                            dann auch dankeschön

                            joane

                            Hi,

                            ich benutze den zweiten code, der in meinem ersten posting, steht. den mit $sql="SELECT art FROM table WHERE id = '$_POST[number]'"
                            $result=mysql_query($sql) or die(mysql_error());
                            while($result=mysql_fetch_object($sql))

                            Ach so, jetzt sehe ich's ...

                            Schau noch mal genau hin, auf welche Variable du mysql_fetch_object da anwendest!

                            MfG ChrisB

                            1. Hi,

                              ich werde dir nicht mehr antworten, wenn du dich nicht mal in der Lage zeigst, den inzwischen mehrfach erfolgten Hinweis auf das vernuenftige Zitieren zu beherzigen.

                              ich bin echt erschöpft von den letzten tage

                              Dann geh' ins Bett, und schlaf' dich aus.
                              Vielleicht schaffst du es dann ja morgen endlich mal, nicht mehr jedes Mal das komplette Posting, auf das du antwortest, mit zu Zitieren.

                              MfG ChrisB

                              --
                              „This is the author's opinion, not necessarily that of Starbucks.“
            2. Hello,

              danke für den link. ich habe es gelesen. aber wie ich aus den intval einen string mach steht auch nicht wirklich da.

              Wenn Du einen numerischen Wert übergibst, dessen neutrales Element 0 ist, also nicht zum einzustellenden Wertebereich gehört, ist intval() Dein Freund. Alle Literale, die nicht in eine ganze Zahl umgebaut werden können, werden zu 0.

              Ein weiteres Escaping und eine Quotierung ist dann für die Verwendung mit der Textschnittstelle der Datenbank nicht notwendig, bzw. sogar oft gar nicht zulässig.

              Wenn Du allerdings einen Text übergibst, dann musst Du für die Verwendung in der Textschnittstelle der Datenbank (SQL) diesen String absichern, also mit der passenden Funktion escapen. Dafür stehen dann (für Texte) mysql_real_escape_string() oder mysqli_real_escape_string() zur Verfügung.

              http://www.php.net/manual/en/function.mysql-real-escape-string.php
              http://www.php.net/manual/en/mysqli.real-escape-string.php

              Die escapten Texte müssen dann auch in '' eingeschlossen werden.

              Liebe Grüße aus Syburg bei Dortmund

              Tom vom Berg

              --
              Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
      2. hi tom,

        ich habe gestern mit chris versucht das problem zu lösen. aber chris ist sehr arrogant.

        ich würde dich sehr bitten mir bei mein problem zu helfen.

        und so ist es sicherer...
            $sql = mysql_query("SELECT art FROM table WHERE id = " . intval($_POST['number']) );

        das geht, aber dann erscheinen alle einträge nebeneinander.

        was ist wenn number kein int ist sondern ein string wie beispiel blue oder red.

        wenn ich blue oder red eingebe erscheint gar nichts.

        ich bitte dich mir zu helfen.

        vielen danke für deine bisherige mühe
        joane

        1. Hi,

          ich habe gestern mit chris versucht das problem zu lösen. aber chris ist sehr arrogant.

          Ich finde dein Verhalten arrogant, weil du hier gegebene Tipps wiederholt ignorierst.

          was ist wenn number kein int ist sondern ein string wie beispiel blue oder red.

          wenn ich blue oder red eingebe erscheint gar nichts.

          Doch, dann wuerde garantiert etwas erscheinen - wenn du endlich mysql_error() verwenden wuerdest, um dir anzeigen zu lassen, was an deiner Query der Datenbank nicht gefaellt.

          Das machst du jetzt, postest das Ergebnis (und die Kontrollausgabe deiner Query, auch die wurde schon mehrfach gefordert) hier - und dann sehen wir weiter.

          MfG ChrisB

          --
          „This is the author's opinion, not necessarily that of Starbucks.“
          1. Hallo Chris,

            ich habe Dir gestern auch schon gesagt, dass ich jetzt den Code

            $sql = mysql_query("SELECT art FROM table WHERE id = '" . $_POST['number'] . "'") or die("Error: ".mysql_error());
            while($row = mysql_fetch_object($sql))
            {
            echo "$row->art";
            }
            ?>

            hier ist ja mysql_error ja dabei, aber es kommt keine Fehlermeldung. Das habe ich Dir ja auch schon des öfteren gesagt.

            ich hatte in diesem thread ja auch gesagt, dass number von einer seiter übernommen wird (affenformular). number wird auch weitergegeben, da sonst das skript nicht funktioniert.

            dann entschuldige ich mich mal für die ausdrucksweise, aber ich habe gestern bestimmt hundertmal gesagt, dass ich mysql_error mit drinne habe..

            joane

            1. Hi,

              aber ich habe gestern bestimmt hundertmal gesagt, dass ich mysql_error mit drinne habe..

              Die Kontrollausgabe hast du uns aber immer noch nicht gezeigt, und vom Ergebnis des Testes in phpMyAdmin o.ae. auch noch kein Wort.

              MfG ChrisB

              --
              „This is the author's opinion, not necessarily that of Starbucks.“
              1. Hi Chris,

                ich kann doch bei phpmyadmin nirgends den attribut "$_POST['number']" anzeigen. weil der feld in mein formular (affenformular) so heisst.

                meinst du, dass ich in dem sql fenster in phpmyadmin den befehl
                "SELECT ...................." eingeben und gucken was angezeigt wird?

                joane

                1. Hi,

                  ich kann doch bei phpmyadmin nirgends den attribut "$_POST['number']" anzeigen. weil der feld in mein formular (affenformular) so heisst.

                  meinst du, dass ich in dem sql fenster in phpmyadmin den befehl
                  "SELECT ...................." eingeben und gucken was angezeigt wird?

                  Du sollst die Query, die du dir dynamisch zusammenbastelst, in deinem Script zur Kontrolle ausgeben lassen - verflixt noch mal!

                  Dass du das machen sollst, und wie am einfachsten, schrieb ich dir hier schon!

                  Wer ist jetzt hier eigentlich arrogant, wenn ich mich staendig wiederholen muss, weil du staendig ignorierst, was dir an Tipps gegeben wird?

                  MfG ChrisB

                  --
                  „This is the author's opinion, not necessarily that of Starbucks.“
                  1. Hi Chris,

                    also wenn ich es jetzt so mache:

                      
                    $query = "SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik =  '" . $_POST['Kimlik'] . "'";  
                    $sql = mysql_query($query)or die("Error: ".mysql_error());  
                    while($row = mysql_fetch_object($sql))  
                    {  
                    echo "$row-UyeEmail";  
                    }  
                    
                    

                    kommt gar nichts, keine fehler meldung und keine "wert"

                    wenn ich es so mache:

                      
                    $query = "SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik =  '" . $_POST['Kimlik'] . "'";  
                    $sql = mysql_query($query)or die("Error: ".mysql_error());  
                    echo "$sql";  
                    
                    

                    kommt diese meldung: Resource id #6

                    und so

                      
                    $query = "SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik =  '" . $_POST['Kimlik'] . "'";  
                    $sql = mysql_query($query)or die("Error: ".mysql_error());  
                    
                    

                    kommt auch gar nichts.

                    wenn du das mit kontrolle meinst.

                    joane

                    1. Hi,

                      wenn ich es so mache:

                      $query = "SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik =  '" . $_POST['Kimlik'] . "'";
                      $sql = mysql_query($query)or die("Error: ".mysql_error());
                      echo "$sql";

                      
                      >   
                      > kommt diese meldung: Resource id #6  
                        
                      Ja, natuerlich - obwohl du sicher auch wieder keinen Schimmer hast, wieso. Aber es bestaetigt wenigstens noch mal, dass in der Query kein syntaktischer Fehler war.  
                        
                      Aber eigentlich solltest du $query ausgeben - was ist denn daran so schwer zu kapieren???  
                        
                      Und gewoehne dir bitte auch ab, bloedsinnige Anfuehrungszeichen um einfache Variablen zu setzen.  
                      echo "$sql"; // das ist quark  
                      echo $sql; // das ist fein  
                        
                      MfG ChrisB  
                        
                      
                      -- 
                      „This is the author's opinion, not necessarily that of Starbucks.“
                      
                      1. hi chris,

                        ich hoffe das war es was du meinst:

                          
                        $query = "SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik = '" . $_POST['Kimlik'] . "'";  
                        $sql = mysql_query($query)or die("Error: ".mysql_error());  
                        echo $query;  
                        
                        

                        meldung:

                        SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik = "

                        joane

                        1. Hi,

                          SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik = "

                          Und dir kommt's nicht so vor, als ob da hinten irgendwas fehlen wuerde ...?

                          (Da hinten muessten eigentlich zwei einfache Hochkommata stehen, und kein Anfuehrungszeichen. Bitte uebertrage solche Kontrollausgaben hier immer 1:1 per Copy&Paste, und nicht aus dem Gedaechtnis oder per Abtippen!)

                          Also ist $_POST['Kimlik'] entweder leer, oder es wurde *gar* *kein* Wert unter diesem Index uebergeben. Auf letzteres haette dich error_reporting E_ALL hingewiesen ...

                          MfG ChrisB

                          --
                          „This is the author's opinion, not necessarily that of Starbucks.“
                          1. hi chris.

                            (Da hinten muessten eigentlich zwei einfache Hochkommata stehen, und kein Anfuehrungszeichen. Bitte uebertrage solche Kontrollausgaben hier immer 1:1 per Copy&Paste, und nicht aus dem Gedaechtnis oder per Abtippen!)

                            bei mein browser waren Anfuehrungszeichen.

                            aber $_POST['Kimlik'] muss ubergeben worden sein, denn sonst würde ich keine email erhalten, das ist wie folgt:

                            auf seite1.php ist ein formular, dort gibt jemand seinen namen ein und wird auf seite2.php weitergeleitet.

                            in der seite2.php ist ein php code der mir eine email sendet wobei er die emailadresse aus der datenbank holt, also

                              
                            $abfrageemail = "SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik = '$_POST[Kimlik]'";  
                            $ergebnisemail = mysql_query($abfrageemail);  
                             while($yaz = mysql_fetch_object($ergebnisemail))  
                             {  
                             $strEmpfaenger = "$yaz->UyeEMail";  
                             }  
                            
                            

                            das funktioniert ja, sonst würde man (der user selbst) ja die email gar nicht erhalten.

                            weiter unten soll aber die email adresse angezeigt werden wo sie versendet worden ist und das versuche ich die ganze zeit zu erklären, bzw. mit dem code der ja bekannt ist.

                            also muss doch $_POST[Kimlik] übergeben worden sein. leer kann es ja auch nicht sein, weil ich sowas wie flush nicht gemacht habe.

                            vielleicht noch wichtig, wenn du dich fragst, wie $_POST[Kimlik] ubergeben wurde:

                            auf seite1.php ist <form method="post" action="seite2.php"> und in der seite2.php ist der ganze code

                            joane

                            1. Hi,

                              aber $_POST['Kimlik'] muss ubergeben worden sein

                              Mache ganz am Anfang des Scriptes eine Kontrollausgabe, um das zu ueberpruefen:
                              print_r($_POST);

                              (Entweder in <pre>-Tags setzen, oder Ausgabe aus dem Quelltext der angezeigten Seite kopieren.)

                              $abfrageemail = "SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik = '$_POST[Kimlik]'";

                              Warum nutzt du jetzt wieder diese Schreibweise?
                              Tom wies dich doch bereits darauf hin, dass die unguenstig ist.
                              Ich bevorzuge die zweite Moeglichkeit, die er dort nennt.

                              MfG ChrisB

                              --
                              „This is the author's opinion, not necessarily that of Starbucks.“
                              1. hi chris,

                                ich habe jetzt:

                                error_reporting(E_ALL);  
                                print_r($_POST);  
                                $query = "SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik = '" . $_POST['Kimlik'] . "'";  
                                $sql = mysql_query($query)or die("Error: ".mysql_error());  
                                echo $query;
                                

                                meldung: Array ( )
                                Notice: Undefined index: Kimlik in /xxxxxxx/xxxxxxxxx/xxx.php on line xx
                                SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik = ''

                                $abfrageemail = "SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik = '$_POST[Kimlik]'";

                                ich hatte es nur aus dem gleichen skript von einer anderen stelle kopiert

                                sorry , das ich zur verwirrung gesorgt habe

                                joane

                                1. Hi,

                                  ich habe jetzt:

                                  error_reporting(E_ALL);
                                  print_r($_POST);

                                  meldung: Array ( )

                                  Das hiesse ja, dass *gar* *keine* POST-Daten vorhanden sind.

                                  Rufst du das Script denn beim Testen auch auf, in dem du dein Formular absendest?
                                  Und wie sieht das Formular aus?

                                  MfG ChrisB

                                  --
                                  „This is the author's opinion, not necessarily that of Starbucks.“
                                  1. Hi Chris,

                                    ja das Script wird immer aufgerufen.

                                    das formular ist auf seite1.php und auf seite2.php ist das skript.

                                    und in seite1.php ist <form method="post" action="seite2.php">

                                    damit die daten $_POST[Kimlik] übergeben wird.

                                    joane

                                  2. jepp
                                    geschafft.....

                                    sdjksadksad#fdsfv
                                    sfogsdff
                                    as gohdf

                                    joane

                              2. hi chris nochmal.

                                ich meine wir diskutieren ja über 3 tage über dieses problem. ich will dir ja auch nicht viel zumuten, bestimmt hast du auch selber viel zu tun.

                                aber könnte ich dir den code per email zukommen lassen, damit du es dir anschaust? vielleicht siehst du dort irgendwo den fehler, warum es nicht übergeben wird.

                                dafür wäre ich dir sehr dankbar.

                                oder ich stelle den ganzen code hier rein, was ich ja nicht toll finden würde.

                                joane.

                                1. Hi,

                                  ich meine wir diskutieren ja über 3 tage über dieses problem.

                                  Ja, erstaunlich, nicht?

                                  aber könnte ich dir den code per email zukommen lassen, damit du es dir anschaust? vielleicht siehst du dort irgendwo den fehler, warum es nicht übergeben wird.

                                  Nein.

                                  oder ich stelle den ganzen code hier rein, was ich ja nicht toll finden würde.

                                  Bemuehe dich mal, *selber* heruaszufinden, warum wo was nicht funktioniert - Stueck fuer Stueck.

                                  Wie man beim Fehlersuchen halbwegs logisch und systematisch vorgeht, hast du in diesem Thread ja nun schon gezeigt bekommen.
                                  Also mach damit weiter.

                                  MfG ChrisB

                                  --
                                  „This is the author's opinion, not necessarily that of Starbucks.“
                          2. hi chris,

                            ich habe jetzt

                              
                            error_reporting(E_ALL);  
                            $query = "SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik = '" . $_POST['Kimlik'] . "'";  
                            $sql = mysql_query($query)or die("Error: ".mysql_error());  
                            echo $query;  
                            
                            

                            meldung: Notice: Undefined index: Kimlik in /xxxxxxxxxxxxx/xxxxxxxx/xxxxxxxxxx.php on line xx
                            SELECT UyeEMail FROM UyeLogin WHERE UyeKimlik = ''

                            aber wieseo klappt es mit der email?

                            joane

                            1. Hi,

                              meldung: Notice: Undefined index: Kimlik in /xxxxxxxxxxxxx/xxxxxxxx/xxxxxxxxxx.php on line xx

                              Na siehst du? Das sagte ich doch, unter dem Index wird gar kein Wert uebergeben.

                              aber wieseo klappt es mit der email?

                              Vielleicht, weil du auch schon beim Eintragen Murks gebaut hast, so dass du jetzt einen Nutzer in der Datenbank hast, bei dem das Vergleichsfeld leer ist, so dass auch ein SELECT, der dort auf einen leeren Wert vergleicht, fuendig wird ...?

                              Auch das haettest du schon laengst mal selber pruefen koennen, in dem du dir den betreffenden Datensatz im PMA anschaust.

                              MfG ChrisB

                              --
                              „This is the author's opinion, not necessarily that of Starbucks.“
                              1. hi chris,

                                in der datenbank sind probehalber drei einträge mit emailadresse, code und user. und die sind alle nicht leer.

                                aber wie erklärst du dir das mit der versenden des emails? das klappt doch, wurde ja von seite1.php $_POST[Kimlik] übergeben.

                                joane

                  2. Nachtrag, nicht das du denkst, das ich jetzt total spinne..

                    UyeEMail = art
                    UyeLogin = table
                    UyeKimlik = id
                    Kimlik = number

                    joane

          2. hi chris,

            ich nochmal

            wenn ich diesen code habe:

              
            $sql = mysql_query("SELECT art FROM table WHERE id = 'blue'") or die("Error: ".mysql_error());  
            while($row = mysql_fetch_object($sql))  
            {  
            echo "$row->art";  
            }  
            
            

            funktioniert alles aber nicht dieser:

              
            $sql = mysql_query("SELECT art FROM table WHERE id = '" . $_POST['number'] . "'") or die("Error: ".mysql_error());  
            while($row = mysql_fetch_object($sql))  
            {  
            echo "$row->art";  
            }  
            
            

            und fehler ist auch nicht ausgegeben.

            Folgendes soll ja erscheinen:

            '..........' an versendet.

            bei dem ganz obersten code wird auch dann die art ausgegeben
            aber bei dem zweiten ist nichts ausgegeben dakommt nur

            '' an versendet.

            joane

        2. Hello,

          ich habe gestern mit chris versucht das problem zu lösen. aber chris ist sehr arrogant.

          ich würde dich sehr bitten mir bei mein problem zu helfen.

          was ist an https://forum.selfhtml.org/?t=180412&m=1192233 noch nicht verstanden?

          Ich finde ChrisB Antworten immer sehr gut, ausführlich und sehr einfühlsam. Wenn ChrisB da mal eine Antwort geben sollte, die der Fragesteller nicht versteht, kann dieser nochmal nachfragen und ChrisB sit dann immer sehr kommunikativ :-)

          Liebe Grüße aus Syburg bei Dortmund

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de