Posts by Hecke29

    Ok. Also er sagt: $statement->bind_param('i', $q);


    Dass bind_param() nicht auf eine bool augerufen werden kann. Also ist $statement false.

    Also geht hierbei etwas schief:

    Code
    1. $statement = $mysqli->prepare($sql);



    Hab den Fehler entdeckt. Das $q hat in $sql nicht zu suchen. Pack dort ein ? hin!

    Das ? wird später durch ->bind_param sicher mit $q ersetzt.


    Pack deinen Code bitte in ein Code Tag und nicht als Screenshot hier rein. Das macht's nur schwerer sowas zu finden.


    Alte Erwägungen:

    Habe es dann durch $conn ersetzt. Dann kriege ich: https://paste.helpch.at/ajezujexoy.sql

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

    $stmt (als Returnvalue von $conn->prepare() ) wird false, vermutlich weil die Verbindung zur Datenbank schon gar nicht aufgebaut werden kann.


    Ändere den Verbindungsaufbau mal so wie von Isaac geschrieben:

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

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

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

    War ein Fehler in meinem Code. $conn ist richtig.

    Fehler sind doch gut. Dann weiß man wo man weitermachen muss. Allerdings nur, wenn du auch sagst welche :)


    Ich habe mir grade den Text noch einmal durchgelesen und gemerkt dass ich etwas aggressiv klinge, das war so nicht beabsichtigt

    Find ich nicht und ist auch eigentlich eher mein Stil

    Noch behäbiger ist eigentlich nur, dass sich die Session nicht gemerkt wird, wenn man einen neuen Tab aufmacht und das CCP aufruft. Wenn das anders wäre, müsste man den 2. Faktor vielleicht wenigstens nicht so oft eingeben. Man darf dann aber immer neu den Login füttern.


    Wenn ich mich im besagten neuen Tab aber mit Account B einlogge, bin ich danach trotzdem mit Account A drin (!), mit dem ich bereits vorher in dem älteren Tab eingeloggt war...

    Code
    1. $result = mysqli_query($conn, "SELECT id from $TableName WHERE id='$q'");
    2. mysqli_close($conn); //Disconnect
    3. echo "Found ".mysqli_num_rows($result)." rows. ";

    Offene nicht-persistente MySQL Verbindungen und Ergebnismengen werden bei der Beendigung der PHP-Skipt-Ausführung automatisch zerstört. Obwohl also das explizite Schließen von offenen Verbindungen und das Freigeben von Ergebnismengen optional ist, wird es dennoch empfohlen. Dadurch werden unmittelbar Ressourcen an PHP und MySQL zurückgeben, was die Performance verbessern kann. Weitere Information ist unter Freigeben von Ressourcen zu finden.

    Pack das close nach die Auswertung oder lass es weg. PHP macht die DB-Verbindung automatisch zu am Ende.


    Code
    1. $conn = new mysqli($DatabaseURL, $DatabaseUsr, $DatabasePass, $DatabaseName);

    Erstellt ein MySQLi-Objekt.

    Danach benutzt aber dauernd den prozeduralen Style:

    Code
    1. $result = mysqli_query($conn, "SELECT id from $TableName WHERE id='$q'");

    Ist mindestens ungewöhnlich. Ob es klappen kann, weiß ich nicht.



    Ansonsten dein Query als prepared Statement ( https://www.php.net/manual/de/…t.prepared-statements.php ). Pseudocode:

    Code
    1. $conn = new mysqli(/* connections details */);
    2. $stmt = $mysqli->prepare(sprintf('SELECT id FROM `%s` WHERE id=?', $TableName)); // wirklich nur wenn $TableName unbedingt dynamisch sein muss! Sonst am besten einfach den Table Name da reinschreiben...
    3. $stmt->bind_param("i", $q); // "i" heißt, dass es sich bei $q angeblich um einen integer halten soll
    4. $stmt->execute();
    5. $result = $stmt->get_result();
    6. var_dump($result->fetch_assoc());


    Nagel' mich nicht drauf fest, ist ein paar Jahre her, dass ich selber DB-Connections in PHP geöffnet habe.

    ssh-copy-id root@SERVERNAME.de

    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/var/lib/USER/.ssh/id_rsa.pub"

    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

    root@SERVERNAME.de: Permission denied (publickey,password).

    Versuch mal einfach so vom Quellserver aus ssh root@SERVERNAME.de :)

    Behaupte das wird auch nicht klappen (PermitRootLogin no auf Zielserver?)

    Erwartet wäre ein PW-gestützter Login als root auf Zielserver.

    Welcher Ultrawide Monitor ist es denn geworden? Ich liebäugle ja auch schon länger mit einem, konnte mich bisher aber noch nicht entscheiden. Gerade das mit dem "Curved" schreckt mich doch etwas ab. Für Spiele ist das sicherlich recht interessant, aber für alles andere? Ich schwanke momentan auch zwischen einem 32 Zoll UHD oder einem 34 Zoll Ultrawide.

    Bist du insgesamt zufrieden?

    Ich entschied mich für den LC-Power LC-M34-UWQHD-100-C (weil ich 21:9-1440p+ Curved wollte und da scheint es offensichtlich nicht so viel zu geben in akzeptablen Preisbereich) und aufgrund der Verfügbarkeit damals als "Sehr guten"-Warehouse-Deal. Habe allerdings ein Exemplar mit zwei kaputten Pixelreihen von oben nach unten erhalten :( Habe 10 Tage Cyberpunk damit gespielt, dann meldete sich die Grafikkarte ab. Also Bildschirm reklamiert und dann gehadert:

    Mein Kopf denkt wrote:

    Du kannst den alten Fernseh-Monitor 16:10 vom Dachboden (720p) zu Hause benutzen. Du arbeitest eh wenig von hier. Und für den Windows-Tower die alte Grafikkarte, du zockst eh nur noch 6 mal im Jahr! Klar, du hast dir Cyberpunk vorbestellt, aber du kaufst dir jetzt nicht echt einen neuen geilen Monitor zu dem du dann auch noch eine neue Grafikkarte brauchst?!? Du weißt dass du das nicht häufig benutzt. Das wäre absolut verschwendetes Geld. Du bist grade umgezogen, das brauchst du anderweitig. Dir ist das ja klar... Oder? ODER?!?

    In der Zeit wurde das Monitor-Modell scheinbar eingestellt und der Nachfolger kam raus: LC-M34-UWQHD-100-C-V2 , der mittlerweile meinen heimischen Schreitisch ziert.

    Ich habe seitdem kaum gezockt, aber hab ihn zum Arbeiten tatsächlich lieb gewonnen! Es passen ideal zwei Fenster (phpStorm + Chrome) nebeneinander ohne dass man zu wenig Platz hätte oder verschwendet. Curved halte ich bisweilen immer noch für einen Marketing-Gag, ich nehme davon weder positiv noch negativ etwas wahr. Bemerkte aber demletzt, als ich mal wieder im Büro saß, dass mir doch unspezifisch "irgendwas" fehlte - aber ich glaube das war eher die 21:9-Breite denn das Curved-Feature. Aber wie gesagt seitdem auch noch kein ETS2 / ATS oder Cyberpunk mehr gespielt. Bisher aber zufrieden - manchmal braucht er lange das HDMI-Input-Signal zu erkennen. Ich glaube ich seh mich aber heute Abend mal am Spielen :) :)

    Brauchst du denn mehr Leistung? Das ist doch die Hauptfrage...

    Ende Dezemeber Curved-21:9-Monitor und RTX 3060 Ti gekauft, um Cyberpunk spielen zu können (alte Grafikkarte hat Abgang gemacht).

    Seitdem Cyberpunk gespielt: 0


    Bin Mitglied der Server-Hording-Hilfegruppe


    Als ob jemals die Frage wäre ob man etwas braucht :D

    Code
    1. End of script output before headers: index.php

    Leider kann ich damit nicht viel anfangen.

    Die Einträge deuten grob darauf hin, dass der PHP-Prozess, der deine Anfrage bearbeiten soll keinen Output liefert und einfach stirbt.

    Kenne nun leider die Software dahinter überhaupt nicht. Ich würde anfangen zu versuchen das Script per PHP auf der Kommandozeile auszuführen.

    Zusätzlich händisch in der index.php am Anfang das Error-Reporting auf E_ALL setzen und die Fehleranzeige aktivieren (ini_set('display_errors', '1');) und hoffen dass der Browser dann etwas ausspuckt. Ansonsten klassisch Old-School-PHP-Debuggen oder wie ich es nenne "durchsterben" ( die() nutzen, um die Abbruchstelle zu finden ).

    Das Verfahren / das Image https://hub.docker.com/r/linuxserver/swag , das du hier beschreibst, sorgt nicht dafür, dass DNS-Einträge (A und AAAA) auf deinen Heimanschluss zeigen, sondern nur dass du ein Zertifikat erfolgreich über die DNS-Challenge bekommen hast.


    Du brauchst noch einen Dienst, der an deiner Domain die IP deines Heimanschlusses hinterlegt (dynamischen DNS-Dienst). Siehe bspw. hier: https://forum.netcup.de/entwic…12-eigener-dyndns-dienst/