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)
Problem beim Schreiben in eien Datenbankd [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem beim Schreiben in eien Datenbankd


 
mgoertz
03-03-2004, 21:49 
 
Hallo Zusammen ich haben ein Problem beim Schrieben in meine Datenbank, leider wird nix in die datenbank geschrieben. Hier der Code:


<body>
<?php if(!isset($_POST['submit'])) { ?>
[ganz viel text]
<?php
}else{
if($insert = @mysql_query("INSERT INTO oda_mailbook
(nickname, mail, privat, gruppe, username)
VALUES ('" . $_POST['nickname'] . "',
'" . $_POST['mail'] . "',
'" . $_POST['privat'] . "',
'" . $_POST['all'] . "',
'" .$_SESSION['name']. "')"))
die(mysql_error());
}
?>erbrochen von mrhappiness

 
mrhappiness
03-03-2004, 21:51 
 
kommt er zum else?

warum lässt du dir mysql_error ausgeben wenn das INSERT geklappt hat?

warum kannst du den code nicht selbst umbrechen?

warum machst du das @ nicht weg?

 
mgoertz
03-03-2004, 21:57 
 
hab die Zeile in folgende geändert:
mysql_query("INSERT INTO oda_mailbook (nickname, mail, privat, gruppe, username)
VALUES ('" . $_POST['nickname'] . "', '" . $_POST['mail'] . "', '" . $_POST['privat'] . "', '" . $_POST['all'] . "', '" .$_SESSION['name']. "')")or die(mysql_error());

und er schreibt immer noch net rein

 
mrhappiness
03-03-2004, 21:59 
 
und bekommst was für ne meldung?

hast du dir in deinem else block mal ne testausgabe mit echo reingebastelt, damit du siehst, ob der herr php überhaupt da hinkommt?

 
mgoertz
03-03-2004, 22:06 
 
wenn ich da ein else $POst.... einbaue kommt er da nicht hin, wenn ich aus dem }else{ text } ein
} text
mache schreibt er mir das vorherige automatisch in die DB bevor ich was eingegeben habe und den Button gedrückt habe

 
mrhappiness
03-03-2004, 22:08 
 
if (!isset($_POST['submit']))
{
echo 'Es wird nix eingetragen';
//Der Rest deiner Ausgabe
}
else
{
echo 'Es soll was eingetragen werden';
mysql_query('INSERT ...') or die(mysql_query());
}was passiert da?

 
mgoertz
03-03-2004, 22:19 
 
ich hab es jetzt so gemacht:


<body>
<? if (!isset($_POST['submit'])){
echo 'Es wird nix eingetragen';
?>
<form action="<?php $PHP_SELF ?>" method="post">
<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<tbody>
<tr>
....
</table>
</form>
<?

}
else
{
echo 'Es soll was eingetragen werden';

mysql_query("INSERT INTO oda_mailbook (nickname, mail, privat, gruppe, username)
VALUES ('" . $_POST['nickname'] . "',
'" . $_POST['mail'] . "',
'" . $_POST['privat'] . "',
'" . $_POST['all'] . "',
'" .$_SESSION['name']. "')")or die(mysql_error());
}

?>
</body>
</html>


und es wird nix in die DB geschrieben nur 'Es wird nix eingetragen' und mein Formular angezeigt

 
derHund
03-03-2004, 22:25 
 
ganz oben:

echo '<pre>';
print_r($_POST);
echo '</pre>';

ausgabe?

zeig mal den code deines submit-buttons ...

 
mgoertz
03-03-2004, 22:29 
 
ich hab das an folgender Stelle eingebaut:

<body>
<? if (!isset($_POST['submit'])){
echo 'Es wird nix eingetragen';
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
<form action="<?php $PHP_SELF ?>" method="post">
...


und folgendes Ergenis erhalten:
Array
(
[nickname] => Test, Vorname
[mail] => test@test.de
[all] => 1
[Submit] => Hinzufügen
)

 
mgoertz
03-03-2004, 22:45 
 
kann mir da niemand weiterhelfen ?

 
mrhappiness
03-03-2004, 22:49 
 
dein button heißt Submit und du prüfst ob $_POST['submit'] existiert

du musst auf groß- und kleinschreibung achten

 
derHund
03-03-2004, 22:50 
 
Submit != submit

wäre mein tip.

 
mgoertz
03-03-2004, 22:52 
 
Danke jetzt jetzt, sorry für den dummen Fahleer aber ich hab das einfach übersehen

 
goth
04-03-2004, 02:36 
 
Schön das das jetzt geklärt ist ... trotzdem lag der Fehler wohl in Deinem PHP gestümper ... und hat wenig mit SQL zu tun ... also ... ab dafür ... !


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:19 Uhr.