Fragen zum Thema HTML, JavaScript, PHP
-
naums
- Beiträge: 740
- Registriert: Sa Jan 02, 2010 10:40 pm
-
Kontaktdaten:
Beitrag
von naums » Mi Feb 03, 2010 7:27 pm
Wie kann ich in die Datenbank schreiben???
Formular:
Code: Alles auswählen
<form name="newGuestBookEntry" action="newguesttodb.php" method="post" width="100%">
<pre>
Anezigename: <input type="text" size="20" name="user" value="'.$username.'">
<textarea type="editor" cols="50" rows="5" name="text">'.$text.'</textarea>
<input type="submit" value="Absenden" name="send">
</pre>
</form>
Der Skript der schreiben soll:
Code: Alles auswählen
<?php
$hoster=$_POST['user'];
if (array_key_exists('text',$_POST))
{
$entry=$_POST['text'];
}
else
{
echo('<SCRIPT LANGUAGE="JavaScript">location.href="index.php?position=newGuest&err=falseEntry&usr='.$hoster.'";</SCRIPT>');
};
if ( array_key_exists('user',$_POST))
{
$hoster=$_POST['user'];
}
else
{
echo('<SCRIPT LANGUAGE="JavaScript">location.href="index.php?position=newGuest&err=falseName&text='.$entry.'";</SCRIPT>');
};
$db = new mysqli('localhost', 'root', '', 'racing');
$abfrage = $db->query("SELECT
id
FROM
`guestbook`");
$a=1;
while ($guestbook = $abfrage->fetch_assoc())
{
$guestID[$a]=$guestbook['id'];
$a++;
};
$entryID=count($guestID);
$entryID=$entryID+1;
$paste = $db->query("INSERT INTO `guestbook` (
`id` ,
`entry` ,
`hoster` ,
`date`)
VALUES (
'".$entryID."',
'".$entry."',
'".$hoster."',
'".date('d. m. Y')."'");
echo('<SCRIPT LANGUAGE="JavaScript">location.href="index.php?position=guestbook#'.$entryID.'";</SCRIPT>');
?>
id=int, alles andre String.
.globl truth
truth:
mov r0, #42
mov pc, lr
-
naums
- Beiträge: 740
- Registriert: Sa Jan 02, 2010 10:40 pm
-
Kontaktdaten:
Beitrag
von naums » Mi Feb 03, 2010 7:31 pm
Update:
Skript was schreiben soll:
Code: Alles auswählen
<?php
$hoster=$_POST['user'];
if (array_key_exists('text',$_POST))
{
$entry=$_POST['text'];
}
else
{
echo('<SCRIPT LANGUAGE="JavaScript">location.href="index.php?position=newGuest&err=falseEntry&usr='.$hoster.'";</SCRIPT>');
};
if ( array_key_exists('user',$_POST))
{
$hoster=$_POST['user'];
}
else
{
echo('<SCRIPT LANGUAGE="JavaScript">location.href="index.php?position=newGuest&err=falseName&text='.$entry.'";</SCRIPT>');
};
$db = new mysqli('localhost', 'root', '', 'racing');
$abfrage = $db->query("SELECT
id
FROM
`guestbook`");
$a=1;
while ($guestbook = $abfrage->fetch_assoc())
{
$guestID[$a]=$guestbook['id'];
$a++;
};
$entryID=count($guestID);
$entryID=$entryID+1;
$paste = $db->query("INSERT INTO `guestbook` (
`id` ,
`entry` ,
`hoster` ,
`date`)
VALUES (
\ '".$entryID."\',
\ '".$entry."\',
\ '".$hoster."\',
\ #".date('d. m. Y')."\'");
echo('<SCRIPT LANGUAGE="JavaScript">location.href="index.php?position=guestbook#'.$entryID.'";</SCRIPT>');
?>
Es wird nichts in die DB geschrieben!
.globl truth
truth:
mov r0, #42
mov pc, lr
-
Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
-
Kontaktdaten:
Beitrag
von Xin » Mi Feb 03, 2010 7:36 pm
naums hat geschrieben:Update:
Skript was schreiben soll:
Code: Alles auswählen
VALUES (
\ '".$entryID."\',
\ '".$entry."\',
\ '".$hoster."\',
\ #".date('d. m. Y')."\'");
Es wird nichts in die DB geschrieben!
Schau Dir das mal genau an... ansonsten lass Dir den SQL Ausdruck mal in eine Variable schreiben und gib ihn aus.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
-
naums
- Beiträge: 740
- Registriert: Sa Jan 02, 2010 10:40 pm
-
Kontaktdaten:
Beitrag
von naums » Mi Feb 03, 2010 8:16 pm
öhm... häh???
also das "#" sollte das nicht sein, hab ich auch noch durch ein ' ersetzt
Und... PHPmyAdmin gibt mir den PHP Code folgendermaßen aus, zum Einfügen von Datensätzen:
Code: Alles auswählen
$sql = "INSERT INTO `racing`.`guestbook` (`id`, `entry`, `hoster`, `date`) VALUES (\'12\', \'halo 2\', \'halo 3 ODST\', \'nowadays\');";
.globl truth
truth:
mov r0, #42
mov pc, lr
-
naums
- Beiträge: 740
- Registriert: Sa Jan 02, 2010 10:40 pm
-
Kontaktdaten:
Beitrag
von naums » Mi Feb 03, 2010 8:18 pm
Verbesserung:
Code: Alles auswählen
$paste = $db->query("INSERT INTO `guestbook` (
`id` ,
`entry` ,
`hoster` ,
`date`)
VALUES (
\ '".$entryID."\',
\ '".$entry."\',
\ '".$hoster."\',
\ '".date('d. m. Y')."\');");
geht aber immernoch nix.
.globl truth
truth:
mov r0, #42
mov pc, lr
-
Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
-
Kontaktdaten:
Beitrag
von Xin » Mi Feb 03, 2010 8:20 pm
Ich habe Dir eben gesagt, Du sollst Dir den String in eine Variable packen und ausgeben. Hast Du das gemacht?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
-
Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Beitrag
von Dirty Oerti » Mi Feb 03, 2010 8:22 pm
Ich weiß nicht, warum es nicht funktioniert, ich kann dir nur sagen, dass das SO sehr unsicher ist, da durch deinen Code leicht eine SQL-Incjetion möglich wird.
http://de.wikipedia.org/wiki/SQL-Injection#PHP
Bei
Fragen einfach an
daniel[ät]proggen[Punkt]org
Ich helfe gerne!

----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
-
Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
-
Kontaktdaten:
Beitrag
von Xin » Mi Feb 03, 2010 8:23 pm
Dirty Oerti hat geschrieben:Ich weiß nicht, warum es nicht funktioniert
Ich kann Dir sagen, warum Du nicht sieht, warum es nicht funktioniert... der Grund ist eben nicht zu sehen ^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
-
naums
- Beiträge: 740
- Registriert: Sa Jan 02, 2010 10:40 pm
-
Kontaktdaten:
Beitrag
von naums » Mi Feb 03, 2010 8:36 pm
ich hab das ganze in eine Variable gepackt und über echo ausgegeben... und mit die(); gestoppt.
Es kommt ja nicht mal ne fehlermeldung... egal.. wo ich stoppe.
.globl truth
truth:
mov r0, #42
mov pc, lr
-
Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
-
Kontaktdaten:
Beitrag
von Xin » Mi Feb 03, 2010 10:23 pm
naums hat geschrieben:ich hab das ganze in eine Variable gepackt und über echo ausgegeben... und mit die(); gestoppt.
Okay.... und was kam raus... hast Du Dir das mal angeguckt und Dir mal überlegt, ob das das ist, was Du Dir wünschst?
naums hat geschrieben:Es kommt ja nicht mal ne fehlermeldung... egal.. wo ich stoppe.
Wenn Du eine Sprache suchst, die Dich unterstützt, dann ist PHP wohl nicht die erste Wahl. Du hast einen SQL-Fehler, weil Du hinter dem \ ein Leerzeichen hast. Deswegen dürfte die Ausgabe auch nicht dem entsprechen, was Du bei der Ausgabe erwarten solltest.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.