Anzeige - [Hier werben / Mediadaten]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> [php] Email Überprüfung
Only4yu
Geschrieben am: Fr 29.12.2006, 11:35
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 190
Mitglied seit: 20.09.2006


Hallo, habe folgendes Problem,
habe nun ein Formular erstellt wo mann daten eingeben kann, diese werden dann in der SQL DB gespeichert.
Das ganze Funktioniert auch super!
Die überprüfung der Email adresse soweit läuft auch, er zeigt mir an ob die adresse ok ist oder nicht,
jedoch trägt er sie trotzdem in die DB ein!

Wie kann ich es verhindern das er die email, falls sie falsch ist nicht einträgt und den nutzer auffwordert diese nachzubessern?
Ah ja und wenn alles OK ist soll er rausgebend as die daten gespeicehrt sind und mann eine bestätigungsmail bekommt.

Würde mcih freunen wenn mit jemand helfen könnte.


Hier der Skript in dem die PHP Daten sind:
CODE

<body>
<?php
$email= $_POST['email'];


####
function PruefeMail($email) {
if (eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}", $email))
{ return TRUE; }
else
{ return FALSE; } }

####
$email = "$email";

echo $email."<br>";

####
if (PruefeMail($email))
{ echo "Emailadresse ist korrekt"; }

####
else
{ echo "Emailadresse ist fehlerhaft"; }


####
$email = "$email";

echo "<br><br><br>".$email."<br>";

if (PruefeMail($email))
{ echo "Emailadresse ist korrekt"; }
else
{ echo "Emailadresse ist fehlerhaft"; }



$link = mysql_connect('localhost', 'xxx', 'xxx');
if (!$link) {
   die('Verbindung nicht möglich : ' . mysql_error());
}

// benutze Datenbank
$db_selected = mysql_select_db('usrxxx', $link);
if (!$db_selected) {
   die ('Kann Datenbank nicht benutzen : ' . mysql_error());
}

$name= $_POST['name'];
$vorname= $_POST['vorname'];
$straße= $_POST['straße'];
$plz= $_POST['plz'];
$ort= $_POST['ort'];
$email= $_POST['email'];
$IP=$_SERVER['REMOTE_ADDR'];


$sqladd = ("INSERT INTO testfahrer (name,vorname,straße,plz,ort,email,ip) VALUES ('$name','$vorname','$straße','$plz','$ort','$email','$IP')");


mysql_query($sqladd);

?>




</body>
</html>

Top
PMEmail Poster
Top
 
 
Roberto Zehnder
#2 Geschrieben am: Fr 29.12.2006, 11:52 (+00:16)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 439
Mitglied seit: 8.10.2005


Ist das absichtlich so gewollt, dass mehrmals ausgegeben wird, ob die Email korrekt ist? huh.gif

Zudem musst du vor dem Eintragen PHP sagen: wenn die Email richtig ist, dann trage es mir ein, wenn nicht, dann lass es.

Bsp:

CODE
if (PruefeMail($email)){
  //Wenn korrekt, wird der Eintrag angelegt und eine Meldung ausgegeben
  echo "Emailadresse ist korrekt";
  $sqladd = ("INSERT INTO testfahrer (name,vorname,straße,plz,ort,email,ip) VALUES
  ('$name','$vorname','$straße','$plz','$ort','$email','$IP')");
  mysql_query($sqladd);
}else{
  echo "Emailadresse ist fehlerhaft";
}


--------------------
Wir von Zeweb bieten Ihnen einen rundum Service für die Homepage an.
Gerne übernehmen wir aber auch ihren PHP Programmier Auftrag.
=========================================================
Captcha Tutorials => stoppt-den-spam.info
Top
PMEmail PosterUsers Website
Top
 
Severin Fink
#3 Geschrieben am: Fr 29.12.2006, 11:58 (+00:06)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 93
Mitglied seit: 5.06.2006


Ein bisschen mit dem Klammern rumspielen:

CODE

<body>
<?php
$email= $_POST['email'];


####
function PruefeMail($email)
{
if(eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}", $email))
{
return TRUE;
}
else
{
return FALSE;
}
}

if (PruefeMail($email))
{
// benutze Datenbank
$db_selected = mysql_select_db('usrxxx', $link);
if (!$db_selected) {
  die ('Kann Datenbank nicht benutzen : ' . mysql_error());
}

$name= $_POST['name'];
$vorname= $_POST['vorname'];
$straße= $_POST['straße'];
$plz= $_POST['plz'];
$ort= $_POST['ort'];
$email= $_POST['email'];
$IP=$_SERVER['REMOTE_ADDR'];


$sqladd = ("INSERT INTO testfahrer (name,vorname,straße,plz,ort,email,ip) VALUES ('$name','$vorname','$straße','$plz','$ort','$email','$IP')");


mysql_query($sqladd);

}
else
{
echo "Emailadresse ist fehlerhaft";

}


?>




</body>
</html>


oder du schreibst

CODE

...
else
{
echo "Emailadresse ist fehlerhaft";
exit;//beendet den  phpskript
}
...


mfg Severin

edit: da wa woll jemand schneller wink.gif
Top
PMEmail PosterICQMSN
Top
 
Only4yu
#4 Geschrieben am: Fr 29.12.2006, 12:22 (+00:24)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 190
Mitglied seit: 20.09.2006


@robert
war keine absicht, nur durch das testen ist das halt drinneng eblieben ! biggrin.gif
versuceh eure vorschläge mal und melde mcih sobald iches hingekreigt hab!

DANKEEE
Top
PMEmail Poster
Top
 
Only4yu
#5 Geschrieben am: Fr 29.12.2006, 12:37 (+00:14)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 190
Mitglied seit: 20.09.2006


@ Robert
ah wunderbar,
das hat funktioniert !!

Vielen dank!!!
Top
PMEmail Poster
Top
 
Only4yu
#6 Geschrieben am: Fr 29.12.2006, 14:22 (+01:45)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 190
Mitglied seit: 20.09.2006


Ah jetzt muss ich mich weider mal melden ! biggrin.gif
Wollte nur mal Fragen ob die Daten die ich jetzt in der DB hab irgendwie in eine Word datei Packen kann,
mir ist klar das das nun nicht al zu einfach ist.
In eine CSV Datei kriege ich es aber da sind die einträge ja nicht in den Spalten eingetragen, wenn sie es wären könnte ich das per Ms Acces lösen.
Kriege ich die da irgendwie so rein?

Oder gibt es da bessere alternativen, da ich anschliessend Rundbriefe verschicken möchte!

Top
PMEmail Poster
Top
 
Roberto Zehnder
#7 Geschrieben am: Fr 29.12.2006, 14:26 (+00:03)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 439
Mitglied seit: 8.10.2005


QUOTE (Only4yu @ Fr 29.12.2006, 14:22)
In eine CSV Datei kriege ich es aber da sind die einträge ja nicht in den Spalten eingetragen, wenn sie es wären könnte ich das per Ms Acces lösen.
Kriege ich die da irgendwie so rein?

Excel und Access können CSV Dateien importieren. Einfach ein wenig herumspielen wink.gif
Hast du es erstmal in einem Office Programm kriegst du es auch in jedes andere (Word, Excel, Access)


--------------------
Wir von Zeweb bieten Ihnen einen rundum Service für die Homepage an.
Gerne übernehmen wir aber auch ihren PHP Programmier Auftrag.
=========================================================
Captcha Tutorials => stoppt-den-spam.info
Top
PMEmail PosterUsers Website
Top
 
Only4yu
#8 Geschrieben am: Fr 29.12.2006, 17:03 (+02:36)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 190
Mitglied seit: 20.09.2006


Ah ja hab es so gelöst,
Datei von csv in txt bennant.
Damm Excel geöffnet und auf " Datei -> Öffnen-> Alle anzeigen und die Txt auswählen.

Anschliessen kommt ein Menü wo mann die Trennzeichen ausfiltern kann.!

Wunderbar !! biggrin.gif ph34r.gif
Top
PMEmail Poster
Top
 
Only4yu
#9 Geschrieben am: Di 2.01.2007, 12:54 (+3d 19:51)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 190
Mitglied seit: 20.09.2006


Ah muss jetzt nochmal was fragen,
undz war möchte ich noch etwas in mein Formular einfügen.

Eine Auswahl von Bildern die dann per Radiobutton asugewählt werden sollen, zur verfügung stehen 20 bidler aber es dürfen maximal nur 3 angeklickt werden, wie kannich das denn in PHP definieren? habe da jetzt nix gefunden!
Top
PMEmail Poster
Top
 
Roberto Zehnder
#10 Geschrieben am: Di 2.01.2007, 13:03 (+00:09)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 439
Mitglied seit: 8.10.2005


Musst du mit HTML / Java Script machen, da die Eingae Clientseitig ist und nichts mit dem Server (PHP) zu tun hat.


--------------------
Wir von Zeweb bieten Ihnen einen rundum Service für die Homepage an.
Gerne übernehmen wir aber auch ihren PHP Programmier Auftrag.
=========================================================
Captcha Tutorials => stoppt-den-spam.info
Top
PMEmail PosterUsers Website
Top
 
Severin Fink
#11 Geschrieben am: Di 2.01.2007, 13:09 (+00:05)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 93
Mitglied seit: 5.06.2006


QUOTE (Roberto Zehnder @ Di 2.1.2007, 13:03)
Musst du mit HTML / Java Script machen, da die Eingae Clientseitig ist und nichts mit dem Server (PHP) zu tun hat.

Stimmt nicht ganz siehe hier: http://www.ayom.com/topic-15791.html

mfg Severin
Top
PMEmail PosterICQMSN
Top
 
hatschi1810
#12 Geschrieben am: Di 2.01.2007, 13:53 (+00:44)
Report PostQuote Post

AyomRank 6
Group Icon

Gruppe: Experten Entwicklung (Mod)
Beiträge: 638
Mitglied seit: 20.01.2004


Da hier recht mutig Usereingaben direkt in die DB reingeschrieben werden möchte ich auf die Gefahr von SQL-Injections hinweisen (http://de.wikipedia.org/wiki/SQL-Injektion oder http://www.ayom.com/topic-11692.html).
Top
PMEmail Poster
Top
 
Roberto Zehnder
#13 Geschrieben am: Di 2.01.2007, 13:57 (+00:03)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 439
Mitglied seit: 8.10.2005


QUOTE (Severin Fink @ Di 2.1.2007, 13:09)
QUOTE (Roberto Zehnder @ Di 2.1.2007, 13:03)
Musst du mit HTML / Java Script machen, da die Eingabe Clientseitig ist und nichts mit dem Server (PHP) zu tun hat.

Stimmt nicht ganz

Ja da geb ich dir Recht, man sollte alle Eingaben serverseitig nochmals prüfen, gilt auch für SQL-Injections.

Aber um den User zuerst mal zu hindern, kann man eine Java Script Lösung wählen und in einem 2. Schritt trotzdem nochmals serverseitig überprüfen, sollte dann aber auch wieder alle Angaben zurückspielen, damit der User nicht noch mal alle Angaben machen muss, nur weil er (aus Versehen) 4 Bilder gewählt hat.


--------------------
Wir von Zeweb bieten Ihnen einen rundum Service für die Homepage an.
Gerne übernehmen wir aber auch ihren PHP Programmier Auftrag.
=========================================================
Captcha Tutorials => stoppt-den-spam.info
Top
PMEmail PosterUsers Website
Top
 
Only4yu
#14 Geschrieben am: Di 2.01.2007, 14:08 (+00:11)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 190
Mitglied seit: 20.09.2006


Habe es jetzt so gelöst, aber er trägt nichts in die DB ein ! blink.gif

CODE

<html>

<head>
<script type='text/javascript'>

var docList;

var numValues = 5;
var maxValues = 2;
var liste = new Array(numValues);
var last = 0;
var i = 0;
var j = 0;

function onInit() {
docList = document.forms['myForm'].elements['eintrag'];
for (i = 0; i < numValues; i++) { liste[i] = 0; docList[i].checked = false; }
}



function check(pos) {

// alert(pos);

if(docList[pos - 1].checked && (liste[pos - 1] == 0)) {
// alert('Setzen');
j = 0;
for(i = 0; i < numValues; i++) {
 if(liste[i] > 0) { j++; liste[i]++; }
}
// alert('Davor: ' + liste[pos - 1]);
liste[pos - 1] = 1;
// alert('Danach: ' + liste[pos - 1]);
// alert('j-Ergebnis: ' + j);
if (j == maxValues) {

  // alert('Reduzieren');
 
 for(i = 0; i < liste.length; i++) {
  if(liste[i] == maxValues + 1) { liste[i] = 0; docList[i].checked = false; }
 }
}
} else
{
 // alert('Entfernen');
if(!docList[pos - 1].checked && (liste[pos -1] > 0)) {
 j = liste[pos - 1];
 liste[pos - 1] = 0
 for (i = 0; i < numValues; i++) {
  if (liste[i - 1] > j) { liste[i - 1]--; }
 }

}


}
return;
var text = ''
for (i = 0; i < numValues; i++) {
text += 'Position: ' + i + ', pos: ' + liste[i] + String.fromCharCode(13, 10);
}
alert(text);

}

</script>

</head>

<body onload='onInit();' >

<form name='myForm'>

<input type='checkbox' name='eintrag' onclick='check(1);' value='1'>Erstens</input><br/>
<input type='checkbox' name='eintrag' onclick='check(2);' value='2'>Zweitens</input><br/>
<input type='checkbox' name='eintrag' onclick='check(3);' value='3'>Drittens</input><br/>
<input type='checkbox' name='eintrag' onclick='check(4);' value='4'>Viertens</input><br/>
<input type='checkbox' name='eintrag' onclick='check(5);' value='5'>Fünftens</input><br/>


</form>
   <form action="test.php" method="post">

                     <tr>
                       <td colspan="2"><p class="Stil12">TEST</p>
                         <p class="Stil11"><span class="Stil14">Geben Sie hier Ihre Daten ein.</span> <br />
                       </p></td>
                     </tr>
                     <tr>
                       <td width="276"><p><strong>NAME</strong><br />
                         <input type="txt" maxlength="155" name="name" />
                         </p>
                         <p><br />
                         </p></td>
                       <td width="259"><p><strong>Vorname</strong><br />
                         <input type="txt" maxlength="155" name="vorname" />
                         </p>
                         <p><strong>Stra&szlig;e</strong><br />
                           <input type="txt" maxlength="155" name="straße" />
                         </p>
                         <p><strong>PLZ</strong><br />
                           <input type="txt" maxlength="155" name="plz" />
                         </p>
                         <p><strong>Ort</strong><br />
                           <input type="txt" maxlength="155" name="ort" />
                         </p>
                         <p><strong>e-mail</strong><br />
                           <input type="txt" maxlength="155" name="email" />
                           </p


                         <p><br />
                         </p></td>
                     </tr>
   
      <input name="submit" type="submit" value="Anmelden" />
</body>
</html>

</html>


Verarbeitungsdatei

CODE

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php

$link = mysql_connect('localhost', 'xxx', 'xxx');
if (!$link) {
   die('Verbindung nicht möglich : ' . mysql_error());
}

// benutze Datenbank
$db_selected = mysql_select_db('usr_xxx, $link);
if (!$db_selected) {
   die ('Kann Datenbank nicht benutzen : ' . mysql_error());
}

$name= $_POST['name'];
$vorname= $_POST['vorname'];
$straße= $_POST['straße'];
$plz= $_POST['plz'];
$ort= $_POST['ort'];
$email= $_POST['email'];
$IP=$_SERVER['REMOTE_ADDR'];
$eintrag=$_POST['eintrag'];





function PruefeMail($email) {
if (eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}", $email))
{ return TRUE; }
else
{ return FALSE; } }


if (PruefeMail($email)){
 //Wenn korrekt, wird der Eintrag angelegt und eine Meldung ausgegeben
 echo "Emailadresse ist korrekt";
 $sqladd = ("INSERT INTO testfahrer (name,vorname,straße,plz,ort,email,ip,Auto1) VALUES
 ('$name','$vorname','$straße','$plz','$ort','$email','$IP','$eintrag')");
 mysql_query($sqladd);
}else{
 echo "Emailadresse ist fehlerhaft";
}

?>


</body>
</html>
Top
PMEmail Poster
Top
 
Only4yu
#15 Geschrieben am: Di 2.01.2007, 14:18 (+00:10)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 190
Mitglied seit: 20.09.2006


aaah immer diese Tippfehler !
Habs gefunden ! tongue.gif

Aber immernoch trägt er nur einen der Ausgewählten felder ein! huh.gif
Top
PMEmail Poster
Top
 
Roberto Zehnder
#16 Geschrieben am: Di 2.01.2007, 14:23 (+00:05)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 439
Mitglied seit: 8.10.2005


QUOTE (Only4yu @ Di 2.1.2007, 14:18)
Aber immernoch trägt er nur einen der Ausgewählten felder ein! huh.gif

Das ist klar, weil du 1 Variable hast => eintrag

Und wenn ich nun 3 Auswahlen mache, dann wird nur die letzte übernommen, da die Variable immer wieder überschrieben wird.

Du solltest jedem Bild einen individuellen Namen geben und dafür dem value Wert einfach 1 zuweisen, dann per PHP abfragen, ist die Variable gültig, also == "1", dann ist diese Auswahl getätigt worden.

damit kann man dann auch gleich die Überprüfung machen, ob mehr als 3 gewählt wurden.


--------------------
Wir von Zeweb bieten Ihnen einen rundum Service für die Homepage an.
Gerne übernehmen wir aber auch ihren PHP Programmier Auftrag.
=========================================================
Captcha Tutorials => stoppt-den-spam.info
Top
PMEmail PosterUsers Website
Top
 
Only4yu
#17 Geschrieben am: Di 2.01.2007, 14:27 (+00:03)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 190
Mitglied seit: 20.09.2006


@ Robert

Heisst das, dass ich das mit dem Javascript dan sein lassen soll?
bzw. das es damit nicht funktioniert?
Top
PMEmail Poster
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/15774

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
email Marketing und Affiliate? Sten 204 2 Di 18.11.2008, 13:34
Ideen zur Verwertung von Email Adressen PH 459 7 Mi 5.11.2008, 11:47
Brauche dringend Rat, was soll diese email? alex72 357 8 So 26.10.2008, 12:54
Spam-Email: Selbstmord... Sacha 813 14 Mi 6.08.2008, 07:26
Gesucht Double Opt In Email-Adressen JOTO 241 0 Di 24.06.2008, 10:04
Schlanke Software für EMail-Marketing gesucht attila.rufius 243 3 Sa 14.06.2008, 09:41
Form to PDF to eMail kare 136 3 Do 5.06.2008, 14:38
Email Programmierer Thomas Mayer 280 8 Mi 21.05.2008, 14:25




Anzeige - [Hier werben / Mediadaten]



Anzeigen


[Hier werben / Mediadaten]