WinFuture-Forum.de: daten per get in datenbank übertragen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

daten per get in datenbank übertragen


#1 Mitglied ist offline   jackson2340 

  • Gruppe: aktive Mitglieder
  • Beiträge: 35
  • Beigetreten: 10. November 10
  • Reputation: 0

geschrieben 10. Mai 2011 - 17:58

servus!
bin php & sql noob und wollte von euch wissen, obwohl folgendes richtig ist bzw. funktioniert:
ich würde es auch gerne testen, aber unser server is grad down, aber ich brauche das für morgen.
deswegen die frage, könnte das klappen bzw. was könnte man noch optimieren?

daten per get via url eingabe in datenbank schreiben:
 $sqlUser = "fia";
 $sqlPW = "xyz123";
 $id  = $_GET['id'];
 $uebung = $_GET['uebung'];
 $frage1 = $_GET['frage1'];
 $frage2 = $_GET['frage2'];
 $frage3 = $_GET['frage3'];
 $frage4 = $_GET['frage4'];
  
 mysql_connect("localhost", $sqlUser, $sqlPW) or die ('Error: ' . mysql_error());
 mysql_select_db("firstaid");

 $eintragen = mysql_query("INSERT INTO links (id,uebung,frage1,frage2,frage3,frage4) VALUES ('".$_POST['id']."','".$_POST['uebung']."','".$_POST['frage1']."','".$_POST['frage2']."','".$_POST['frage3']."','".$_POST['frage4']."')");
echo"Eintragung abgeschlossen!";
?>



datenbank auslesen:
<?php
$sqlUser = "fia";
$sqlPW = "xyz123";
mysql_connect("localhost", $sqlUser, $sqlPW) or die ('Error: ' . mysql_error());
$abfrage = "SELECT * FROM links";
echo "Ausgabe beendet!";
?>

0

Anzeige



#2 Mitglied ist offline   Stefan_der_held 

  • Gruppe: Offizieller Support
  • Beiträge: 14.336
  • Beigetreten: 08. April 06
  • Reputation: 887
  • Geschlecht:Männlich
  • Wohnort:Dortmund NRW
  • Interessen:Alles wo irgendwie Strom durchfließt fasziniert mich einfach weswegen ich halt Elektroinstallateur geworden bin :)

geschrieben 10. Mai 2011 - 18:19

bevor du es einträgst bzw überhaupt soweit gehst...

überprüfe vorher mal nach ob überhaupt die Infos richtig übergeben wurden :rolleyes:

Wenn mich mein PHP-Wissen noch nicht vollständig verlassen hat kannst du das so machen:

echo ($uebung);
echo ($frage1);


und so weiter. Ob nund ie Werte in die richtigen Spalten hinterher eingetragen werden lässt sich schlecht sagen ohne die Datenbankstruktur (auch Reihenfolge der Spalten) zu kennen.

Aber stelle mit obenstehendem Beispiel erstmal sicher, dass die Werte richtig ans PHP übergeben werden.
0

#3 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.170
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 10. Mai 2011 - 22:14

Das $eintragen = kannst du weglassen, also nur

mysql_query("INSERT INTO links (id,uebung,frage1,frage2,frage3,frage4) VALUES ('".$_POST['id']."','".$_POST['uebung']."','".$_POST['frage1']."','".$_POST['frage2']."','".$_POST['frage3']."','".$_POST['frage4']."')");
echo"Eintragung abgeschlossen!";



aber irgendwie macht das keinen Sinn. Wie übergibst du denn die Daten? Oben fragst du per GET ab, benutzt die aber gar nicht und beim Eintragen fragst du per POST ab, was aber auch sehr leichtsinnig ist, Formulareingaben unbehandelt und ungeprüft in die Datenbank schreiben zu wollen. Da ist ja Tür und Tor für Manipulationen offen.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#4 Mitglied ist offline   jackson2340 

  • Gruppe: aktive Mitglieder
  • Beiträge: 35
  • Beigetreten: 10. November 10
  • Reputation: 0

geschrieben 11. Mai 2011 - 14:42

deswegem wollte ich ja wissen, ob das sinn macht?
wie gesagt noob, hab mir das irgendwie zusammengebastelt.
die daten sollten via browser adresszeile eingegeben werden.
ich werde das gleich noch mal optimieren und dann noch mal hier posten. :)

Dieser Beitrag wurde von jackson2340 bearbeitet: 11. Mai 2011 - 14:49

0

#5 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.689
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 11. Mai 2011 - 15:19

fang die daten ab mit
$variablenname = $_GET["variable"];

dann schau ob sie valid sind, hau alle html tags raus bzw ersetze die <> mit &lt;&gt; dann kann der user schonmal keine javascripts mehr raufhaun wie zb
<script>alert("Werbung");</script>

was bei jedem anzeigen der daten aus der datenbank ein js alert mit dem inhalt werbung anzeigen würde. ich kann dir gerne unterlagen von der FH dazu schicken, sind nur ein paar powerpoint slides, die das ganze aber recht schön abdecken.

Dieser Beitrag wurde von Ludacris bearbeitet: 11. Mai 2011 - 15:21

0

#6 Mitglied ist offline   Texer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 23
  • Beigetreten: 15. September 02
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Saalfeld
  • Interessen:PHP, Motocross (Freestyle)

geschrieben 12. Mai 2011 - 10:36

Am besten eine kleine Funktion zum säubern aufrufen und dann die Daten speichern.

function FUNC_CLEAR_GET_POST($var){
	if(is_array($var)){
		foreach($var as $k => $w){
			$var[$k]=htmlentities($w, ENT_QUOTES);
		}
	}
	return $var;
}

# GET und POST säubern
$_GET=FUNC_CLEAR_GET_POST($_GET);
$_POST=FUNC_CLEAR_GET_POST($_POST);

Dieser Beitrag wurde von Texer bearbeitet: 12. Mai 2011 - 10:45

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0