07. januar 2004 - 15:02Der er
22 kommentarer og 1 løsning
stop ved ingen @
Hejsa
jeg har dette script
<?php // Vis alle kommentarer for en nyhed include_once("../mysql_funktioner.php"); aabn_forbindelse_og_vaelgdb(); if ($_POST["id"]) { $nyhedsid = $_POST["id"]; } else { $nyhedsid = $_GET["id"]; }
if (!$nyhedsid) { echo "Intet nyheds-id angivet."; } else {
if ($_POST[add_comment]) { $navn = $_POST["navn"]; $email = $_POST["mail"]; $kommentar = addslashes($_POST[kommentar]); $addcomment = mysql_query("insert into kommentarer (nyhedsid, forfatternavn, forfattermail, kommentar, dato) VALUES ('".$nyhedsid."','".$navn."','".$mail."','".$kommentar."',NOW())") or die(mysql_error()); echo "Din kommentar er tilføjet. Mange tak.<br /><br />"; } $getcomments = mysql_query("select id, forfatternavn, forfattermail, dato, kommentar from kommentarer where nyhedsid='".$nyhedsid."'"); if (mysql_num_rows($getcomments) > 0) { while ($r = mysql_fetch_array($getcomments)) { echo "<a href='mailto:'.$r[forfattermail].''>".$r[forfatternavn]."</a> - ".$r[dato]."<br />"; echo stripslashes($r[kommentar])."<br /><br />"; } } else { echo "Ingen kommentarer tilføjet til denne nyhed endnu."; } ?> <hr> <form action="<? $_SERVER[PHP_SELF];?>" method="post"> <input type="hidden" name="id" value="<? $nyhedsid;?>"> Dit navn:<br> <input type="text" name="navn" class="input"><br><br> Din e-mail adresse:<br> <input type="text" name="email" class="input"><br><br> Kommentar:<br> <textarea cols="0" rows="5" name="kommentar" class="input"></textarea><br><br> <div align="center"><input type="submit" name="add_comment" value=" - Tilføj - " class="button"> </form> <? } ?>
er der nogen der kan gøre sådan at hvis der ingen @ er i email så skal den udskrive en fejl har snrt prøvet alt og kan bare ikke få det til og virke
Jeg bruger selv følgend regulærre udtryk til at validerer email adresser, men jeg vil på ingen måde stå inde for at den er 100% rigtig!
if (!preg_match_all('/^([a-zA-Z0-9]+)([a-zA-Z0-9._-]*|[a-zA-Z0-9]*)@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]*([a-zA-Z0-9]))+$/', $email, $matches)) { // Email adressen er ikke gyldig } else { // Email adressen er gyldig }
<?php // Vis alle kommentarer for en nyhed include_once("../mysql_funktioner.php"); aabn_forbindelse_og_vaelgdb(); if ($_POST["id"]) { $nyhedsid = $_POST["id"]; } else { $nyhedsid = $_GET["id"]; }
if (!$nyhedsid) { echo "Intet nyheds-id angivet."; } else {
if (!preg_match_all('/^([a-zA-Z0-9]+)([a-zA-Z0-9._-]*|[a-zA-Z0-9]*)@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]*([a-zA-Z0-9]))+$/', $email, $matches)) { echo"Email adressen er ikke gyldig";// Email adressen er ikke gyldig } else { // Email adressen er gyldig
if ($_POST[add_comment]) { $navn = $_POST["navn"]; $email = $_POST["mail"]; $kommentar = addslashes($_POST[kommentar]); $addcomment = mysql_query("insert into kommentarer (nyhedsid, forfatternavn, forfattermail, kommentar, dato) VALUES ('".$nyhedsid."','".$navn."','".$mail."','".$kommentar."',NOW())") or die(mysql_error()); echo "Din kommentar er tilføjet. Mange tak.<br /><br />"; } } $getcomments = mysql_query("select id, forfatternavn, forfattermail, dato, kommentar from kommentarer where nyhedsid='".$nyhedsid."'"); if (mysql_num_rows($getcomments) > 0) { while ($r = mysql_fetch_array($getcomments)) { echo "<a href='mailto:'.$r[forfattermail].''>".$r[forfatternavn]."</a> - ".$r[dato]."<br />"; echo stripslashes($r[kommentar])."<br /><br />"; } } else { echo "Ingen kommentarer tilføjet til denne nyhed endnu."; }
<?php // Vis alle kommentarer for en nyhed include_once("../mysql_funktioner.php"); aabn_forbindelse_og_vaelgdb(); if ($_POST["id"]) { $nyhedsid = $_POST["id"]; } else { $nyhedsid = $_GET["id"]; }
if (!$nyhedsid) { echo "Intet nyheds-id angivet."; } else {
if ($_POST[add_comment]) { $navn = $_POST["navn"]; $email = $_POST["mail"]; if (!preg_match_all('/^([a-zA-Z0-9]+)([a-zA-Z0-9._-]*|[a-zA-Z0-9]*)@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]*([a-zA-Z0-9]))+$/', $email, $matches)) { echo"Email adressen er ikke gyldig"; } else { $kommentar = addslashes($_POST[kommentar]); $addcomment = mysql_query("insert into kommentarer (nyhedsid, forfatternavn, forfattermail, kommentar, dato) VALUES ('".$nyhedsid."','".$navn."','".$mail."','".$kommentar."',NOW())") or die(mysql_error()); echo "Din kommentar er tilføjet. Mange tak.<br /><br />"; } } $getcomments = mysql_query("select id, forfatternavn, forfattermail, dato, kommentar from kommentarer where nyhedsid='".$nyhedsid."'"); if (mysql_num_rows($getcomments) > 0) { while ($r = mysql_fetch_array($getcomments)) { echo "<a href='mailto:'.$r[forfattermail].''>".$r[forfatternavn]."</a> - ".$r[dato]."<br />"; echo stripslashes($r[kommentar])."<br /><br />"; } } else { echo "Ingen kommentarer tilføjet til denne nyhed endnu."; } ?> <hr> <form action="<? $_SERVER[PHP_SELF];?>" method="post"> <input type="hidden" name="id" value="<? $nyhedsid;?>"> Dit navn:<br> <input type="text" name="navn" class="input"><br><br> Din e-mail adresse:<br> <input type="text" name="email" class="input"><br><br> Kommentar:<br> <textarea cols="0" rows="5" name="kommentar" class="input"></textarea><br><br> <div align="center"><input type="submit" name="add_comment" value=" - Tilføj - " class="button"> </form> <? } ?>
Prøv den her, rettet nogen ting som så lidt suspekte ud :) <?php // Vis alle kommentarer for en nyhed include_once("../mysql_funktioner.php"); aabn_forbindelse_og_vaelgdb(); if ($_POST["id"]) { $nyhedsid = $_POST["id"]; } else { $nyhedsid = $_GET["id"]; }
if (!$nyhedsid) { echo "Intet nyheds-id angivet."; } else {
if ($_POST[add_comment]) { $navn = $_POST["navn"]; $email = $_POST["mail"]; if (!preg_match_all('/^([a-zA-Z0-9]+)([a-zA-Z0-9._-]*|[a-zA-Z0-9]*)@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]*([a-zA-Z0-9]))+$/', $email, $matches)) { echo"Email adressen er ikke gyldig"; } else { $kommentar = addslashes($_POST[kommentar]); $addcomment = mysql_query("insert into kommentarer (nyhedsid, forfatternavn, forfattermail, kommentar, dato) VALUES ('$nyhedsid','$navn','$email','$kommentar',NOW())") or die(mysql_error()); echo "Din kommentar er tilføjet. Mange tak.<br /><br />"; } } $getcomments = mysql_query("select id, forfatternavn, forfattermail, dato, kommentar from kommentarer where nyhedsid='$nyhedsid'"); if (mysql_num_rows($getcomments) > 0) { while ($r = mysql_fetch_array($getcomments)) { echo "<a href='mailto:{$r[forfattermail]}'>{$r[forfatternavn]}</a> - {$r[dato]}<br />"; echo stripslashes($r[kommentar])."<br /><br />"; } } else { echo "Ingen kommentarer tilføjet til denne nyhed endnu."; } ?> <hr> <form action="<?php echo $_SERVER[PHP_SELF]; ?>" method="post"> <input type="hidden" name="id" value="<?php echo $nyhedsid; ?>"> Dit navn:<br> <input type="text" name="navn" class="input"><br><br> Din e-mail adresse:<br> <input type="text" name="email" class="input"><br><br> Kommentar:<br> <textarea cols="0" rows="5" name="kommentar" class="input"></textarea><br><br> <div align="center"><input type="submit" name="add_comment" value=" - Tilføj - " class="button"> </form> <? } ?>
HeHe, mange års erfaring hjælper ;-) Så at arrayet af matches fra detregulære udtryk var rimlig tomt. Det betyder at den variabel der blev tjekket i sikkert også var tom, og så backtrackede jeg variablen $email baglæns gennem koden til der var noget som ikke passede.
okay på den måde så forstår jeg det men du skal havde tak for hjælpem
Synes godt om
Slettet bruger
07. januar 2004 - 17:57#19
Nu er der givet svar, men jeg vil lige bemærke, at + også er et gyldigt tegn ihvertfald i brugerdelen af en email-adresse. Der er måske også andre gyldige tegn, tefckes regex ignorerer.
"men jeg vil på ingen måde stå inde for at den er 100% rigtig!" Jeg er godt klar over den ikke er fuldstændig, men jeg havde i sin tid ikke lyst til at sidde og glo en RFC igennem for at få den 100% korrekt :)
Synes godt om
Slettet bruger
07. januar 2004 - 18:33#21
Helt iorden, jeg fangede den også bare, fordi jeg netop har et par emailadresser med +.
Fidusen er nemlig, at hvis der bliver sendt til en bruger sandbox+exp på min server, så bliver mailen afleveret i brugeren sandbox's mailbox, og mit filter kan derefter bruge modtageradressen til en hel masse sjov.
Jeg kan derfor ofte se på spam, hvor de har fået min adresse fra.
Men du skal ikke være ked af, at du glemte det lille +, for de såkaldt professionelle, der har lavet jubiis brugersystem kan heller ikke finde ud af det. De har også glemt den.
Her på experten har de dog styr på sagerne. Endnu et plus til E ;-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.