The PHP/MySQL-FAQ

Diskutiere mit über: The PHP/MySQL-FAQ im Web-Programmierung Forum

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Delmar

    Delmar Thread Starter MacUser Mitglied

    Beiträge:
    803
    Zustimmungen:
    1
    Registriert seit:
    28.09.2002
    Hallo zusammen,

    in diesem Thread sind Antworten auf Fragen gesammelt, die in schöner Regelmäßigkeit
    im PHP & MySQL-Forum auftauchen. Sinn dieses Beitrags ist zum einen, die Antwort auf
    diese Fragen zu erleichtern (mit einem schnell zu erstellenden Link 'das steht
    <link>hier</link>'), zum anderen auch die eitle Hoffnung, daß wenigstens einige der
    Fragestellenden diese FAQ vor dem Posten entdecken! ;)

    Dieser Thread bleibt geschlossen; Anmerkungen, Ergänzungen, Fragen, etc. zur FAQ
    schickt bitte per PN an mich.
     
    Zuletzt bearbeitet: 22.03.2004
  2. Delmar

    Delmar Thread Starter MacUser Mitglied

    Beiträge:
    803
    Zustimmungen:
    1
    Registriert seit:
    28.09.2002
    Frage: Wie kann ich PHP / MySQL auf meinem Mac OS installieren und einrichten?


    Antwort: Den Server (Apache) liefert Apple mit seinem Mac OS von Haus aus mit.
    Somit ist eine vorhergehende Installation eines http Servers nicht notwendig.


    PHP ist zwar ebenfalls standardmäßig bei Mac OS in der Version 4.3.2 dabei, sollte
    aber, um zu gewährleisten auf einer aktuellen Version zu entwickeln, von Zeit zu Zeit
    einem Update unterzogen werden.

    Unter folgendem Link kann man sich eine .dmg Datei herunterladen und wie ein
    normales Programm installieren. Link: http://www.entropy.ch/software/macosx/php/


    Aktiviert man nun unter Systemeinstellung -> Sharing -> "Personal Web Sharing", kann
    man über den verwendeten Browser unter der Adresse

    http://localhost/~DeinBenutzername/

    das Verzeichnis des Webservers aufrufen. Dieses Verzeichnis kann bequem über den
    Finder im eigenen Verzeichnis "DeinBenutzername/Webseiten/" erreicht werden.


    MySQL kann über den folgenden Link auf dem Rechner installiert werden:
    http://www.serverlogistics.com/mysql.php.

    Das Package installiert MySQL und stellt darüber hinaus auch ein Modul zur Verfügung,
    um MySQL aus den Systemeinstellungen heraus zu administrieren.

    Ist MySQL installiert, empfiehlt es sich, über das erwähnte Admin-Modul ein "root"
    Passwort für MySQL zu vergeben. ACHTUNG: Dieses Passwort nicht verlegen!


    Der Datenbankserver kann nun über:

    Datenbankserver: "localhost"
    Benutzer: "root"
    Passwort: eigenes

    erreicht werden.


    Zur Verwaltung von Datenbanken empfiehlt sich das kostenlose Tool: phpMyAdmin
     
    Zuletzt von einem Moderator bearbeitet: 24.10.2015
  3. Delmar

    Delmar Thread Starter MacUser Mitglied

    Beiträge:
    803
    Zustimmungen:
    1
    Registriert seit:
    28.09.2002
    Frage: Wie kann ich, mit einem Formular oder in der URL, Werte an mein Skript
    übergeben und auf diese zugreifen?


    Antwort: Seit der PHP-Version 4.2 ist die Behandlung von Eingaben, die aus einem
    Formular oder in der URL stammen, geändert worden. Bis dahin wurden die Werte ein-
    fach in den globalen Variablenraum kopiert. Beispiel: Was im Formularfeld

    PHP:
    <input type="text" name="meineVariable">
    eingegeben wird, stand einfach als normale Variable zur Verfügung:

    PHP:
    echo "Eingegeben wurde: " $meineVariable;
    Das Problem bei der Sache war, dass durch diese Methode bei ungeschickter Programmie-
    rung schwere Sicherheitslücken auftreten konnten. Deshalb landen die Eingaben seit PHP
    4.2 in einem der superglobalen (überall verfügbaren) Arrays $_GET oder $_POST. Das
    obige Beispiel muß also ab PHP 4.2 lauten:

    PHP:
    <input type="text" name="meineVariable">
    PHP:
    Eingegeben wurde" . $_GET['meineVariable']; 
    // oder 
    Eingegeben wurde: " 
    $_POST['meineVariable'];
    Ob die Werte in $_GET oder $_POST landen, entscheidet die gewählte Übertragungsme-
    thode (das method-Attribut im form-Tag). Die Übertragung von Werten per URL, z. B.:

    PHP:
    meinSkript.php?variable=wert
    ist die GET-Methode; die Werte landen also in $_GET.

    Es ist möglich, auch ab PHP 4.2 durch das Ändern eines Eintrags in der Konfigurationsda-
    tei php.ini ('REGISTER_GLOBALS' von OFF auf ON) das alte Verhalten wieder herzustel-
    len; davon kann ich aber nur abraten, weil das die oben erwähnten Sicherheitsrisiken
    wieder eröffnet.
     
  4. Delmar

    Delmar Thread Starter MacUser Mitglied

    Beiträge:
    803
    Zustimmungen:
    1
    Registriert seit:
    28.09.2002
    Frage: Wenn ich versuche, ein per mysql_query() geholtes result set weiterzu-
    verarbeiten, kommt die Fehlermeldung:

    Woran liegt das, und wie bekomme ich es weg?


    Antwort: rsache des Fehlers ist, daß mysql_query() anstelle eines result sets
    einfach 'false' zurückgeliefert hat. Wenn du versuchst, das weiter auszuwerten (mit
    mysql_fetch_array(), mysql_num_rows(), etc.), kommt diese Fehlermeldung.

    mysql_query() liefert dann 'false' zurück, wenn MySQL mit deiner Anfrage irgendein
    Problem hatte. Das kann ein falsch geschriebener Feldname sein, ein Fehler in der SQL-
    Syntax, fehlende Rechte für die gewünschte Operation, u.s.w. Was die Datenbank zu
    meckern hatte, erfahrt ihr mit der Funktion mysql_error()

    PHP:
    $result mysql_query("SELECT FROM tabelle;"); // eine syntaktisch falsche Anfrage 
    echo "Datenbank-Fehler: " mysql_error(); // den letzten in der Datenbank aufgetretenen Fehler ausgeben
    Generell liefert mysql_query nur bei den SQL-Statements SELECT,SHOW,EXPLAIN und
    DESCRIBE ein result set zurück. Bei allen anderen wird nur 'true' oder 'false' geliefert, so
    dass das oben geschilderte Problem ebenfalls auftreten kann.
     
  5. Delmar

    Delmar Thread Starter MacUser Mitglied

    Beiträge:
    803
    Zustimmungen:
    1
    Registriert seit:
    28.09.2002
    Frage: Ich bekomme eine Fehlermeldung, in der etwas von

    steht. Woran liegt das, und wie kann ich es beheben?


    Antwort: Dieses Problem kann in Situationen auftreten, in denen du etwas zu den
    HTTP-Headern hinzufügen willst, beispielsweise beim Umgang mit Sessions, Cookies oder
    der Header-Funktion. Die HTTP-Header sind bestimmte Felder am Anfang der Übertra-
    gung deiner Seite vom Server zum Browser.

    Diese Übertragung startet jedoch, sobald die erste Ausgabe erfolgt. Das bedeutet, wenn
    der Parser auf irgendetwas stößt, das auch auf der endgültigen Seite erscheinen wird,
    gehen die Header auf die Reise, und du kannst ihnen natürlich nichts mehr hinzufügen.
    Wenn du es trotzdem versuchst, kommt eine entsprechende Fehlermeldung.

    Als "Ausgaben" in diesem Sinn gelten nicht nur Aufrufe von echo oder print, sondern
    beispielsweise auch Situationen wie diese

    PHP:
    <html> 
    <head></head> 

    <body> 
    <?php 
    // das alles oben wird ausgegeben, d. h. hier kann nichts mehr an den Headern gemacht werden 
    ...
    Zum Beheben gibt es einmal die Möglichkeit, die gewünschten Header-Manipulationen
    vor alle Ausgaben zu verlagern. Praktischerweise sagt dir die Fehlermeldung mit 'output
    startet at ...', wo das erstemal etwas ausgegeben wird. Zum anderen kannst du mit der
    Funktion ob_start() die Ausgaben puffern lassen, den Header setzen und danach mit der
    Funktion ob_end_flush() den Pufferinhalt ausgeben lassen.
     
    Zuletzt bearbeitet: 29.03.2004
Die Seite wird geladen...
Ähnliche Themen - The PHP MySQL Forum Datum
Werte der gleichen Schlüssel summieren (assoziativen Array) Web-Programmierung 25.08.2016
einfaches php. emailformular bei strato Web-Programmierung 08.08.2015
PHP Array in Google Maps Wegpunkte umwandeln Web-Programmierung 13.03.2015
PHP Update auf 5.6 im Terminal für Localhost (MAMP und Laravel) Web-Programmierung 12.09.2014
PHP: Nächster Tag auf Deutsch ausgeben Web-Programmierung 23.01.2014
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen

Benutzerdefinierte Suche