PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

17-09-2003, 14:04
|
rony
Newbie
|
|
Registriert seit: Sep 2003
Beiträge: 22
|
|
Fehler abfangen
Hi Leute
Ich habe ein Newsletter geschrieben mit dem ich noch ein Problemchen habe. Soweit klappt es gut, nur wenn ich eine Email die schon in der DB existiert nochmals über Formular abschicke (eintragen möchte) erscheint dieselbe Fehlermeldung wie wenn ich ein leeres Feld abschicke!
Also "Bitte geben Sie eine Email Adresse ein".
Lieber und logischer wäre es mir wenn schon auf die vorhandene Email-Adresse hingewiesen wird wie z.B. "Sie sind schon in unserem Newsletter eingetragen".
Ich kriege den Code nicht hin weil ich ziemlicher Newbie bin in sachen PHP und MySQL, also wenn Ihr die Frage idiotisch findet lasst mich am leben
Ich poste sicherheitshalber nochmal ein Teil vom Code:
PHP-Code:
<?php
$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
}
if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO news (name, email) VALUES (%s, %s)",
GetSQLValueString($HTTP_POST_VARS['name'], "text"),
GetSQLValueString($HTTP_POST_VARS['email'], "text"));
$error = "Bitte geben Sie eine E-Mail Adresse an.";
$error2 = "Sie sind in unserem Newsletter schon eingetragen.";
$ok = "Eintrag erfolgreich.";
mysql_select_db($database_arena, $arena);
$Result1 = mysql_query($insertSQL, $arena);
if (!$Result1)
{
echo "<table lenght=402 height=20 class=newstable><td><center>$error</center></td></table>";
}
else
{
echo "<font face=verdana size=-2 color=#000000>$ok | <a href=aktuell.php class=newsbesucht>hier</a> geht es weiter</font>";
}
}
?>
Ich bin unendlich dankbar für Jeden HInweis oder Hilfe
MfG rony
|

17-09-2003, 14:07
|
Happy Nihilist
PHP Senior
|
|
Registriert seit: Sep 2003
Beiträge: 1.168
|
|
Nun, du gibts auch nur diese eine Fehlermeldung aus. Im Script ist ja nicht mal eine andere Ausgabe angegeben!
|

17-09-2003, 14:09
|
Wurzel
Master  
|
|
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
|
|
- prüf die email-addie nicht nur mit isset() sondern auch mit emty() (wofür eigentlich isset?)
- setz das email-feld in der db auf "unique" und frage nach dem insert mit mysql_affected_rows ab, ob ein eintrag gemacht wurde
|

17-09-2003, 14:11
|
rony
Newbie
|
|
Registriert seit: Sep 2003
Beiträge: 22
|
|
Also aus Platzgründen hab ich nicht den ganzen Code gepostet, aber hier nochmal der ganze Code:
PHP-Code:
<?php require_once('Connections/arena.php'); ?>
<?php
mysql_select_db($database_arena, $arena);
$query_Recordset1 = "SELECT * FROM news";
$Recordset1 = mysql_query($query_Recordset1, $arena) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<html>
<head>
<title>start</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/main-style.css" rel="stylesheet" type="text/css">
</head>
<body leftmargin="30" topmargin="0">
<tr>
<td width="670" height="520" valign="top"><table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="22" height="20"> </td>
<td height="20"> </td>
<td height="20" class="aktualisiert"><div align="right"></div></td>
</tr>
<tr>
<td width="22" height="500" rowspan="2"> </td>
<td height="480" colspan="2" valign="top"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><strong>Newsletter
Sport <font color="#FF0000">Arena</font></strong></font><font color="#FF0000">
</font>
<hr align="left" width="580" size="1" noshade>
<span class="text"><img src="img/blind.gif" width="2" height="5"><br>
Tragen Sie sich in unser Newsletter ein damit wir Sie informieren können über aktuelle Events und Erreignisse.</span><span class="text"> <br>
<br>
*Sie
können
den
Newsletter
auch
<a href="newsletter_del.php"><strong>deaktivieren</strong></a> indem Sie hier klicken.<br><br></span>
<table width="577" height="100" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="413" valign="top"><em> </em>
<hr align="left" size="1" noshade>
<br>
<table width="412" height="20" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="79"> </td>
<td width="333"><?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
}
if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO news (name, email) VALUES (%s, %s)",
GetSQLValueString($HTTP_POST_VARS['name'], "text"),
GetSQLValueString($HTTP_POST_VARS['email'], "text"));
$error = "Bitte geben Sie eine E-Mail Adresse an.";
$error2 = "Sie sind in unserem Newsletter schon eingetragen.";
$ok = "Eintrag erfolgreich.";
mysql_select_db($database_arena, $arena);
$Result1 = mysql_query($insertSQL, $arena);
if (!$Result1)
{
echo "<table lenght=402 height=20 class=newstable><td><center>$error</center></td></table>";
}
else
{
echo "<font face=verdana size=-2 color=#000000>$ok | <a href=aktuell.php class=newsbesucht>hier</a> geht es weiter</font>";
}
}
?>
</td>
</tr>
</table>
<form method="post" name="form1">
<table width="300" align="left">
<tr valign="baseline">
<td width="73" height="40" align="center" valign="middle" nowrap class="form"><div align="left">Name:</div></td>
<td width="215" height="40" valign="middle">
<div align="left">
<input type="text" name="name" value="" size="32" class="news1">
</div></td>
</tr>
<tr valign="baseline">
<td height="40" align="center" valign="middle" nowrap class="form"><div align="left">Email:</div></td>
<td height="40" valign="middle">
<div align="left">
<input type="text" name="email" value="" size="32" class="news1">
</div></td>
</tr>
<tr valign="middle">
<td height="40" align="right" nowrap> </td>
<td height="40"><img src="img/blind.gif" width="2" height="5"><br>
<input type="submit" value="In Newsletter Eintragen" class="newsbutton"><br>
<img src="img/blind.gif" width="2" height="5"><br>
<font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">*E-Mail Feld ist ein Pflichtfeld</font></td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="form1">
</form>
<p> </p></td><td width="164"> </td>
</tr>
</table>
<br> <br>
<hr align="left" width="580" size="1" noshade>
<span class="text"><br>
</span> </td>
</tr>
<tr>
<td width="318" height="20" valign="top"> </td>
<td width="260" valign="middle" class="aktualisiert"><div align="right"></div></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>
Gruss rony
|

17-09-2003, 14:14
|
Happy Nihilist
PHP Senior
|
|
Registriert seit: Sep 2003
Beiträge: 1.168
|
|
Ich seh trotzdem nur, dass du $error ausgibst. $error2 wird nur deklariert, und das wars dann auch schon wieder.
|

17-09-2003, 14:14
|
rony
Newbie
|
|
Registriert seit: Sep 2003
Beiträge: 22
|
|
Zitat:
Original geschrieben von Happy Nihilist
Nun, du gibts auch nur diese eine Fehlermeldung aus. Im Script ist ja nicht mal eine andere Ausgabe angegeben!
|
Den Code hat DW gemacht, macht auch weiterhion keine Probleme, mich interessiert weil ich nicht weiterkomme wie der Code aussehen könnte also bzw. die Abfrage wenn email schon vorhanden dann gebe "Text" aus.
Das Feld email in der DB ist schon mittels "unique" definiert.
Gruss rony
|

17-09-2003, 14:17
|
Happy Nihilist
PHP Senior
|
|
Registriert seit: Sep 2003
Beiträge: 1.168
|
|
Wer hat den Code gemacht?
|

17-09-2003, 14:17
|
rony
Newbie
|
|
Registriert seit: Sep 2003
Beiträge: 22
|
|
Zitat:
Original geschrieben von Happy Nihilist
Ich seh trotzdem nur, dass du $error ausgibst. $error2 wird nur deklariert, und das wars dann auch schon wieder.
|
Ich habe Ihn desshalb deklariert weil ich dachte ich könnet mit "!($Result2)"
ne andere Fehlermedlung ausgegen.
Aber ich weiss nicht ob das machbar ist so eine Abfrage mit "!($Result2)" damit geprüft wird ob eine email schon vorhanden ist.
Gruss rony
|

17-09-2003, 14:18
|
rony
Newbie
|
|
Registriert seit: Sep 2003
Beiträge: 22
|
|
Zitat:
Original geschrieben von Happy Nihilist
Wer hat den Code gemacht?
|
Dreamweaver MX
|

17-09-2003, 14:18
|
Happy Nihilist
PHP Senior
|
|
Registriert seit: Sep 2003
Beiträge: 1.168
|
|
Und wo ist Result2?
EDIT: WAT? Weißt du denn, wass dir Dreamweaver da zusammengefrickelt hat?
|

17-09-2003, 14:21
|
rony
Newbie
|
|
Registriert seit: Sep 2003
Beiträge: 22
|
|
Zitat:
Original geschrieben von Happy Nihilist
Und wo ist Result2?
|
Den hät ich nach der "else" Anweisung einfach hinterher platziert, und die $Result2 hät ich direkt unter der $Result1 platziert, aber das gibt Fehlermeldung oder beide Errors werden ausgegeben ..
Gruss rony
|

17-09-2003, 14:21
|
rony
Newbie
|
|
Registriert seit: Sep 2003
Beiträge: 22
|
|
Zitat:
Original geschrieben von Happy Nihilist
Und wo ist Result2?
EDIT: WAT? Weißt du denn, wass dir Dreamweaver da zusammengefrickelt hat?
|
Ich denke mal besser als ich selbst!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|