1. Startseite
  2. Portal
  3. Forum
    1. Unerledigte Themen
  4. Galerie
    1. Alben
    2. Karte
  5. Lexikon
  6. Kartensysteme
    1. Europaanalyse
    2. Gewitteranalyse
    3. Nowcast
  7. FAQ
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Galerie
  • Lexikon
  • Seiten
  • FAQ
  • Erweiterte Suche
  1. Forum
  2. RATGEBER
  3. Ratgeber: Wetterseite
  4. HTML, PHP & Co

PHP & SQL

  • Harald
  • 14. Juli 2012 um 13:28
  • Erledigt
  • Harald
    Klimaforscher
    Punkte
    2.360
    Beiträge
    438
    Website
    http://www.ratingenqwrrwe.de
    • 14. Juli 2012 um 13:28
    • #1

    Hallo zusammen,
    da ich keine HTML/PHP/SQL Rubrik gefunden habe, setze ich meine Anfrage einfach mal hier rein.
    Ich habe zwei Dateien erstellt, zum einen die zur Dateineingabe (Testzwecke) und eine, die die Daten in die SQL DB schreibt, mein Problem, welches ich
    nicht finde, und damit alleine nicht lösen kann, es wird in der DB ein neuer Datensatz angelegt, dieser ist jedoch leer, und ich finde einfach den Fehler in meinem Code nicht,
    vielleicht kann mir ja ein Fachmann auf die Sprünge helfen.

    Die HTML Eingabedatei:
    <html>
    <head>
    <title>Dateneingabe</title>
    </head>
    <body>
    <form action="work.php" method=post>
    Überschrift <br>
    <input type=text name="Array[header]" size= 50>
    <br>
    <br>
    Artikel
    <br>
    <textarea name="Array[artikel]" row=5 cols=40></textarea>
    <br>
    <br>
    <input type=submit name="SUBMIT" value="ok">
    </form>
    </body>
    </html>

    ___________________________________________________________________

    Hier die Datei, die in die DB schreibt:

    <html>
    <head>
    <title>Daten verarbeiten</title>
    </head>
    <body>

    <?php

    $host = "localhost";
    $user = "Username";
    $password = "Password";
    $dbname = "Datenbankname";
    $tabelle ="testdb";

    $dbverbindung = mysql_connect ($host, $user, $password);

    $dbanfrage = "INSERT into $tabelle values ('0', '$Array[header]', '$Array[artikel]')";

    if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
    print ("Datenbankeintrag erfolgreich.");
    } else {
    print ("Es traten Probleme auf.");
    }
    mysql_close ($dbverbindung);

    ?>

    </body>
    </html>

    Liebe Grüße aus Ratingen

    Harald

    http://www.ratingenwetter.de

  • Frank
    Gast
    • 14. Juli 2012 um 14:29
    • #2

    Hallo Harald,

    Dein PHP-Code, welcher in die Datenbank schreibt, kennt den Inhalt der Variablen '$Array[header]' und '$Array[artikel] nicht. Du überträgst die Daten im HTML-Code zwar mit "POST", liest den Inhalt aber im PHP-Code nicht aus. Dies kannst Du z.B. mit $HTTP_GET_VARS machen.

    Schönen Gruß
    Frank

    P.S. Ich habe den Beitrag einmal nach "Wetterscipte" verschoben ...

  • Harald
    Klimaforscher
    Punkte
    2.360
    Beiträge
    438
    Website
    http://www.ratingenqwrrwe.de
    • 14. Juli 2012 um 14:40
    • #3

    mhh, kannst Du mir auch sagen wo: $HTTP_GET_VARS genau hin soll ?, ich habe heute irgendwie ein Brett vor dem Kopf

    Liebe Grüße aus Ratingen

    Harald

    http://www.ratingenwetter.de

  • Frank
    Gast
    • 14. Juli 2012 um 15:36
    • #4

    Hallo Harald,

    vom Prinzip her meine ich das so:

    PHP
    <html>
    <head>
    <title>Daten verarbeiten</title>
    </head>
    <body>
    
    
    <?php
    
    
    $Array[header]=$HTTP_GET_VARS["Array[header]"];
    $Array[artikel]=$HTTP_GET_VARS["Array[atikel]"];
    
    
    $host = "localhost";
    $user = "Username";
    $password = "Password";
    $dbname = "Datenbankname";
    $tabelle ="testdb";
    
    
    $dbverbindung = mysql_connect ($host, $user, $password);
    
    
    $dbanfrage = "INSERT into $tabelle values ('0', '$Array[header]', '$Array[artikel]')";
    
    
    if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
    print ("Datenbankeintrag erfolgreich.");
    } else {
    print ("Es traten Probleme auf.");
    }
    mysql_close ($dbverbindung);
    
    
    ?>
    
    
    </body>
    </html>
    Alles anzeigen


    Du hast die Bezeichungen mit Array[header] aber auch recht unglücklich gewählt. Ich weiss nicht, ob das so wirklich klappt. "header" und "artikel" würde vermutlich vollkommen reichen. Dann musst Du es nur auch überall entsprechend ändern.

    Ist aber nur eine Antwort auf die Schnelle. Am besten, Du "googelst" mal nach "$HTTP_GET_VARS".

    Schönen Gruß
    Frank

  • markus w.
    Gast
    • 14. Juli 2012 um 18:33
    • #5

    Hallo,
    da er das ganze aber per POST abschickt, wird ihm $HTTP_GET_VARS keine Daten liefern.
    Zudem sollte man diese Variable nicht mehr benutzen, sie wird ab PHP Version 5.0.3 automatisch deaktiviert.
    $_GET bzw in diesem Fall $_POST ist hier zu bevorzugen.
    Die Variablenbezeichnung ist ok so, man kann per POST auch Arrays übergeben.

    D.h. so sollten diese Zeilen aussehen:
    $Array["header"]=$_POST["Array"]["header"];
    $Array["artikel"]=$_POST["Array"]["artikel"];

    Zudem solltest du deine Eingabe noch durch z.b. mysql_escape_string schicken, damit niemand von außen etwas in die Datenbank schleusen kann.
    Das sähe dann so aus:
    $Array["header"]=mysql_escape_string($_POST["Array"]["header"]);
    $Array["artikel"]=mysql_escape_string($_POST["Array"]["artikel"]);

  • Frank
    Gast
    • 14. Juli 2012 um 19:07
    • #6
    Zitat von markus w.

    Hallo,
    da er das ganze aber per POST abschickt, wird ihm $HTTP_GET_VARS keine Daten liefern.


    Hallo Markus,

    Du hast natürlich Recht. Da hatte ich wohl auf die Schnelle etwas durcheinandergeworfen ;)

    Schönen Gruß
    Frank

  • Harald
    Klimaforscher
    Punkte
    2.360
    Beiträge
    438
    Website
    http://www.ratingenqwrrwe.de
    • 16. Juli 2012 um 11:11
    • #7

    Hallo Männer,

    vielen lieben Dank für Euro Unterstützung, werde ich heute Abend mal testen.

    Liebe Grüße aus Ratingen

    Harald

    http://www.ratingenwetter.de

  • Harald
    Klimaforscher
    Punkte
    2.360
    Beiträge
    438
    Website
    http://www.ratingenqwrrwe.de
    • 25. August 2012 um 21:16
    • #8

    Hi Jung´s,

    Danke für Eure Hinweise und Tipps,
    ich konnte mit Euren Informationen mein Problem lösen.

    Danke

    Liebe Grüße aus Ratingen

    Harald

    http://www.ratingenwetter.de

  • ThomasT
    Gast
    • 26. August 2012 um 18:25
    • #9

    Hallo,

    vergiss aber nicht, die Variablen zu Prüfen auf deren Existenz, ansonsten greifst du auf ein nicht existierenden Array-Index zu und das gibt unschöne PHP-Warnungen!

    Gruß

  • ThomasT
    Gast
    • 26. August 2012 um 18:29
    • #10

    D.h. so sollten diese Zeilen aussehen:

    Code
    $Array["header"]= ( isset( $_POST["Array"]["header"] ) ) ? $_POST["Array"]["header"] : null;
    $Array["artikel"]= ( isset( $_POST["Array"]["artikel"] ) ) ?  $_POST["Array"]["artikel"] : null;
  • *djpatrick* 1. Februar 2021 um 09:21

    Hat das Thema aus dem Forum Wetterscripte nach HTML, PHP & Co verschoben.

Radar

Regenradar

Link-Box

Zellenabstand und Zelleninnenabstand in Tabellen
Wegweiser
Kartenanlyse
Webcam
  1. Datenschutzerklärung
  2. Impressum
  3. Nutzungsbedingungen
  4. Kontakt

Partner
Viktor´s Supportboard
Besucherzaehler



Community-Software: WoltLab Suite™ 6.1.25
© Wetter-Board 2004-2026