reload problem

SaTaN

Erfahrenes Mitglied
Hallo ;-) ,

habe mich heute hingesetzt und mein erstes richtiges admin.php script geschrieben. nichts dolles. wie gesagt ich habe mit php erst gerade angefangen.

ich möchte das alle einträge dieses formular in der datenbank gespeichert wird. soweit funktioniert das auch.

nur folgendes passiert :

beim reload wird ein leerer datensatz gespeichert.
genauso wenn man in den muss felder nichts eingibt wird das auch in der datenbank gespeichert.

wie verhindere ich das ?

ich möchte das wenn die muss felder nicht ausgefüllt sind keine daten
gespeichert werden und das denn dort stehen bleibt "Bitte trage was in Künstler, Album kategorie 0 ein".
erst wen alles ausgefüllt ist soll erscheinen "Es wurde 1 Datensatz hinzugefügt".

bitte markiert es eindeutig wo ich was ändern muss und am besten wie.
super währe es wenn mir das einer richtig posten könnte.

hier mein code :

1<html>
2<head>
3<? include ("global.php"); ?>
4<title>Admin-site</title>
5</head>
6<body>
7
8<div align="center"><font color="#000000" size="+2">Admin-Bereich</font></div>
9<form action="admin.php" method="post">
10 <div align="center">
11 Künstler :<br>
12 <input type="text" size"20" name="array[kuenstler]">
13 <br>
14 Album :<br>
15 <input type="text" size="20" name="array[album]">
16 <br>
17 Titel :<br>
18 <input type="text" size="20" name="titel">
19 <br>
20 Datei :<br>
21 <input type="text" size="20" name="datei">
22 <br>
23 Grösse :<br>
24 <input type="text" size="20" name="groesse">
25 <br>
26 Kategorie 0 :<br>
27 <input type="text" size="20" name="array[kat]">
28 <br>
29 Kategorie 1 :<br>
30 <input type="text" size="20" name="kat1">
31 <br>
32 <input type="submit" name="gesendet" value="senden">
33 <input type="reset" value="löschen">
34
35 </div>
36</form>
37<?
38
39if (($array["kuenstler"]) and
40($array["album"]) and
41($array["kat"])) {
42 $array["name"] = $array["kuenstler"]
43 . " " . $array["album"]
44 . " " . $array["kat"];
45} else {
46 echo ("<center>Bitte trage was in Künstler und Album ein.</center>");
47 }
48?>
49
50<?php
51 if ($gesendet)
52 {
53 $sqlab = "insert am_inhalt";
54 $sqlab .= "(kuenstler, album, titel, datei, ";
55 $sqlab .= " groesse, kat, kat1) values ";
56 $sqlab .= "('$kuenstler', '$album', '$titel', '$datei', '$groesse', '$kat', '$kat1')";
57
58 mysql_db_query("music", $sqlab);
59
60 $num = mysql_affected_rows();
61 if ($num>0)
62 echo "<center>Es wurde 1 Datensatz hinzugefügt</center>";
63 else
64 {
65 echo "<center>Es ist ein Fehler aufgetreten, ";
66 echo "es wurde kein Datensatz hinzugefügt</center>";
67 }
68 mysql_close($db);
69 }
70?>
71
72</body>
73</html>

bitte sagt mir wie ihr das mit den nummern hinbekommt.
bin verrückt geworden beim manuellen durchzählen.

vielen vielen dank für die mithilfe.
es ist schon spät und ich weis einfach nicht mehr weiter.
ciao und gute nacht an alle. :-(
 
-

Einen wunderschönen guten Morgen wünsche ich :)

Das bei einem Refresh ein leerer Eintrag in deine Datenbank erfolgt, verhinderst du dadurch, indem du überprüfst, ob es $_POST['submit'] gibt. Also
PHP:
if( isset($_POST['submit']))

Ob alle Felder ausgefüllt sind, kannst du mit der Funktion empty() überprüfen.
 
hallo :) ,

vielen dank für die schnelle antwort.
nur kann mir bitte jemand auch das so posten, wie ich das
" if( isset($_POST['submit'])) " in meinem script einbauen soll ?
an welcher stelle und so meine ich.

wie ist das gemeint, mit :
"Ob alle Felder ausgefüllt sind, kannst du mit der Funktion empty() überprüfen."

ich lasse doch gewisse felder schon überprüfen.
nur das script sagt "Bitte trage was in Künstler und Album ein."
nur trotzdem wird dann ein leerer datensatz in der DB abgespeichert.

vielen dank für eure hilfe.


! ! ! super forum ! ! !
 
In deinem Script ist ein Denkfehler, was die If Bedingungen angeht, du führst deine erste If aus, beendest sie aber, bevor die MySQL Funtkion anfängt...

Du musst die MySQL Sachen in die If Bedingung mitreintun also:

PHP:
<?php
//formular

if(isset($submit)) {
// deine anweisungen an die variablen und die MySQL Sachen
} else {
echo "<center>Kuenstler und Album eintragen!</center>";
}
?>

Hoffe man hat verstanden was ich meine, ich kann irgendwie nicht mehr richtig erklären ^^
 
Moin, Moin Satan,

habe hier ein kleines Beispiel wie ich das mache:


<html>
<body >

<?php
$dbhost = "localhost";
$dbuname = "user";
$dbpass = "password";
$dbname = "datenbank";
if ($submit) {
$db = mysql_connect($dbhost, $dbuname, $dbpass);
mysql_select_db($dbname,$db);
$sql = "INSERT INTO mp3 (text, text1, text2, text3 ) VALUES ('$img','$text','$text1','$text2','$text3')";
$result = mysql_query($sql,$db);
echo "<br><br>Ihr Daten wurden abgeschickt! Vielen Dank!<br><br> ";
}
else {
?>

<form method="post" action="<? echo $PHP_SELF ?>">
<table width="700" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td > <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="000092"><b><font size="3">VPN
- Neuer Eintrag </font></b></font>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="30" valign="bottom">&nbsp;</td>
</tr>
<tr>
<td height="30" valign="bottom"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="000092"><b>
</b></font></td>
</tr>
<tr>
<td height="30"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="000092"><b>
Text<br>
<textarea name="text" cols="80" rows="5" wrap="VIRTUAL"><? echo $text ?></textarea>
</b></font><br>
</td>
</tr>
<tr>
<td height="30" valign="bottom"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="000092"><b>Text
1 <br>
</b></font>
<textarea name="text1" cols="80" rows="5" wrap="VIRTUAL"><? echo $text1 ?></textarea>
<br>
</td>
</tr>
<tr>
<td height="30"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="000092"><b>Text
2 <br>
</b></font>
<textarea name="text2" cols="80" rows="5"><? echo $text2 ?></textarea>
</td>
</tr>
<tr>
<td height="30"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="000092"><b>Text
3 <br>
</b></font>
<textarea name="text3" cols="80" rows="5"><? echo $text3 ?></textarea>
</td>
</tr>
</table>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="000092"><b>
<br>
<input type="submit" value="Senden" name="submit">
</b></font><font size="2"><b><font face="Verdana, Arial, Helvetica, sans-serif"><font face="Verdana, Arial, Helvetica, sans-serif"><font size="2"><font size="2"><font color="000092"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="000092">
&nbsp;&nbsp;
<input type="reset" value="L&ouml;schen" name="reset">
</font></font></font></font></font></font></b></font></td>
</tr>
</table>
</form>

<?
}
?>
</body>
</html>

Gruss emplace
 
Hallo ihr lieben :) ,

seid doch bitte so nett und hilft mir.
da ich das nicht hinbekomme, mit der änderung
des code. :rolleyes: :confused:

vielen dank !
 
Zurück