Ich weiß nicht weiter (IF / ELSE)

Christoph Haas

Mitglied
Hallo liebe Community!
Irgendwie steig ich nicht mehr durch. Ich seh nur noch schwarz.

Ich bin dabei ein Newsletterscript zu schreiben und irgendwie komme ich nur noch durcheinander.:confused:

hier erstmal meine Codes:
newsletter.php

HTML:
<link href="style.css" rel="stylesheet" type="text/css">
<form name="form1" method="post" action="save.php">
  <table width="365" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <th width="108" height="35" valign="middle" class="schrift" scope="col"><div align="right">eMail Adresse:</div></th>
      <th width="12" valign="middle" scope="col">&nbsp;</th>
      <th colspan="4" valign="middle" scope="col"><div align="left">
        <input name="email" type="text" class="textfeld" id="email" size="30">
      </div></th>
    </tr>
    <tr>
      <th height="35" valign="middle" class="schrift" scope="row"><div align="right">Name:</div></th>
      <td valign="middle">&nbsp;</td>
      <td colspan="4" valign="middle"><div align="left">
        <input name="name" type="text" class="textfeld" id="name" size="30">
      </div></td>
    </tr>
    <tr>
      <th scope="row">&nbsp;</th>
      <td>&nbsp;</td>
      <td width="20"><div align="left"><input type="radio" name="art" value="1" id="ein" checked>
      </div></td>
      <td width="70" class="schrift"><label for="ein">Eintragen</label></td>
      <td width="20"><div align="left"><input type="radio" name="art" value="0" id="aus">
      </div></td>
      <td width="135" class="schrift"><label for="aus">Austragen</label></td>
    </tr>
    <tr>
      <th height="35" scope="row">&nbsp;</th>
      <td>&nbsp;</td>
      <td colspan="4" valign="bottom"><input type="submit" name="Submit" value="Senden"></td>
    </tr>
  </table>
</form>

save.php
PHP:
<style type="text/css">
<!--
body,td,th {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
}
-->
</style>
<?php
include("conf/config.inc.php");
mysql_select_db("newsletter");

$email 		= $_POST['email'];
$email 		= strtolower($email);
$name 		= $_POST['name'];
$art 		= $_POST['art'];
$pruefung 	= "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$";

if($email == "" OR !ereg($pruefung,$email)) // Überprüfung des Formates der eMail
	{
	echo "Sie haben keine oder ein falsches Format der eMail Adresse eingegeben!<br>";
	}
	else 
		 {
		if($name == "") 
		{ // Überprüfen ob ein Name eingegeben worden ist
		echo "Sie haben keinen Namen angegeben!<br>";
		}
		else
			{
			if($art == 1)  // Eintragen
			{
 			$abfrage = "SELECT `email` FROM `emails` WHERE `email` = '$email'";
  			$ergebnis = mysql_query($abfrage);
			if(mysql_num_rows($ergebnis)) // Prüfen ob die eMail schon eingetragen ist
      			{
      			echo "Ihre eMail Adresse ist bereits eingetragen";
      			}
				else
					{						
					$eintrag = "INSERT INTO emails (email, name) VALUES ('$email', '$name')";
 					$eintragen = mysql_query($eintrag);
					echo "Ihre eMail Adresse wurde erfolgreich in den Verteiler eingetragen!";
					}
				}
			} 
			}
?>

Jetzt zum eigentlichen Problem. Wenn jemand im newsletter.php Formular seine eMail Adresse + Namen eingibt und "Austragen" wählt, soll zunächst geprüft werden ob die eMail adresse bereits vorhanden ist. Wenn nicht, soll eine Fehlermeldung kommen. Wenn ja soll die eMail Adresse gelöscht werden. Nur WO und WIE setze ich dieses in das Script mit ein.

Bitte um Hilfe :rolleyes:
 
Du könntest einfach mit der mysql_affected_rows()-Funktion prüfen, wie viele Datensätze die vorhergehende Löschen-Datenbankabfrage gelöscht hat.
 
Du kannst das ganze auf gleicher Ebene einbauen, auf der du auch schon das Eintragen vornimmst:


PHP:
else 
            { 
            if($art == 1)  // Eintragen 
            { 
                    //dein Code zum Eintragen
                } 
if($art == 0){

$query = "select email from emails where email='$email'";
$res = mysql_query($query);

if(mysql_num_rows($res) > 0){
$query = "delete from emails where email = '$email'";

if(mysql_query($query)){
echo "Ihre Adresse wurde aus dem Verteiler ausgetragen.";
}
else{
echo "Austragen ist fehlgeschlagen.";
}

}
else{
echo "Ihre Adresse ist nicht im Verteiler vorhanden";
}

}
            }
 
Mahlzeit,
heute irgendwann in der Nacht, kam mir die Erleuchtung wie es richtig ist! :)

save.php
PHP:
<?php
include("conf/config.inc.php");
mysql_select_db("newsletter");

$email 		= $_POST['email'];
$email 		= strtolower($email);
$name 		= $_POST['name'];
$art 		= $_POST['art'];
$pruefung 	= "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$";


if($email == "" OR !ereg($pruefung,$email))
	{
	echo "Sie haben keine oder ein falsches Format der eMail Adresse eingegeben!<br>";
	}
else
	{
	if($name == "") 
	{
	echo "Sie haben keinen Namen angegeben!<br>";
	}
	else
		{
		if($art == 1)
		{
		$abfrage = "SELECT `email` FROM `emails` WHERE `email` = '$email'";
  		$ergebnis = mysql_query($abfrage);
		if(mysql_num_rows($ergebnis))
			{
			echo "Ihre eMail ist bereits eingetragen";
			}
		else
			{
			$eintrag = "INSERT INTO emails (email, name) VALUES ('$email', '$name')";
 			$eintragen = mysql_query($eintrag);
			echo "Ihre eMail Adresse wurde erfolgreich in den Verteiler eingetragen!";
			}
		}
		else
			{
			$abfrage = "SELECT email AND name FROM emails WHERE email = '$email' AND name = '$name'";
  			$ergebnis = mysql_query($abfrage);
			if(!mysql_num_rows($ergebnis))
				{
				echo "keine eMail eingetragen!";
				}
			else
				{		
				$loeschen = "DELETE FROM emails WHERE email = '$email' AND name = '$name'";
				$loesch = mysql_query($loeschen);
				echo "Ihre eMail Adresse wurde erfolgreich aus dem Verteiler genommen!";
				}
			}
		}
	}
?>
Jetzt wird bei der Eintragung geprüft ob eine eMail bereits vorhanden ist.
Wenn ja, kommt eine Fehlermeldung. Wenn nein, wird die eMail eingetragen.

Und wenn sich jemand austragen will, wird geprüft ob die eMail vorhanden ist.
Wenn nein, kommt eine Fehlermeldung. Wenn ja, wird die eMail ausgetragen!

Gruß Lodall
 
Zurück