Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
INSERT über PHP geht nicht Bitte Hilfeeee [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
INSERT über PHP geht nicht Bitte Hilfeeee


 
Jollex
25-08-2001, 19:34 
 
Hallo, nun bin ich nach 2 Tagen rastloser Suche nach
PHP Experten nun hoffentlich am Ende meiner Qualvollen
Webreise... Ich hab ein Problem beim INSERT in eine MySQL
DB , da erscheinen aus meinem html Formular nur leere Datensätze !! wenn überhaupt.. schaut Euch bitte bitte ma mein skript an :

1. form.html

<html>
<head><title>formular</title></head>
<BODY BGCOLOR="#FFFFFF" style="font-family: verdana, helvetica, arial" topmargin="0" leftmargin="0" vlink="#0000FF" alink="#0000FF" link="#0000FF">
<form method="get" action="sonar.php">
<table border="0" align="center">
<tr>
<td>Vorname</td>
<td><input type="text" name="$vorname" size="50"></td>
</tr><tr>
<td>Name</td>
<td><input type="text" name="$name" size="50"></td>
</tr>
<tr>
<td>*</td>
<td><input type="submit" name="submit" value="Abschicken"></td>
</tr>

</table>
</form>


</body>

</html>

2. sonar.php

<html>
<BODY BGCOLOR="#FFFFFF" style="font-family: verdana, helvetica, arial" topmargin="0" leftmargin="0" vlink="#0000FF" alink="#0000FF" link="#0000FF">
<?php

$db = mysql_connect("127.0.0.1", "root");
mysql_select_db("kundendb",$db);
$sql = "INSERT INTO kunden (vorname,name) VALUES ('$vorname','$name')";
$result = mysql_query($sql,$db);
echo "Ihr Daten wurden abgeschickt! Vielen Dank!<br><br>";


?>



</body>
</html>

PS.: Bitte Bitte helft mir , das ist meine letzte Hoffnung, ich muss ne komplette HP in 2 Tagen fertigen

 
pekka
26-08-2001, 00:04 
 
Die Dollarzeichen in den Inputfeldern sinds! Mit Dollars wird PHP deutlich gemacht, dass die Angabe eine Variable betrifft, in HTML-ELementen haben sie nix zu suchen.

Probiers so:
<input type="text" name="vorname" size="50">
<input type="text" name="name" size="50">

Wäre übrigens interessant zu wissen wo ein input namens $name später in PHP endet, $$name ist ja auch nochmal was anderes... Weiss jemand bescheid?

 
Jollex
26-08-2001, 17:53 
 
Danke für deinen Tip,
aber die Sache funzt immer noch nicht.
Wieder leere Datensätze in der DB.
Hast Du evt. noch ne Idee ?

 
JoelH
26-08-2001, 18:32 
 
mach mal hinter die kommas in der Queryzeile immer ein leerzeichen, hoert sich zwar bescheuert an aber ab und zu braucht er das leerzeichen um es zu raffen, so meine Erfahrung, denn der Code ansich scheint korrekt zu sein.

 
Kaffi
26-08-2001, 18:44 
 
Hallo,

der Fehler liegt im HTML. Du mußt method="post" statt method="get" benutzen.

Gruß

 
Jollex
26-08-2001, 18:51 
 
Danke für Eure Tips , aber es funzt immer noch nich !!!
was mach ich nur falsch... kann es sein , das das mysql nicht richtig konfiguriert / installiert ist ?
Oder evt. hab ich die DB falsch angelegt, möglicherweise
muss ich Zugriffsrechte verteilen.. kann das sein ??

 
Kaffi
26-08-2001, 19:04 
 
Hallo,

was kommen den für Fehlermeldungen?
Poste mal deinen Code wie er jetzt ist.

Gruß

 
Jollex
26-08-2001, 19:11 
 
es kommt ja keine Meldung , das is ja das Mysterium..
es wird auch eine Reihe in die DB eingetragen, nur steht kein zeichen drin ....

<body>
<form method="post" action="sonar.php">
<table border="0" align="center">
<tr>
<td>Vorname</td>
<td><input type="text" name="vorname" size="50"></td>
</tr><tr>
<td>Name</td>
<td><input type="text" name="name" size="50"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="submit" value="Abschicken"></td>
</tr>

</table>
</form>


</body>

</html>


<html>
<body>
<?php

$db = mysql_connect("127.0.0.1");
mysql_select_db("kundendb",$db);
$sql = "INSERT INTO kunden (vorname,name) VALUES ('$vorname','$name')";
$result = mysql_query($sql, $db);

if( ! $result) {

die(mysql_error());

}


?>



</body>
</html>


danke , cu

 
Kaffi
26-08-2001, 19:12 
 
Ich habe es bei mir mal ausprobiert und es funktionierte mit diesen Codes:

form.html

<html>
<head><title>formular</title></head>
<BODY BGCOLOR="#FFFFFF" style="font-family: verdana, helvetica, arial" topmargin="0" leftmargin="0" vlink="#0000FF" alink="#0000FF" link="#0000FF">
<form method="post" action="sonar.php">
<table border="0" align="center">
<tr>
<td>Vorname</td>
<td><input type="text" name="vorname" size="50"></td>
</tr><tr>
<td>Name</td>
<td><input type="text" name="name" size="50"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Abschicken"></td>
</tr>

</table>
</form>


</body>

</html>


sonar.php

<html>
<BODY BGCOLOR="#FFFFFF" style="font-family: verdana, helvetica, arial" topmargin="0" leftmargin="0" vlink="#0000FF" alink="#0000FF" link="#0000FF">
<?php

$db = mysql_connect("127.0.0.1", "root");
mysql_select_db("kundendb",$db);
$sql = "INSERT INTO kunden (vorname,name) VALUES ('$vorname','$name')";
$result = mysql_query($sql,$db);
echo "Ihr Daten wurden abgeschickt! Vielen Dank!<br><br>";

?>

</body>
</html>

 
Jollex
26-08-2001, 19:25 
 
So , na das ist ja schonmal gut, danke für deine Bemühungen.
aber das Problem besteht nach wie vor. Aber gut ist , das wir jetzt wissen , daß es nicht am code liegt. Da muss irgendwas mit meinem WAMP nicht stimmen oder ? Wenn ichs allerdings "von hand " , also direkt im MySQL Befehlsinterpreter eingebe , klappts tadellos.. nur nicht mit php , kanns evt. am php liegen ..

 
JoelH
26-08-2001, 20:53 
 
<html><head><title>formular</title></head>
<BODY BGCOLOR="#FFFFFF" style="font-family: verdana, helvetica, arial" topmargin="0" leftmargin="0" vlink="#0000FF" alink="#0000FF" link="#0000FF">
<form method="post" action="sonar.php">
<table border="0" align="center">
<tr>
<td>Vorname</td>
<td><input type="text" name="vorname" size="50"></td>
</tr><tr>
<td>Name</td>
<td><input type="text" name="name" size="50"></td>
</tr>
<tr>
<td>*</td>
<td><input type="submit" name="submit" value="Abschicken"></td>
</tr>
</table>
</form>
</body>
</html>

sonar.php
<html>
<BODY BGCOLOR="#FFFFFF" style="font-family: verdana, helvetica, arial" topmargin="0" leftmargin="0" vlink="#0000FF" alink="#0000FF" link="#0000FF">
<?php
$db = mysql_connect("127.0.0.1");
mysql_select_db("test",$db);
$sql = "INSERT INTO kunden (vorname,name) VALUES ('$vorname','$name')";
$result = mysql_query($sql,$db);
echo "Ihr Daten wurden abgeschickt! Vielen Dank!<br><br>";
?>
</body>
</html>
so, das geht mal.

der Dump

# phpMyAdmin MySQL-Dump
# version 2.2.0rc4
# http://phpwizard.net/phpMyAdmin/
# http://phpmyadmin.sourceforge.net/ (download page)
#
# Host: localhost
# Erstellungszeit: August 26, 2001, 8:56 pm
# Server Version: 3.23.25
# PHP Version: 4.0.2
# Datenbank : `test`
# -------------------------------------------------------- #
# Tabellenstruktur für Tabelle `kunden`
# CREATE TABLE kunden (
vorname text NOT NULL,
name text NOT NULL
) TYPE=MyISAM; #
# Daten für Tabelle `kunden`
# INSERT INTO kunden VALUES ( 'test', 'test');


der einzige unterschied ist das NOT NULL, alles sehr seltsam.

[Editiert von JoelH am 26-08-2001 um 21:07]

 
Jollex
26-08-2001, 21:26 
 
Danke für die Antwort.
ich hab jetz auch noch das NULL in NOT NULL verwandelt.
wie immer ohne Erfolg. Warum geht der Eintrag im MySQL Interpreter tadellos , aber über php nicht ? ist evt. php nicht korrekt installiert ?
Ich bin für jeden Tip mehr als nur dankbar ??

 
Kaffi
26-08-2001, 21:36 
 
Lad dir doch phpmyadmin von http://phpmyadmin.sourceforge.net/ runter. das ist ein gutes tool und du merkst gleich ob php und mysql gut oder schlecht zusammen funktionieren.

 
Jollex
26-08-2001, 21:41 
 
Woran seh ich denn das ?, ich hab phpAdmin installiert .

 
Kaffi
26-08-2001, 21:48 
 
Kannst du damit Datenbanken oder Tabellen erstellen? Und kannst du Einträge einfügen oder anzeigenlassen?

Wenn ja funktioniert PHP und mySQL zusammen.

 
Jollex
26-08-2001, 21:56 
 
AHAHAHA , beim ersten Versuch eine DB zu erstellen kam folgende Fehler meldung :

Fatal error: Maximum execution time of 30 seconds exceeded in c:\apache\apache\htdocs\phpmyadmin\lib.inc.php on line 351

Beim 2. Versuch hats geklappt. Tabellen lassen sich korrekt
erstellen ....

 
Jollex
26-08-2001, 22:16 
 
Bingo, Du hast recht mein Freund , wenn ich die Variablen durch Text
ersetze klappt der Eintrag!!

 
Deve l'Oper
28-01-2002, 16:09 
 
hallo leute!

bei mir funktioniert (local) leider auch nicht.
fehlermeldung im php debugger:Undefined variable: name

aber im web habe ich keine probleme damit! wo liegt der hund begraben?!

 
Sky
28-01-2002, 17:26 
 
Original geschrieben von pekka
Wäre übrigens interessant zu wissen wo ein input namens $name später in PHP endet, $$name ist ja auch nochmal was anderes... Weiss jemand bescheid?

test.php?$vorname=BLAH

echo $HTTP_GET_VARS['$vorname'];
echo $HTTP_GET_VARS["\$vorname"];
echo $HTTP_GET_VARS["$vorname"];
echo $HTTP_GET_VARS[$vorname];

Die ersten beiden gehen, die anderen aus verständlichen Gründen nicht.

 
Deve l'Oper
28-01-2002, 19:29 
 
hi sky

ich habe es getestet mit:

test.php?$vorname=BLAH
echo $HTTP_GET_VARS['$vorname'];

als resultat erhalte ich:

datensatz wurde eingefügt.blah

aber im db werden nur '' (blanks) eingefügt.
wohlgemerkt, bei mir nur auf localhost. wenn ich es im web teste (auf einem externen webserver), dann ist alles paletti.

irgendwie muss an der kombination: lokale instalation, php4, apache(IIS geht auch nicht) und win2k liegen.
aber welcher parameter kann es sein??

 
Sky
28-01-2002, 19:52 
 
Das war nur eine Randnotiz, kein Lösungsansatz für dein Problem.


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:40 Uhr.