Posts by OlMi1_YT I NETCRAFT

    Ich habe mir gerade die Einträge in der Datenbank angesehen und bemerkt dass ich anstatt 'YA4592330054' immer nach 'YA459233005' gesucht habe... selbstverständlich kommt dann ein false raus. Es tut mir wirklich leid jetzt am Ende eure Zeit etwas verschwendet zu haben.

    Ich möchte mich bei allen die mir hier geholfen haben sehr bedanken, besonders bei:

    Hecke29

    aRaphael

    Isaac

    ThomasChr

    KB19

    Ich wünsche euch noch einen wunderschönen Abend und (fast schon) ein tolles Wochenende!

    Konnte nicht mehr bearbeiten, deshalb:

    Habe das ganze jetzt so:

    Code
    $q = "'$q'";
    $sql = "SELECT id FROM $TableName WHERE id = ?";

    Wenn ich alles manuell einfülle und in PHP MyAdmin ausführe kommt raus:

    Quote

    MySQL returned an empty result set (i.e. zero rows). (Query took 0.0007 seconds.)

    Aus dem PHP-Script (exakter Log):

    Verbindung zu BLABLA erfolgreich mit UserBLABLA_ct_client! NULL

    Fatal error: Uncaught Error: Object of class mysqli_result could not be converted to string

    Was hier der Fehler war, ist schon klar?

    SQL
    SELECT id FROM CoinTracker_DB WHERE id = YA459233005;

    Du musst die ID natürlich in Hochkommas schreiben, sonst denkt MySQL dass du eine Spalte und keinen Wert meinst mit 'YA459233005'.

    Das ist im Code auch so, siehe:

    Code
    $sql = "SELECT `id` FROM $TableName WHERE `id` = ?";

    Aber danke für die Idee!

    Ich glaube wir sind etwas weiter!

    Mein Code (https://paste.helpch.at/yoxexotazu.php) gibt jetzt zwar einen kritischen Fehler zurück, aber ich denke trotzdem dass es geklappt hat. Denn jetzt habe ich:

    Fatal error: Uncaught Error: Object of class mysqli_result could not be converted to string.


    Wobei ich zurück erhalte:

    NULL (Ohne irgendwelche Kommentare oder mehr Text).

    Code
    Fatal error: Uncaught Error: Call to a member function bind_param() on bool

    $stmt wird false, vermutlich weil die Verbindung zur Datenbank schon gar nicht aufgebaut werden kann.


    Ändere den Verbindungsaufbau mal so wie von Isaac geschrieben:

    Code
    $conn = new Mysqli(/* bla */);
    
    // Jetzt wird's wichtig:
    // Prüfen ob Verbindung aufgebaut. Wenn nicht, Fehler anzeigen
    if ($conn->connect_errno) {
        die("Verbindung fehlgeschlagen: " . $mysqli->connect_error);
    }

    Dann wirst du beim Laden der Seite ein "Verbindung fehlgeschlagen" bekommen und dir wird auch ein Text angezeigt warum :)

    Jetzt bin ich vollends verwirrt. Wenn ich das hier mache:

    https://paste.helpch.at/kibokikagi.php


    Erhalte ich zurück:

    pasted-from-clipboard.png

    Variablen sind übrigens korrekt eingesetzt worden, da scheint nichts falsch zu sein.

    Dann poste doch mal die Fehler hier, dann können wir dir weiterhelfen. Wenn es zu groß ist, benutze am besten pastebin oder sowas. Ich hab auch nochmal drüber geschaut und ein wenig was adaptiert und geändert. Probiere das mal:



    Ohne genaues Wissen über das DB Schema, können wir dir auch nur teilweise Beispiel-Code geben. Wenn du magst, kannst du mich gerne privat anschreiben wegen genaueren Infos, sollte es immer noch nicht klappen.

    Habe das ganze mal probiert. Dabei kommt raus, dass $mysqli nicht definiert ist (Undefined variable: mysqli in blablabla/index.php on line 98). Habe es dann durch $conn ersetzt. Dann kriege ich: https://paste.helpch.at/ajezujexoy.sql

    Da sieht es so aus:

    pasted-from-clipboard.png

    Ich habe temporär alles nach Zeile 97 auskommentiert.

    Was mich zusätzlich wundert: Wenn ich

    SQL
    SELECT id FROM CoinTracker_DB WHERE id = YA459233005

    schreibe und es in PHP MyAdmin über die Konsole ausführe, kommt

    pasted-from-clipboard.png

    dabei raus. Kann es sein dass ich in der Hinsicht etwas falsch habe und nicht etwa die Suche ungültig ist?

    denke ich werde mich an der Stelle für die 2. Variante entscheiden. Nach wie vor wundert es mich dann aber, dass dieser Mix in einer anderen Funktion zu funktionieren scheint.


    Hoffe ich habe jetzt nichts vergessen, und vielen Dank für eure Hilfe bisher!

    in dem Tutorial welches ich nutze und auf php.net kann man oft den Stil wechseln. Ich persönlich mag den Stil nicht, da ich eher aus der Richtung C / Java komme und daher so etwas einfach nicht verstehe und es auch so wie ich es schon habe geht. Ich persönlich finde den Stil unglaublich verwirrend, aber das ist ja jedem selber überlassen.

    Wie kommst du auf $mysqli? Ich habe die Variable nicht und wenn ich sie durch $conn ersetze hagelt es Fehler.


    Edit: Ich habe mir grade den Text noch einmal durchgelesen und gemerkt dass ich etwas aggressiv klinge, das war so nicht beabsichtigt :-/ (Warum kann man die Nase nicht weglassen... :I)

    Aber das Komma ist definitiv fehl am Platze.

    Habe das mal entfernt. Hier mal die volle Funktion falls davor was falsch ist:

    Als Rückgabe erhalte ich:

    Quote

    Found 0 rows. Does YA459233005 exist in database? true

    Was mir dabei noch auffällt, ist das das einsetzen von Sachen funktioniert (Wie man sieht), aber das erstellen von Datenbanken nur in PHP nicht, mit dem gleichen Befehl und manuell eingesetzten Werten in PHP MyAdmin funktioniert es. Das erstellen von Tabellen aus dem code heraus schlägt auch fehl, wenn die Datenbank komplett leer ist, also keine Tables existieren:

    Code
    $sql = "CREATE TABLE IF NOT EXISTS $TableName (
      `id` TEXT,
      `startplace` TEXT,
      `startcoords` TEXT,
      `firsttracked` TEXT,
      `lastseendate` TEXT,
      `lastseenplace` TEXT,
      `lastseencoord` TEXT,
      `worth` TEXT
    )";

    Frei von einer anderen Plattform auf der man oft solche Fragen sieht:


    Warning: You are wide open to SQL Injections and should use parameterized prepared statements instead of manually building your queries. They are provided by PDO or by MySQLi. Never trust any kind of input! Even when your queries are executed only by trusted users, you are still in risk of corrupting your data. Escaping is not enough!

    Damit muss ich mich noch befassen, allerdings stelle ich grade mein Plugin von einer CSV *hust* "Datenbank" auf MySQL um. Dafür sind alle Werte schon im Code generiert und mehrfach auf Gültigkeit geprüft (Habe dafür sogar eine eigene API gemacht xD). Werde mir das Thema trotzdem einmal angucken, ich bin mir ziemlich sicher dass ein Angreifer wenn er/sie nur will irgendeinen Bug finden wird der ein Workaround gibt. Nutze MySQLi dafür, wie benutze ich denn den builder dafür? Dumme Frage, ich weiß xD

    Moin,

    ich versuche gerade die Spalte "id" in der Datenbank "$TableName" nach einem String (z.B. YA4592330054) zu durchsuchen. Ich weiß dass dieser String da ist, er findet ihn aber nicht. Was mache ich falsch? Finde dazu leider keine Antworten online. Ich weiß sicher, dass die Verbindung komplett funktioniert, weil wenn ich $result in einer vorherigen Version gezählt habe einfach "0" rauskam.

    Code
    $TableName = "`CoinTracker_DB`";
    $result = mysqli_query($conn, "SELECT id from $TableName, WHERE id='$q'"); //Ist IMMER false > Ungültige Suche?

    pasted-from-clipboard.png

    Vielleicht weil es den Suchbegriff mehrmals gibt?

    Üblicherweise haben Ordner die Rechte 755 oder 750 - damit hier in einen Ordner geschrieben werden kann, muss dieser die Rechte 770 oder 777 haben.

    Hier hilft der chmod Befehl auf den Ordner.

    Jep, das war es. Habe jetzt für den Ordner chmod auf 777 gesetzt und es funktioniert perfekt. Vielen Dank!

    Moin,

    mache gerade ein kleines WordPress-Plugin. Mir ist aber aufgefallen dass dieses aus sich heraus Dateien und Ordner erstellen kann, aber nicht in diese dem Pluginroot untergeordneten Ordner schreiben kann. Daher frage ich mich: Laufen WordPress-Installationen standardmäßig so, dass Plugins keine Rechte haben in einen untergeordneten Ordner zu schreiben? Habe auch mal meinen Code angehangen nur damit jeder sehen kann was ich versuche. Wenn ich das "lastpositions/" bei $dir entferne, kann die Datei geschrieben werden, sonst aber nicht. Muss ich erst Berechtigungen umstellen? Danke!

    Code
    $dir = WP_CONTENT_DIR."/plugins/pluginname/";


    Code
    $dir = WP_CONTENT_DIR."/plugins/pluginname/lastpositions/";
      if(is_dir($dir) == false){
        mkdir($dir); //Das funktioniert
      }
    
      $file = fopen($dir."testfile.txt", "w+");
      
      echo "Written to file: ".$dir."testfile.txt";

    "Webhosting" + "Dienst dauerhaft laufen lassen" wird nicht funktionieren. Du kannst bei Aufruf einer Webseite einen Prozess triggern lassen, dieser wird aber unweigerlich nach einem Timeout wieder gekillt.

    Für eine dauerhaft laufende node js Anwendung brauchst du dann eher einen VPS/RS.

    Dann muss ich mal gucken ob das funktionieren würde. Wie kann ich denn nod.js auf dem Server installieren? Hatte auch mal den Support angeschrieben aber noch keine Antwort erhalten.

    Starte mal deinen Router neu und gib in Windows den Befehl ipconfig /flushdns ein. Vielleicht hilft das ja schon. Wenn dein Internetanbieter aber noch cacht, dass kein Record existiert, hilft leider nur abwarten (oder den DNS-Server im Router/Windows umstellen).

    Hab grade meinen DNS-Server auf 1.1.1.1 geändert und als alternativen 80.80.80.80 (Freenom). Die geben auch beide das richtige zurück. flushdns habe ich auch grade gemacht, scheint im Router zu sein. Bin bei der Telekom, sind die da langsam?

    Vielen Dank!