Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 23

Thema: Hilfe zu Umfrage+Datenbank

  1. #1
    Youngster
    Registriert seit
    07.05.2009
    Beiträge
    14
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Rotes Gesicht Hilfe zu Umfrage+Datenbank

    Hallo liebe Community,
    Ich beschäftige mich schon etwas mit PHP und MySQL, aber MySQL behersche ich noch nicht so gut.

    Ich bin gerade dabei eine Umfrage zu gestallten, also ein Formular mit HTML aufbauen, und dann mittels PHP die datenbank einfügen.

    ICh habe ein paar kleie Probleme, und habe dazu aber auch nirgendst im web tutorials gefunden. UND NEIN, ich möchte kein vorgefertigtes tool verwenden um die umfrage zu erstellen, so lern ich ja nichts dazu.

    ICh möchte euch hier mal mein vorläufiges UNFERTIGES script geben, und das soll nur eine testumfrage sein, die umfrage die ich eig. dann erstellen möchte geht um was anderes.

    <html>
    <head>
    <titel>index</titel>
    </head>
    <body>
    <form method=post action="XXX.php"> // Bei action muss ich ja auf eine PHP seite verweisen, aber welche, bzw. was muss ich bei der seite machen auf die ich verweiße?
    <?
    $mysql_user = 'Username';
    $mysql_pw = 'Password'; //Nein sind nicht die richtigen daten^^
    $mysql_host = 'localhost';
    $mysql_db = 'Database';
    foreach ( $_POST['antwort'] as $f)
    echo $f."<br>";
    echo ."<br>".$_POST['sport']."<br>".
    echo $_POST['nachrichten']."<br>".
    echo$_POST['musik']."<br>".$_POST['shopping']

    if($res_id = @mysql_connect($mysql_host, $mysql_user, $mysql_pw))
    {
    echo "Es wurde erfolgreich zur datenbank verbunden";
    }
    else
    {
    die('Fehler! Datebank gibt es nicht');
    }
    if(@mysql_select($mysql_db))
    {
    echo "Es wurde erfolgreich die datenbank Database ausgewählt";
    }
    else
    {
    die('Fehler! Datebank gibt es nicht');
    }
    mysql_query('SELECT * FROM umfrage');



    if (!mysql_query("INSERT INTO umfrage VALUE()")) //bei Value muss ich jetzt die variablen einsetze, aber wie gebe ich diese an, das alle in die richtige spalte meiner tabelle meiner datenbank kommt?
    die ('Fehler! SQL-Befehl ist falsch.')
    ?>
    <fieldset>
    <legend>Füllen Sie bitte alle Felder aus.</legend>

    Wie geht es Ihnen gut?<br>
    <input type="radio" name="antwort" value="ja"> Ja <input type="radio" name="antwort" value="nein"> Nein
    <br><br>
    Was sind Ihre Interessen?<br>
    <input type="checkbox" name="sport" value="sport"> Sport <input type="checkbox" name="nachrichten" value="nachrichten"> Nachrichten<br>
    <input type="checkbox" name="musik" value="musik"> Musik <input type="checkbox" name="shopping" value="shopping"> Shopping<br><br>
    <input type="reset" name="zurücksetzen"> <input type="submit" name="abschicken"> //Ich muss doch bei SUBMIT dann sicher einen PHP Code eingeben, damit wenn das protokoll abgeschickt wird an die datenbank weiter geleitet wird oder?
    <fieldset>
    </form>
    </body>
    </html>
    Wer Fehler findet, oder was verbesserungswürdig findet, bitt posten.

    Und ich würde mich freuen, wenn mir wer von euch hierbei helfen könnte.

    Thx im vorraus.

    MfG GmbH
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von G.m.b.H. (07.05.2009 um 23:01 Uhr) Grund: Zensur

  2. #2
    Meister(in)
    Registriert seit
    27.03.2009
    Ort
    Berlin
    Beiträge
    278
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Hilfe zu Umfrage+Datenbank

    Also, das prinzip ist so:

    Form (kann auch nur html sein) schickt mit drücken des buttons Informationen. Wenn deine Informationen von einem php-script ausgewertet werden soll muss also im bereich 'action' eine php-datei stehen.
    Wenn du nur eine datei benutzen möchtest an stelle von mehreren kannst du auch die datei mit dem formular erneut aufrufen (insofern da das php-script drinne ist).

    die vom Formular übermittelten Daten kannst du dann über superglobale Variablen, $_GET oder $_POST (abhängig von deiner angabe 'method' im form-Kopf), abgreifen.

    Ich persönlich schreibe übrigens meine verbindung zur datenbank immer in eine extra datei und binde sie dann per include ein.

    Was du nicht vergessen solltest ist die verbindung zur datenbank wieder zu beenden mit mysql_close($res_id);

    Hier mal meine datei zum verbindungsaufbau
    Code:
    <?php
    $host = 'localhost';
    $user = 'root';
    $pwd = 'root';
    /* Verbindung aufbauen, auswählen einer Datenbank */
    $link = mysql_connect($host, $user, $pwd)
        or die("Keine Verbindung möglich: " . mysql_error());
    //echo "Verbindung zum Datenbankserver erfolgreich";
    mysql_select_db("thilda") or die("Auswahl der Datenbank fehlgeschlagen");
    ?>
    Geändert von thilda (07.05.2009 um 23:21 Uhr)

  3. #3
    Meister(in) Avatar von Afrael
    Registriert seit
    26.04.2009
    Ort
    NRW
    Alter
    26
    Beiträge
    313
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Hilfe zu Umfrage+Datenbank

    Zitat Zitat von G.m.b.H. Beitrag anzeigen
    infügen.

    ICh habe ein paar kleine Probleme, und habe dazu aber auch nirgendst im web tutorials gefunden. UND NEIN, ich möchte kein vorgefertigtes tool verwenden um die umfrage zu erstellen, so lern ich ja nichts dazu.
    Lobenswerte Einstellung

    Code:
    <form method=post action="XXX.php"> // Bei action muss ich ja auf eine PHP seite verweisen, aber welche, bzw. was muss ich bei der seite machen auf die ich verweiße?
    In diesem Fall ist es wohl am einfachsten, auf das Script selber zu verweisen, mit <form method=post action="<?php echo $_SERVER['PHP_SELF'];?>">
    Das verweist auf den Namen des Scripts, das du gerade ausführst.

    Code:
    foreach ( $_POST['antwort'] as $f)
    echo $f."<br>";
    Ich nehme an, das benutzt du zum Debuggen? Dafür kannst du var_dump($_POST) benutzen
    Code:
    if (!mysql_query("INSERT INTO umfrage (`spalte1`,  `spalte2`,`spalte3`) VALUES('wert_in_erste_spalte', 'wert_in_zweite_spalte', 'wert_in_dritte_spalte')"))
    Außerdem das, was thilda sagt, beachten.
    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  4. #4
    Youngster
    Themenstarter

    Registriert seit
    07.05.2009
    Beiträge
    14
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Hilfe zu Umfrage+Datenbank

    Danke mal für die schnellen antworten.

    Zu [verbindung zur datenbank beenden]: Muss ich das am ende des PHP Scripts hinschreiben?
    versteh ich sowieso nicht ganz, wenn ich die verbindung zur datenbank wieder beende, kann ich dann ja nicht mehr zugreifen mit submit oder?
    Erklären PLS...

    Zu [action=]: Also das heißt hier verlinke ich wieder auf die umfrage seite, also wenn ich submit drücke komme ich wieder auf die gleiche seite? Da könnte ich ja rein theoretisch auch auf eine seite verlinken wo drauf steht Danke das sie an meiner umfrage teilgenommen haben oder sowas ähnliches nicht? Es muss halt eine PHP site sein oder?

    Zu [foreach]: verwende ich mehr oder minder zum debuggen, weil es mir weil ich eine radiogruppe ansprechen will nichts anzeigt... aber wenn ich var_dump nehme zeigt er dann ja [nein] oder [ja] = 1 und nicht wie bei foreach 1 an oder?

    Zu den [Variablen]: Kann ich nur danke sagen... is eig. logisch, keine ahnung... aber thx dafür.

    Thx nochmal für die schnelle antworten...

  5. #5
    Meister(in)
    Registriert seit
    27.03.2009
    Ort
    Berlin
    Beiträge
    278
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Hilfe zu Umfrage+Datenbank

    Zitat Zitat von G.m.b.H. Beitrag anzeigen
    Danke mal für die schnellen antworten.

    Zu [verbindung zur datenbank beenden]: Muss ich das am ende des PHP Scripts hinschreiben?
    versteh ich sowieso nicht ganz, wenn ich die verbindung zur datenbank wieder beende, kann ich dann ja nicht mehr zugreifen mit submit oder?
    Erklären PLS...
    Das machst du dann wenn du die datenbank nicht mehr brauchst, also spätestens am ende des scriptes.
    Das submit hat ja mit der datenbank nichts zu tun, das ist ja html und sobald du drauf klickst wird die datei die in 'action' aufgezeigt ist angesprochen. Würde also heißen das wenn du die gleiche seite nochmal aufrufst es wieer von vorne anfängt.

    Zitat Zitat von G.m.b.H. Beitrag anzeigen
    Zu [action=]: Also das heißt hier verlinke ich wieder auf die umfrage seite, also wenn ich submit drücke komme ich wieder auf die gleiche seite? Da könnte ich ja rein theoretisch auch auf eine seite verlinken wo drauf steht Danke das sie an meiner umfrage teilgenommen haben oder sowas ähnliches nicht? Es muss halt eine PHP site sein oder?
    Richtig, da kannst du eigentlich eintragen was du willst.
    Die php-Seite am anderen Ende sorgt halt dafür das das Formular ausgewertet wird, deswegen, ja eine php-Seite.

    Zitat Zitat von G.m.b.H. Beitrag anzeigen
    Zu [foreach]: verwende ich mehr oder minder zum debuggen, weil es mir weil ich eine radiogruppe ansprechen will nichts anzeigt... aber wenn ich var_dump nehme zeigt er dann ja [nein] oder [ja] = 1 und nicht wie bei foreach 1 an oder?
    var_dump(); ist dafür da, dir den gesamten Inhalt der angegebenen Variablen anzuzeigen. Sieht am Bildschirm immer etwas verwirrend aus, am besten schaust du dazu der übersichtlichkeit halber in den neuen Quelltext. Da ist es dann schön strukturiert.
    hier mal ein Bsp eines mehrdimensionalen arrays

    Code:
    array(21) {
    [0]=> array(1) { ["abgabe"]=> string(17) "35.192, 70.000, 0" }
    [1]=> array(1) { ["abgabe"]=> string(21) "20.000, 75.000, 5.000" }
    [2]=> array(1) { ["abgabe"]=> string(21) "20.000, 75.000, 5.000" }
    [3]=> array(1) { ["abgabe"]=> string(12) "77.000, 0, 0" }
    [4]=> array(1) { ["abgabe"]=> string(21) "70.000, 60.000, 2.000" }
    [5]=> array(1) { ["abgabe"]=> string(12) "0, 90.000, 0" }
    [6]=> array(1) { ["abgabe"]=> string(22) "70.000, 80.000, 40.000" }
    [7]=> array(1) { ["abgabe"]=> string(22) "21.600, 39.692, 25.292" }
    [8]=> array(1) { ["abgabe"]=> string(20) "12.500, 8.750, 2.500" }
    [9]=> array(1) { ["abgabe"]=> string(20) "12.500, 8.750, 2.500" }
    [10]=> array(1) { ["abgabe"]=> string(17) "32.000, 70.568, 0" }
    [11]=> array(1) { ["abgabe"]=> string(20) "12.500, 8.750, 2.500" }
    [12]=> array(1) { ["abgabe"]=> string(22) "60.000, 25.394, 14.000" }
    [13]=> array(1) { ["abgabe"]=> string(17) "80.000, 14.339, 0" }
    }

  6. #6
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Hilfe zu Umfrage+Datenbank

    Zitat Zitat von thilda Beitrag anzeigen
    Ich persönlich schreibe übrigens meine verbindung zur datenbank immer in eine extra datei und binde sie dann per include ein.

    Was du nicht vergessen solltest ist die verbindung zur datenbank wieder zu beenden mit mysql_close($res_id);
    Verbindungsaufbau sollte auf jedenfall in eine Extra-Datei. Wenn aus irgendeinem Grund auf deinem Server mal php ausfällt wird der Code uninterpretiert ausgegeben und jeder Besucher liest deine Zugangsdaten.

    mysql_close schadet zwar nicht, ist aber unnötig.
    http://de.php.net/mysql_close
    Die Verwendung von mysql_close() ist für gewöhnlich nicht notwendig, weil offene, nicht persistente Verbindungen automatisch mit Beendigung des PHP-Skripts geschlossen werden.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  7. #7
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Hilfe zu Umfrage+Datenbank

    Zitat Zitat von Afrael Beitrag anzeigen
    In diesem Fall ist es wohl am einfachsten, auf das Script selber zu verweisen, mit <form method=post action="<?php echo $_SERVER['PHP_SELF'];?>">
    Das verweist auf den Namen des Scripts, das du gerade ausführst.
    Am einfachsten vielleicht, trotzdem ist davon abzuraten.

    http://wiki.hackerboard.de/index.php...Site_Scripting
    PHP_SELF

    PHP-Entwickler nutzen aus Bequemlichkeit oft die Variable $_SERVER['PHP_SELF'] um in Formularen die aktuelle Adresse in das Form-Tag schreiben zu lassen. In nahezu jeder dynamischen Webseite werden Formulare verwendet, beispielsweise in einem Gästebuch, Board, Shopsystem oder auch nur in einem Kontaktformular. Die Verwendung von $_SERVER['PHP_SELF'] birgt jedoch eine Gefahr von XSS in sich.

    Der folgende Code stellt ein typisches Beispiel dar.

    <form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">

    Nehmen wir an hierbei handelt es sich um ein Kontaktformular welches per http://host/contact.php zu erreichen ist. PHP würde nun automatisch "contact.php" in das Form-Tag schreiben. Was aber passiert, wenn man die URL manipuliert?

    In diesem Beispiel wird ein simples Javascript, welches eine Alert Box aufruft, in die Seite eingeschleust. Dazu genügt es den Code an das Ende der URL zu hängen. Würde diese Seite nun über einen Link per folgender URL aufgerufen werden: http://host/contact.php/"><script>alert('XSS')</script><form="

    erzeugt PHP folgende Ausgabe:

    <form action="contact.php/"><script>alert('XSS')</script><form="" method="post">

    Somit würde der Scriptcode zur Ausführung kommen. Möglich wird dies, da die aktuelle Adresse des Scripts ungefiltert ausgegeben wird. Es findet nirgendwo eine Überprüfung der Validität der übergebenen Adresse statt. Durch dass neu entstandene zweite Form-Tag werden zusätzlich Code-Teile, die nun nicht mehr richtig Dargestellt werden würden, ausgeblendet. Der ahnungslose Besucher bekommt von all dem nichts mit.


    Doch hier verbirgt sich noch eine weitere Gefahr. Das Umleiten eines Logins. Dadurch das hier direkt das Form Tag verändert wird, ist es sehr einfach möglich sich ein eigenes Form Tag zu erstellen. Dieses würde nach dem originalen angezeigt werden, mit der Folge, dass das originale durch den Browser ignoriert wird. Damit kann ein Angreifer, durch einen User angegebene Login-Daten, zu sich weiterleiten. Dies könnte z.B. bei Onlinebanking fatale Folgen haben.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  8. #8
    Youngster
    Themenstarter

    Registriert seit
    07.05.2009
    Beiträge
    14
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Hilfe zu Umfrage+Datenbank

    HAllo Leute,
    thx wieder für die antworten.
    also ich habe mich jetzt mal ein bisschen herum gespielt, und ich habe es geschafft das er zur datenbank connectet...

    neinnachrichtenshoppingEs wurde erfolgreich zur Datenbank verbunden.
    Das zeigt er mir dann an, wenn ich auf absenden geklickt habe...

    also ich habe keine ''<br>'' verwendet, das werd ich dann noch einbringen...

    ich habe nein nachrichten und shopping angeklickt...

    Dann steht da ich habe erfolgreich zur datenbank verbunden, aber in der datenbank werden die abgeschickten dinger nicht gespeichert... pls um hilfe.

    PHP-Code:
    <html>
    <head>
    <title> Danke für Ihre unterstützung </title>
    </head>
    <body>
    <?
    $mysql_user 
    'USER';
    $mysql_pw   'PW';
    $mysql_host 'localhost';
    $mysql_db   'DB';
    echo 
    $_POST['antwort'];
    echo 
    $_POST['sport'];
    echo 
    $_POST['nachrichten'];
    echo 
    $_POST['musik'];
    echo 
    $_POST['shopping'];
     
    if(
    $res_id = @mysql_connect($mysql_host$mysql_user$mysql_pw))
    {
     echo 
    "Es wurde erfolgreich zur Datenbank verbunden.";
    }
    else
    {
     die(
    'Fehler! Datebank gibt es nicht.');
    }
    if(@
    mysql_select($mysql_db))
    {
     echo 
    "Es wurde erfolgreich die Datenbank ausgewählt.";
    }
    else
    {
     die(
    'Fehler! Datebank gibt es nicht.');
    }
    mysql_query('SELECT * FROM umfrage');
     
    if (!
    mysql_query("INSERT INTO umfrage (ja, nein, sport, nachrichten, musik, shopping) VALUES('ja', 'nein', 'sport', 'nachrichten', 'musik', 'shopping')"))
     die (
    'Fehler! SQL-Befehl ist falsch.')
    ?>
    </body>
    </html>
    also ich habe mal das ganze so gestalltet... kann mir wer helfen den fehler zu finden?

    Ich spiel jetzt schon seit 2 std herrum, am anfang kam immer fehler in zeile 13, fehler in zeile 15...

    und jetzt hab ich es geschafft zur datenbank zu connecten, aber er speichert das nicht rein *heul*

    Es muss der fehler irgendwo bei
    if(@mysql_select($mysql_db))
    liegen, weil er die datenbank ja nicht auswählt... und die variable hab ich richtig angegeben...*heul
    Geändert von G.m.b.H. (08.05.2009 um 17:35 Uhr) Grund: PS

  9. #9
    Meister(in)
    Registriert seit
    27.03.2009
    Ort
    Berlin
    Beiträge
    278
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Hilfe zu Umfrage+Datenbank

    Code:
    if (!mysql_query("INSERT INTO umfrage (ja, nein, sport, nachrichten, musik, shopping) VALUES('ja', 'nein', 'sport', 'nachrichten', 'musik', 'shopping')"))
     die ('Fehler! SQL-Befehl ist falsch.')
    nach dem INSERT INTO kommen in der Klammer die bezeichnungen der Spalten in deinem Tabel in der datenbank.
    Die einzutragenen werte hast du ja schon unter VALUES () definiert.

  10. #10
    Youngster
    Themenstarter

    Registriert seit
    07.05.2009
    Beiträge
    14
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Hilfe zu Umfrage+Datenbank

    Die spaltenbezeichnungen in meiner datenbank heißen gleich wie meine values... das passt schon so...

    er müsste mir ja rein theoretisch noch

    Es wurde erfolgreich die Datenbank ausgewählt.
    zeigen, aber das tut er nicht, also muss der fehler bei

    PHP-Code:
    if(@mysql_select($mysql_db)) 
    liegen, aber ich weiß nicht was an dem falsch ist...

Ähnliche Themen

  1. Benötige Hilfe für Druckansicht einer Datenbank
    Von Lavingstar im Forum Job Forum - Jobs für Grafiker, Programmierer und Webmaster
    Antworten: 8
    Letzter Beitrag: 14.01.2009, 09:32
  2. Hilfe bei Forschungsprojekt MP3-Player - Umfrage mit Verlosung
    Von Schlagzeile im Forum Off Topic und Quasselbox
    Antworten: 5
    Letzter Beitrag: 10.11.2008, 16:18
  3. Hilfe DATENBANK und verlinkung (ich kommen nicht weiter)
    Von Goethe im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 20.08.2007, 23:23
  4. Hilfe Datenbank..
    Von muffinman :) im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 12.06.2007, 17:59
  5. PHP HILFE (DATENBANK)
    Von NEUER im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 08.06.2007, 15:53

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •