Frage zum Videokurs-PHP

  • Hallo zusammen,


    ich habe eine Frage zum dem Videokurs-PHP.


    In dem Videokurs ist erklärt, wie man in PHP Grafiken erstellen kann.


    Wenn ich das genauso abtippe, bzw. von der HP https://www.php-kurs.com/grafiken-erstellen-mit-php.htm kopiere. Bekomme ich eine Fehlermeldung. Und ich weiß mir keinen Rat, warum.

    Das ist der Quellcode von der HP.


    Wenn ich das ausprobiere, auf meiner Domain, bekomme ich eine Fehlermeldung die da lautet:



    Code
    Warning: Cannot modify header information - headers already sent by (output started at /var/www/web729/html/grafik.php:1) in /var/www/web729/html/grafik.php on line 2
    �PNG  IHDR�,b�r�hIDATx���1��@EAϢ�_y6��`l���3U�����<���|��U3��Y���/~�|J���2�, C���2�, C���2�, C���2�, C���2�, C���2�8�p�����].��2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2���l�==�{콦'\Ʌd�!X@�`�d�!X@�`�d�!X@�`�d�!X@�`�d�!X@�`�d�!X@�`�d�!X@�`�d�!X@�`�d�!X@�`�d�!X@�`��x�����M����2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�, C���2�X�8mOx����\X@�`�d�!X@�`�d�!X@�`�d�!X@�`�d�!X@�`�d�!X@�`�d�!X@�`�d�!X���r ����IEND�B`�

    Vllt. könnt Ihr mir Helfen.

    Vielen Dank im Voraus. Gruß Enrico

  • Hallo m. scatello,


    vor <?php ist kein Leerzeichen.


    Aber, ähh moment mal bitte. Ich hatte vorhin im Editor das Format auf UTF-8- BOM umgestellt. Ist das, das Problem? Und wenn ja, auf was sollte ich es umstellen?

    Einmal editiert, zuletzt von Earlenrico () aus folgendem Grund: Hallo m. scatello, Aktuell: Ich habe es auf ANSII/ASCII umgestellt. Und siehe da, es funkt. Danke dir :)

  • Hallo zusammen,


    ich habe mal wieder eine Frage zu dem PHP Video Kurs.


    Ich habe da eine Frage zu einen Code, er funktioniert 100%ig. Nur ich hätte dazu folgende Frage.


    Und jetzt fogende Frage:


    Es dreht sich um den Befehl

    Code
    echo bcmod ($zeilennr, 2);

    kann ich diesen Befehl auch woanders einbinden, so das ich nicht

    Code
    echo "          <th>Modulo</th>";

    in der Tabelle stehen habe.


    Oder kann ich das vllt. mit CSS ausblenden?


    Denn mein Ziel ist es, diese Linksammlung ohne diese Modulo spalte weiter zuführen.


    Denn ich habe es schon probiert, indem ich diesen Befehl "bcmod" vor die URL zuschreiben. Aber dann ging gar nichts mehr.


    Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt. Danke für eure Hilfe.


    Gruß Enrico

  • Mein Tipp: Den PHP Video Kurs ganz schnell vergessen!


  • Mein Tipp: Den PHP Video Kurs ganz schnell vergessen!


    Da fühle ich mich ja direkt auf die Füße getreten :)

    Das macht zu diesem Zeitpunkt beim Kurs didaktisch Sinn, so wie es ist! Daher finde ich die Aussage "Kurs vergessen" anmaßend. Im PHP-Kurs geht es darum, Schritt für Schritt vom Einsteiger zu einem funktionierenden Ergebnis zu kommen. Und das ohne Vorkenntnisse und ohne Voraussetzung von anderen Kenntnissen.

    In dem Punkt lernt man neben der Ausgabe in eine Tabelle auch, dass man mathematische Spielereien mit bcmod machen kann - und diese dann auch sichtbar in einer Tabellenausgabe. Wer jetzt rumjammert, dass man sowas heutzutage mit CSS macht (korrekt) vergißt dabei schnell, dass nicht jeder, der PHP lernt auch schon komplett in CSS3 fit ist. Daher dieser "Kunstgriff".


    @Earlenrico

    Damit deine Frage auch beantwortet wird. Die Modulo-Funktion bcmod ist nur für die Einfärbung zuständig. Diese kann man auch über CSS3 machen - später mehr.

    Hier erst mal dein bereinigter Code ohne bcmod.

    Und will man nun einfärben, kann man das über CSS3 machen:


    CSS
    <style>  
    tr:nth-child(even) {    
       background-color: orange;
    }
    
    tr:nth-child(odd) {    
       background-color: green;
    }
    </style>

    (siehe dazu https://www.html-seminar.de/cs…eudoklassen-nth-child.htm )


    Ich hoffe, das hilft dir so weiter.

  • Daher finde ich die Aussage "Kurs vergessen" anmaßend.

    Das ist nicht anmaßend. Was sollen denn diese echo-Orgien? Das kann man viel eleganter lösen. Dummerweise übernehmen Anfänger solche Dinge und schon ist der Spaghetti-Code perfekt. Auch das Escapen von den Anführungszeichen ist überflüssig, man kann genauso gut einfach Anführungszeichen benutzten, die sind absolut HTML-konform. Und es werden einige Zeilen HTML-Code per echo ausgegeben, bei denen das unnötig ist.


    Ich habe nicht umsonst eine verbesserte Version gepostet.

  • Hallo zusammen,


    ich möchte, mich erstmal bei Euch bedanken für Eure Hilfe.


    m.scatello: ich habe Deinen Code probiert. Dieser funktioniert soweit, nur das die Textdatei nicht geladen wird. Die Tabelle ist leer, nur farbig ist sie.


    Axel: Dein Code funktioniert komplett, danke dir dafür. Und dennoch, habe ich dazu eine Frage:


    Wie bekomme ich den thead-Bereich, ohne Farbe hin? Sprich das die Hintergrundfarbe erst ab dem ersten Link farbig wird.


    Ich habe versucht: den thead-Bereich, im CSS Bereich mit Background-Color auf none zu setzen, was missglückte. Dann habe ich es mit einen DIV probiert, hat auch nicht funktioniert. vllt. könnt Ihr mir noch ein Tipp geben. Gruß Enrico

  • Getestet

    wenn das immer noch nicht geht, dann stimmt der Inhalt der Datei nicht oder die Datei existiert nicht.

  • Der Kurs ist wirklich etwas unglücklich bzgl. des Kontext-Wechsel, da hat m.scatello schon recht.

    Allerdings finde ich es schon schicker, wenn man sich bei HTML-Attributen auf die DoubleQuotes besinnt, auch wenn SingleQuotes erlaubt sind.

    PHP kann ja auch beides und es ist daher nicht notwendig, zu escapen. Innerhalb von SingleQuotes werden zwar keine Variablen geparsed, aber ich finde die Konkatenation ehrlich gesagt sowieso viel übersichtlicher.


    In Bezug auf das EVA-Prinzip, würde ich das - wenn ich das hier kurz posten darf - in etwa auf diese Weise vorbereiten:

    Dann benötige ist der HTML-Part für den Kontext-Wechsel auf das Minimum runter gebrochen:

    Ist jetzt aber nur als Anregung gedacht...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!