Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 20

Thema: Tunnel.php

  1. #1
    Jungspund
    Registriert seit
    18.08.2011
    Beiträge
    14

    Tunnel.php

    Hallo,
    habe mir ein tunnel.php programmiet.
    da ich von außen auf meine MySql Datenbank per Delphi7 zugreifen müchte.

    SQL Fehler Error
    sql:= 'SELECT * FROM MyTable WHERE name = 'Schroeder' ';

    SQL ok !
    sql:= 'SELECT * FROM MyTable WHERE id = 12 ';


    Diese Hochkomme in 'Schroeder' machen Probleme.
    weiß jmd wie man das unter Delphi sendet ?





    Gruß Schröder

  2. #2
    Kaiser Avatar von foexle
    Registriert seit
    02.05.2007
    Ort
    Saarbrücken
    Beiträge
    1.104
    hab nicht viel ahnung von den Pascal ähnlichen sprachen aber mein erster versuch wäre
    Code:
    sql:= "SELECT * FROM MyTable WHERE name = 'Schroeder' ";
    Ubuntu10.04 LTS x86
    lenovo T61p

    1100110 1101111 1100101 1111000 1101100 1100101

    Zitat Bender: "Was ist denn das für eine Party? Kein Alkohol und nur eine Nutte"

    Visit: http://honeybutcher.de

  3. #3
    Jungspund
    Registriert seit
    18.08.2011
    Beiträge
    14
    Zitat Zitat von foexle Beitrag anzeigen
    hab nicht viel ahnung von den Pascal ähnlichen sprachen aber mein erster versuch wäre
    Code:
    sql:= "SELECT * FROM MyTable WHERE name = 'Schroeder' ";
    Ne das geht bei Delphi nicht, ein String muss zwischen 2 mal '' hochkomma liegen, zb.

    'SELECT * FROM ... bla bla'

    und da der Name Schröder in sql zwichen 2 mal '' liegen muss, gibts bei delphi ein error.


    PS. bei php liegt ein string zw. 2 mal "" zb echo "Mein text";

  4. #4
    Doppel-As
    Registriert seit
    29.12.2006
    Beiträge
    114
    vlt mit \ vor dem ' escapen?

  5. #5
    Jungspund
    Registriert seit
    18.08.2011
    Beiträge
    14
    Zitat Zitat von nibel Beitrag anzeigen
    vlt mit \ vor dem ' escapen?
    Ne geht auch nicht, weil ein abgeschlossener string bei delphi zwischen '' liegen muss.
    Und den Namen den man sucht auch zwischen '' liegt gibts bei delphi Prob.

    Habe das schon versucht.



    Code:
    var name : string;
    name := 'Schroeder';
    sql:= 'SELECT * FROM MyTable WHERE name = ' + chr(39) + name + chr(39);

  6. #6
    Jungspund
    Registriert seit
    18.08.2011
    Beiträge
    14
    ich habs.....

    wenn ich zu meinen tunnel.php sende
    sql := 'SELECT id FROM name WHERE name = ' + chr(39) + name + chr(39) ;

    und gleich die sql abfrage per echo zurück sende, bekomme ich das zurück

    ---> SELECT id FROM name WHERE name = \'Schroeder\'

    und in dem sql string darf kein \' vorkommen, ich denke es ist der Zeichensatz ?????


    upsssss wo sehe ich den zeichensatz bei FreeBSD ?

  7. #7
    Jungspund
    Registriert seit
    18.08.2011
    Beiträge
    14
    ich habs.....

    wenn ich zu meinen tunnel.php sende
    sql := 'SELECT id FROM name WHERE name = ' + chr(39) + name + chr(39) ;

    und gleich die sql abfrage per echo zurück sende, bekomme ich das zurück

    ---> SELECT id FROM name WHERE name = \'Schroeder\'

    und in dem sql string darf kein \' vorkommen, ich denke es ist der Zeichensatz ?????


    upsssss wo sehe ich den zeichensatz bei FreeBSD ?

  8. #8
    Tripel-As Avatar von amöbe
    Registriert seit
    21.01.2007
    Beiträge
    188
    Könnte es sein, dass du ein Magic-Quotes-Problem hast? http://php.net/manual/en/security.ma....disabling.php

  9. #9
    Jungspund
    Registriert seit
    18.08.2011
    Beiträge
    14
    ich weiß zwar nicht was ein " Magic-Quotes-Problem " ist.!
    aber jetzt gehts, habe einfach mal den Code Disabling Magic Quotes am anfang mit rein genommen.

    Kannst du mir sagen was das ist ?
    Weil jetzt bekomme ich auch über echo den richtigen string zurück.!


    PS.
    Ahhhh jetzt kann ich auch endlich den string komplett senden und das umschreiben.
    $sql = $Xsql. "'". $abfrage. "'"; <---> $sql = $Xsql;

    Code:
    <?php
    if (get_magic_quotes_gpc()) {
        function magicQuotes_awStripslashes(&$value, $key) {$value = stripslashes($value);}
        $gpc = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
        array_walk_recursive($gpc, 'magicQuotes_awStripslashes');
    }
    
    // Zum Aufbau der Verbindung zur Datenbank 
    $dbhost = "192.168.178.11";
    $dbuser = "root";
    $dbpasswd = "123456";
    
      $aktion          = $_POST['aktion'];
      $user            = $_POST['user_name'];     //dbuser
      $pass            = $_POST['user_passwort']; //dbpass
      $dbname          = $_POST['dbname'];        //dbname
      $Xsql            = $_POST['Xsql'];          //sql abfrage
      $abfrage         = $_POST['abfrage'];       //sql Reserve
      $htt_empfaenger  = $_POST['empfaenger'];    //später für E-Mail versenden
      $htt_absender    = $_POST['absender']; 
      $betreff         = $_POST['betreff']; 
      $mailtext        = $_POST['mailtext']; 
      $htt_antwortan   = $_POST['antwortan']; 
    
    //user
      if ($user == "Schroeder") 
      {
      $Xuser = $dbuser;
      }
    
    //pass 
      if ($pass == "22334455") 
      {
      $Xpass = $dbpasswd;
      }
    
    
      if ($aktion == '1')
       {
          mysql_connect($dbhost, $Xuser, $Xpass) or die('Benutzername oder Passwort sind falsch');
          mysql_select_db($dbname) or die ('Die Datenbank existiert nicht.'); 
    
          $sql = $Xsql. "'". $abfrage. "'";
    
          $result = mysql_query($sql) OR die('DB_FAIL3');
    
          while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
          foreach ($line as $col_value) 
             {
              echo "$col_value\n";
             }
                                                                }  
      }
    
    
    
    
      if ($aktion == '2')
       {
          mysql_connect($dbhost, $Xuser, $Xpass) or die('Benutzername oder Passwort sind falsch');
          mysql_select_db($dbname) or die ('Die Datenbank existiert nicht.'); 
    
    
          $sql = $Xsql;
    
    {
    echo $sql;  // Test um zu sehen was angekommen ist.
    }
    
          $result = mysql_query($sql) OR die('DB_FAIL3');
    
          while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
          foreach ($line as $col_value) 
             {
              echo "$col_value\n";
             }
                                                                }  
      }
    ?>

  10. #10
    Tripel-As Avatar von amöbe
    Registriert seit
    21.01.2007
    Beiträge
    188
    Magic-Quotes ist eine Einstellung von PHP, die in allen Strings, die du mit POST, GET oder in Cookies überträgst, vor ", ', etc. jeweils \ schreibt. Ist eigentlich gedacht um SQL-Injections zu vermeiden, macht in der Praxis aber eher Kompatibilitätsprobleme, wird daher in kommenden PHP-Versionen wieder abgeschafft. Kann man aber zum Glück in der php.ini deaktivieren (magic_quotes_gpc = Off), oder eben umgehen mit dem Scriptfetzen, den du verwendest.

  11. #11
    Jungspund
    Registriert seit
    18.08.2011
    Beiträge
    14
    Guten morgen,

    Danke für deine Antwort, das habe ich verstanden...

    Ähmm, denke das du mehr von php Scripten verstehst wie ich, vllt schaust du mal
    über mein php tunnel ob der so ok ist ?

    Wäre nett von dir..




    Gruß Schröder

  12. #12
    Tripel-As Avatar von amöbe
    Registriert seit
    21.01.2007
    Beiträge
    188
    Die Geschichte mit dem Usernamen und Passwort würde ich vereinfachen:
    PHP-Code:
    if($user!="Schröder"||$pass!= "22334455") die("Fehler"); 
    Dann kannst du dir diese seltsamen doppelten Variablenzuweisungen sparen.

    Und du kannst die Zuweisung für $sql so schreiben:

    PHP-Code:
    $sql $Xsql. ($aktion == '1'?"'"$abfrage"'":''); 
    Dann kannst du dir die If-Abfrage und den ganzen doppelten Code für die Aktionen sparen. Wenn du noch mehr Aktionen machen willst, solltest du vielleicht Teile in eine Funktion packen.

    Und irgendwie blicke ich bei deinen geschweiften Klammen nicht so wirklich durch

    Warum verwendest du mysql_fetch_array mit MYSQL_ASSOC, wenn du die Keys sowieso nicht benutzt? Dann kannst du auch mysql_fetch_row nehmen. Und dann für noch ein bisschen mehr Geschwindigkeit die foreach-Schleife ersetzen:

    PHP-Code:
    while ($line mysql_fetch_row($result)) {
          for (
    $i=0,$len=count($line);$i<$len;$i++) { 
    Wenn nur wenige spezielle SQL-Abfragen verwendet werden, würde ich die hart reinkodieren, damit kein Unfug passiert.

    Ich würde sowas ohnehin nicht unbedingt über PHP lösen, da man den MySQL-Server ja auch so einstellen kann, dass er von außen erreichbar ist. Dann kann man auch einen MySQL-Treiber für den Zugriff verwenden, ist wohl schöner von der API her.

  13. #13
    Jungspund
    Registriert seit
    18.08.2011
    Beiträge
    14
    Moin amöbe,

    >Die Geschichte mit dem Usernamen und Passwort würde ich vereinfachen:
    es werden ein paar Leute Zugriff bekommen, ich wollte nicht die Originalen User und Passwörter
    rausgeben. So könnte ich auch mal einen aus der liste nehmen.


    >Und irgendwie blicke ich bei deinen geschweiften Klammen nicht so wirklich durch
    ich Programmiere seit 10 Jahren unter Delphi, php muss ich erst richtig lernen,
    einige Klammern konnte ich weg machen.


    Meine Ausgabe habe ich im Internet gefunden, und damit gehst auch.
    Wie man das besser macht muss ich auch noch lernen.

    Deine sieht auch gut aus, aber wie sende ich die ? mit echo ? oder Print ?
    würde ich gerne mal testen.
    >while ($line = mysql_fetch_row($result)) {
    > for ($i=0,$len=count($line);$i<$len;$i++) {





    Gruß Schröder

  14. #14
    Tripel-As Avatar von amöbe
    Registriert seit
    21.01.2007
    Beiträge
    188
    Ich meinte eigentlich eher die Art, wie du die Klammen anordnest.. v.a. bei den while-Schleifen. Was meinst du mit "wie sende ich die ?" ?

  15. #15
    Jungspund
    Registriert seit
    18.08.2011
    Beiträge
    14
    >while ($line = mysql_fetch_row($result)) {
    > for ($i=0,$len=count($line);$i<$len;$i++) {


    das meinte ich..
    da fehlt doch noch ne zeile wie ich da sende, per echo oder print ?

    weil im mom sieht es ja bei mir noch so aus
    PHP-Code:
          while ($line mysql_fetch_array($resultMYSQL_ASSOC)) 
          foreach (
    $line as $col_value
             {
              echo 
    "$col_value\n";
             } 

Ähnliche Themen

  1. ssh tunnel via ProxyCommand
    Von kadauz im Forum Internet, lokale Netzwerke und Wireless Lan
    Antworten: 0
    Letzter Beitrag: 06.07.2011, 19:51
  2. SSH Tunnel mit anderen IP`s
    Von DaveRidge im Forum Internet, lokale Netzwerke und Wireless Lan
    Antworten: 0
    Letzter Beitrag: 31.07.2009, 01:39
  3. ssh tunnel (zattoo)
    Von hanky23 im Forum Internet, lokale Netzwerke und Wireless Lan
    Antworten: 5
    Letzter Beitrag: 13.05.2008, 18:56
  4. VPNC Tunnel
    Von Yverman im Forum SuSE / OpenSuSE
    Antworten: 0
    Letzter Beitrag: 28.11.2007, 14:12
  5. ssh - Tunnel
    Von chrishawaii im Forum Internet, lokale Netzwerke und Wireless Lan
    Antworten: 0
    Letzter Beitrag: 14.12.2006, 21:46

Lesezeichen

Lesezeichen

Berechtigungen

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