doppeltes eintragen in DB vermeiden

-Ener-

Erfahrenes Mitglied
Hallo Folk,

ich hab ein Problem mit meinem Formular. Und zwar möchte ich das mein formular überprüft ob die eingegebene variable schon einmal in der MySQL vorhanden ist und wenn ja mit echo die Fehler ausgibt. Die Sache hab ich mal so probiert:

PHP:
$checktitle = "SELECT Titel FROM ja_".$sql_dat_ll.") or die('Kann Einträge nicht auflisten: '.mysql_error())";
if ($HTTP_POST_VARS["titel"] == $checktitle) {
echo "Der eintrag ist bereits vorhanden";

ich weiss nich ob des oder ob ich mich da total vercodet hab =D HELP!
 
zumindest müsstest du nach dem echo noch ein exit machen und die if anweisung schliessen...
aber sonst grob gesehen sollte es klappen...

kommt denn eine fehlermeldung oder hast du es noch gar nicht getestet?
 
Zähle einfach den Begriff in der mysql!
PHP:
$begriff=$HTTP_POST_VARS["titel"]; //Begriff nach dem gesucht wird
$result=mysql_query("SELECT COUNT(*) FROM ja_".$sql_dat_ll." WHERE TITEL = '$begriff' LIMIT 1");
while($row=mysql_fetch_array($result))
{
if ($row[0] >= 1) { // Bereits vorhanden
}

}
Versuchs mal!
 
ja, ich würde es so machen:


$err .="Der eintrag ist bereits vorhanden<br>"; // Für Bereits vorhanden

Am Ende würde ich prüfen ob $err gestzt ist. Weil du kannst $err immer erweitern falls weitere Fehler auftreten

if(isset($err)) { echo $err; } else { // eintragen in die DB }

Ist $err gestzt werden parktisch die Fehler ausgegeben. Ist das nicht der Fall (Sind keine Fehler vorgekommen) wird in die Datenbank eingetragen.
 
Zuletzt bearbeitet von einem Moderator:
Also er überprüft jetzt ob der Eintrag schon vorhanden ist aber wenn alles Korrekt eingegeben ist und ich auf senden drück kommt einfach nur ne weisse Seite.


PHP:
<?php
function edit_value($value) {
$value = ereg_replace("<","&lt;",$value);
$value = ereg_replace(">","&gt;",$value);
$value = nl2br($value);
$value = stripslashes($value);
return $value;
}
function urltest($url) {
if($url) $file = @fopen ($url, "r");
if($file) {
return true;
fclose($file);
} else return false;
}
if (!$HTTP_POST_VARS["titel"] or !$HTTP_POST_VARS["url"] or !$HTTP_POST_VARS["beschreibung"] or
!$HTTP_POST_VARS["kname"] or !$HTTP_POST_VARS["kemail"]) {
echo "Das Formular wurde nicht komplett ausgef&uuml;llt, es m&uuml;ssen <u>alle</u> Felder ausgef&uuml;llt ";
echo "werden!<br><br><a href=\"javascript:history.back();\">Zur&uuml;ck zum Formular</a>";
mysql_close($link);
include ($cfg["incspfad"]."/incs/footer.inc.php");
exit;
}
$titel = edit_value($HTTP_POST_VARS["titel"]);
if (strlen($titel) > $cfg["MaxTitel"]) $titel = substr($titel, 0, $cfg["MaxTitel"]);
if (preg_match("=^([a-zA-Z0-9-]+\\.)+([a-zA-Z]{2,4}[/a-zA-Z0-9-]*)$=", $HTTP_POST_VARS["url"])) {
echo "Die eingegebene Homepage-URL ist ung&uuml;ltig.<br><br><a href=\"javascript:history.back();\">Zur&uuml;ck ";
echo "zum Formular</a>";
mysql_close($link);
include ($cfg["incspfad"]."/incs/footer.inc.php");
exit;
} else { $url=$HTTP_POST_VARS["url"]; }
if ($cfg["urltest"] == "Y") {
if(!urltest($url)){
echo "Die eingegebene Homepage-URL (".$url.") ist existiert nicht oder ist nicht erreichbar!<br><br><a href=\"javascript:history.back();\">Zur&uuml;ck ";
echo "zum Formular</a>";
mysql_close($link);
include ($cfg["incspfad"]."/incs/footer.inc.php");
exit;
}
}
$beschreibung = edit_value($HTTP_POST_VARS["beschreibung"]);
if (strlen($beschreibung) > $cfg["MaxEntry"]) $beschreibung = substr($beschreibung, 0, $cfg["MaxEntry"]).'...';
$kname = edit_value($HTTP_POST_VARS["kname"]);
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$", $HTTP_POST_VARS["kemail"])) {
echo "Die eingegebene Email-Adresse ist ung&uuml;ltig.<br><br><a href=\"javascript:history.back();\">Zur&uuml;ck ";
echo "zum Formular</a>";
mysql_close($link);
include ($cfg["incspfad"]."/incs/footer.inc.php");
exit;
} else { $kemail=$HTTP_POST_VARS["kemail"]; }
$begriff=$HTTP_POST_VARS["titel"]; //Begriff nach dem gesucht wird 
$result=mysql_query("SELECT COUNT(*) FROM ja_".$sql_dat_ll." WHERE TITEL = '$begriff' LIMIT 1"); 
while($row=mysql_fetch_array($result)) 
{ 
if ($row[0] >= 1) { // Bereits vorhanden 
echo "Ihr Lied ist bereits in unserer Datenbank vorhanden!";
}
mysql_close($link);
include ($cfg["incspfad"]."/incs/footer.inc.php");
exit;
}
if ($HTTP_POST_VARS["update"]) {
$passcheck=mysql_query("SELECT * FROM ja_".$sql_dat_ll." WHERE id='".$HTTP_POST_VARS["update"]."'") or die("Abfrage des Eintrags nicht m&ouml;glich:<br>Falsche ID/Passwort-Kombination!<br>".mysql_error());
$pwcheck=mysql_fetch_array($passcheck);
$savepw = $pwcheck["Passwort"];
if ($HTTP_POST_VARS["pass1"] and $HTTP_POST_VARS["pass2"]) {
if(!eregi("^[a-zA-Z0-9-]*$", $HTTP_POST_VARS["pass2"])) {
echo "Die Wiederholung des Passwortes ist ung&uuml;ltig!<br><br><a href=\"javascript:history.back();\">Zur&uuml;ck ";
echo "zum Formular</a>";
mysql_close($link);
include ($cfg["incspfad"]."/incs/footer.inc.php");
exit;
}
if ($HTTP_POST_VARS["pass1"] == $HTTP_POST_VARS["pass2"]) {
$upd_sql ="UPDATE ja_".$sql_dat_ll." SET Titel='$titel', URL='$url', Beschreibung='$beschreibung', Passwort='".md5($HTTP_POST_VARS["pass2"])."', Kategorie='".$HTTP_POST_VARS["cat"]."', KName='$kname', KEmail='$kemail', status='".$cfg["AutoVali"]."'";
if ($cfg["f1_sta"]=="Y") $upd_sql.= ", f1_dat='".$HTTP_POST_VARS["f1_val"]."'";
if ($cfg["f2_sta"]=="Y") $upd_sql.= ", f2_dat='".$HTTP_POST_VARS["f2_val"]."'";
if ($cfg["f3_sta"]=="Y") $upd_sql.= ", f3_dat='".$HTTP_POST_VARS["f3_val"]."'";
if ($cfg["f4_sta"]=="Y") $upd_sql.= ", f4_dat='".$HTTP_POST_VARS["f4_val"]."'";
$upd_sql.=" WHERE id='".$HTTP_POST_VARS["update"]."' and Passwort='".$HTTP_POST_VARS["oldpass"]."'";
mysql_query($upd_sql) or die("Konnte Eintrag nicht aktualisieren: ".mysql_error());
echo "<br><b>Update OK!</b><br>";
} else {
echo "Die Wiederholung des Passwortes scheint nicht korrekt zu sein!<br><br><a href=\"javascript:history.back();\">";
echo "Zur&uuml;ck zum Formular</a>";
mysql_close($link);
include ($cfg["incspfad"]."/incs/footer.inc.php");
exit;
}
} elseif ($HTTP_POST_VARS["pass1"] and !$HTTP_POST_VARS["pass2"]) {
if ($savepw == md5($HTTP_POST_VARS["pass1"])) {
$upd_sql ="UPDATE ja_".$sql_dat_ll." SET Titel='$titel', URL='$url', Beschreibung='$beschreibung', Kategorie='".$HTTP_POST_VARS["cat"]."', KName='$kname', KEmail='$kemail', status='".$cfg["AutoVali"]."'";
if ($cfg["f1_sta"]=="Y") $upd_sql.= ", f1_dat='".$HTTP_POST_VARS["f1_val"]."'";
if ($cfg["f2_sta"]=="Y") $upd_sql.= ", f2_dat='".$HTTP_POST_VARS["f2_val"]."'";
if ($cfg["f3_sta"]=="Y") $upd_sql.= ", f3_dat='".$HTTP_POST_VARS["f3_val"]."'";
if ($cfg["f4_sta"]=="Y") $upd_sql.= ", f4_dat='".$HTTP_POST_VARS["f4_val"]."'";
$upd_sql.=" WHERE id='".$HTTP_POST_VARS["update"]."' and Passwort='".$HTTP_POST_VARS["oldpass"]."'";
mysql_query($upd_sql) or die("Konnte Eintrag nicht aktualisieren: ".mysql_error());
echo "<br><b>Update OK!</b><br>";
} else {
echo "Das eingegebene Passwort stimmt nicht mit dem gespeicherten Passwort &uuml;berein, es wurden <u>keine</u> ";
echo "&Auml;nderungen gespeichert!<br><br><a href=\"javascript:history.back();\">Zur&uuml;ck zum Formular</a>";
mysql_close($link);
include ($cfg["incspfad"]."/incs/footer.inc.php");
exit;
}
} else {
echo "Sie m&uuml;ssen Ihr Zugangs-Passwort eingeben um &Auml;nderungen speichern zu k&ouml;nnen!<br><a ";
echo "href=\"javascript:history.back();\">Zur&uuml;ck zum Formular</a>";
mysql_close($link);
include ($cfg["incspfad"]."/incs/footer.inc.php");
exit;
}
$neueid = $update;
} else {
if(!eregi("^[a-zA-Z0-9-]*$", $HTTP_POST_VARS["pass1"])) {
echo "Das eingebene Passwort ist ung&uuml;ltig!<br><br><a href=\"javascript:history.back();\">Zur&uuml;ck zum Formular</a>";
mysql_close($link);
include ($cfg["incspfad"]."/incs/footer.inc.php");
exit;
}
 
if ($HTTP_POST_VARS["pass1"] != $HTTP_POST_VARS["pass2"]) {
echo "Die Wiederholung des Passwortes scheint nicht korrekt zu sein!<br><br><a href=\"javascript:history.back();\">\n";
echo "Zur&uuml;ck zum Formular</a>\n";
mysql_close($link);
include ($cfg["incspfad"]."/incs/footer.inc.php");
exit;
} elseif ($HTTP_POST_VARS["pass1"] == $HTTP_POST_VARS["pass2"]) {
$zeit_aktuell = time();
$anfrage = "INSERT INTO ja_".$sql_dat_ll." (Titel, URL, Beschreibung, Passwort, Kategorie, KName, KEmail, HitIn, HitOut, status, Datum, IPIn, IPOut";
if ($cfg["f1_sta"]=="Y") $anfrage.= ", f1_dat";
if ($cfg["f2_sta"]=="Y") $anfrage.= ", f2_dat";
if ($cfg["f3_sta"]=="Y") $anfrage.= ", f3_dat";
if ($cfg["f4_sta"]=="Y") $anfrage.= ", f4_dat";
$anfrage.= ") values('$titel', '$url', '$beschreibung', '".md5($HTTP_POST_VARS["pass1"])."', '".$HTTP_POST_VARS["cat"]."', '$kname', '$kemail', '0', '0', '".$cfg["AutoVali"]."', '$zeit_aktuell', '".$_ENV["REMOTE_ADDR"]."', '".$_ENV["REMOTE_ADDR"]."'";
if ($cfg["f1_sta"]=="Y") $anfrage.= ", '".$HTTP_POST_VARS["f1_val"]."'";
if ($cfg["f2_sta"]=="Y") $anfrage.= ", '".$HTTP_POST_VARS["f2_val"]."'";
if ($cfg["f3_sta"]=="Y") $anfrage.= ", '".$HTTP_POST_VARS["f3_val"]."'";
if ($cfg["f4_sta"]=="Y") $anfrage.= ", '".$HTTP_POST_VARS["f4_val"]."'";
$anfrage.= ")";
mysql_query($anfrage, $link) or die("Konnte Datensatz nicht hinzufügen: ".mysql_error());
$neueid = mysql_insert_id();
}
}
echo "<p align=justify>Folgende Daten wurden gespeichert und zur besseren Kontrolle per Email an die angegebene Email-Adressse \n";
echo "gesendet! Die angegebenen Daten können jederzeit unter dem Men&uuml;punkt \"Eintrag bearbeiten\", ge&auml;ndert werden!<br><br>\n";
if ($cfg["AutoVali"]=="N") echo "<b>Hinweis:</b> Der Eintrag wird erst nach Freigabe durch den Webmaster in der Liste zu finden sein!";
echo "</p><table align=center \n";
echo "border=0 cellspacing=0 cellpadding=2 width=100%><tr><th colspan=2 align=left class=kat_tit>Folgende Daten wurden gespeichert:</th></tr><tr>\n";
echo "<td>Homepage Titel:</td><td>$titel</td></tr><tr><td>Homepage URL:</td><td><a href=\"".$url."\" target=\"_blank\">".$url."</a></td>\n";
echo "</tr><tr><td>Kategorie:</td><td>".$kat["KatTitel"]."</td></tr><tr><td valign=top>Beschreibung:</td><td>".$beschreibung."</td></tr>";
if ($cfg["f1_sta"]=="Y") echo "<tr><td valign=top>".$cfg["f1_tit"].":</td><td>".$HTTP_POST_VARS["f1_val"]."</td></tr>\n";
if ($cfg["f2_sta"]=="Y") echo "<tr><td valign=top>".$cfg["f2_tit"].":</td><td>".$HTTP_POST_VARS["f2_val"]."</td></tr>\n";
if ($cfg["f3_sta"]=="Y") echo "<tr><td valign=top>".$cfg["f3_tit"].":</td><td>".$HTTP_POST_VARS["f3_val"]."</td></tr>\n";
if ($cfg["f4_sta"]=="Y") echo "<tr><td valign=top>".$cfg["f4_tit"].":</td><td>".$HTTP_POST_VARS["f4_val"]."</td></tr>\n";
echo "<tr>\n<td>Kontakt-Name:</td><td>".$kname."</td></tr><tr><td>Kontakt-Email:</td><td><a href=\"<A href="mailto:".$kemail."\">".$kemail."</td></tr><tr><th">mailto:".$kemail."\">".$kemail."</td></tr><tr><th \n";
echo "colspan=2 align=left class=kat_tit>Zugangs-Daten:</th></tr><tr><td valign=top>Eintrags-ID:</td><td>".$neueid."</td></tr><tr><td valign=top>\n";
echo "Eingetragen am:</td><td>".date("d.m.Y", $zeit_aktuell)." um ".date("H:i", $zeit_aktuell)." Uhr</td></tr><tr><td valign=top>";
echo "Zugangs-Passwort:</td><td>***** (gespeichert!)</td></tr></table>\n</p><center><a ";
echo "href=\"".$cfg["URL"]."/?site=vcat&cat=".$HTTP_POST_VARS["cat"]."\">Zur &Uuml;bersicht der angegebenen Kategorie!</a><br><a \n";
echo "href=\"".$cfg["URL"]."/\">Zur ".$cfg["Titel"]."-Startseite!</a></center><br>";
?>
 
Das was Du in die Datenbank eintragen willst, was nicht doppelt sein darf, kannst Du dem nicht den Primary Key geben :confused:, dann würde MySQL automatisch einen doppelten Eintrag verhindern, ... :)

redlama :suspekt:
 
Zurück