Shop-Hilfe.com
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 23.03.2003, 17:40   #1
TP-Senior
 
Benutzerbild von virtualmarkus
 
Registriert seit: Nov 2002
Ort: Wuppertal
virtualmarkus macht alles soweit korrekt

& [MySql] Gästebuch - Problem mit Überprüfung


hi leute!
heute war ein gästebuch skript an der reihe. bis jetzt hat auch alles gut funktioniert. allerdings checkt der nicht ordentlich die email addresse. da scheint es irgenteinen fehler zu geben. könnt ihr mal eben schauen?

danke,
Markus

PHP-Code:
<html>
<head>
  <title>G&auml;stebuch</title>
<link rel="stylesheet" href="style.css" >
</head>
<body>

<?
function email_check($email_addresse)
{
     if( 
ereg
("^[a-zA-Z0-9-]+(\.[_a-zA-Z0-9]+)*@[a-zA-Z0-9-]+\.([a-zA-Z]{2,3})$",
$email_addresse) )
     {
          return 
"true";
     }
     else
     {
          return 
"false";
     }
}

// Verbindung wird aufgebaut
include ("../verbind.php");

// Falls schon was im Formular stand
if (isset($_REQUEST['submit']))
    {
    
$name=$_REQUEST['name'];
    
$email=$_REQUEST['email'];
    
$icq=$_REQUEST['icq'];
    
$web=$_REQUEST['web'];
    
$kommentar=$_REQUEST['kommentar'];
    
$datum=date(d.".".m.".".Y." - ".H.":".i);

// HTML wird verboten, BB Codes
$kommentar str_replace ("[b]","<b>",$kommentar);
$kommentar str_replace ("[/b]","</b>",$kommentar);
$kommentar str_replace ("[i]","<i>",$kommentar);
$kommentar str_replace ("[/i]","</i>",$kommentar);
$kommentar str_replace ("[u]","<u>",$kommentar);
$kommentar str_replace ("[/u]","</u>",$kommentar);
$kommentar str_replace ("<","&lt;",$kommentar);
$kommentar str_replace (">","&gt;",$kommentar);


$email_checker=email_check($email);

if(
$email_checker)
{

    
$insert=mysql_query("INSERT INTO eintraege (datum,name, email, icq,web,kommentar) VALUES('$datum','$name','$email','$icq','$web','$kommentar')");
    if (
$insert)
        {
        echo 
"<b>Daten erfolgreich hinzugefügt:</b><br>
        Name: $name<br>
        Email: $email<br>
    ICQ: $icq<br>
    Web: $web<br>
        Kommentar: $kommentar<br>"
;
        echo 
"<a href=\"gb.php\">zur&uuml;ck zur Hauptseite</a>";
        }
    else
        {
        echo 
"Fehler beim hinzufügen der Daten.\n<br>\n";
    echo 
"<a href=\"gb.php\">zur&uuml;ck zur Hauptseite</a>";
        }
 }

else
{
echo 
"Die Email Addresse ist ungültig";
echo 
"<a href=\"gb.php\">zur&uuml;ck zur Hauptseite</a>";
}

}
// Wenn noch nichts im Formular stand

else{

$select=mysql_query("SELECT * from eintraege ORDER BY id DESC");
if (
$select and mysql_num_rows($select)!=0)
    {
        while (
$row=mysql_fetch_array($select))
        {
$kommentar=ereg_replace("(\r\n|\n|\r)""<br>"$row['kommentar']);

            echo 
"
            
<center>
<table class=\"content\" width=\"50%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\">
  <tr> 
    <td><a href=\"mailto:"
.$row['email']."\">".$row['name']."</a></td>

    <td><div align=\"right\"><p>"
.$row['datum']."</div></p></td>
  </tr>
  <tr> 
    <td colspan=\"2\"><p>"
.$kommentar."</p></td>
  </tr>
  <tr> 
    <td><p><img src=\"http://wwp.icq.com/scripts/online.dll?icq="
.$row['icq']."&img=5\" alt=\"green=online    red=offline\">".$row['icq']."&nbsp;|&nbsp;<a href=\"".$row['web']."\" target=\"_blank\">Homepage</a></td>
    <td><div align=\"right\"></div></p></td>






  </tr>
</table>
<br>
</center>"
;

       }
?>





<?
}
?>

<center>
 <form action="<?=$_SERVER['PHP_SELF']?>">
<table>
<tr><td>Name:</td><td><input type="text" name="name"></td></tr>
<tr><td>Email:</td><td><input type="text" name="email"></td></tr>
<tr><td>Icq:</td><td><input type="text" name="icq"></td></tr>
<tr><td>Web:</td><td><input type="text" name="web"></td></tr>
<tr><td>Message:</td><td><textarea name="kommentar" rows="10" cols="50"></textarea></td></tr>

</table>
<input type="submit" value="Abschicken" name="submit">
</form>
<?
}
?>
<div align="right"><p><a href="admin/gb.php">admin</a></p></div>
</body>
</html>
__________________
Markus Homepage
virtualmarkus ist offline   Mit Zitat antworten


Alt 23.03.2003, 18:10   #2
TP-Junior
 
Registriert seit: Mar 2003
Ort: Wuppertal
Monny1 macht alles soweit korrekt
Moin Markus!
Bin zwar auch kein PHP-Fachmann, wie du weisst, und finde deswegen auch den Fehler nicht, aber vielleicht kannst du mit einem funktionierenden Code was anfangen.
PHP-Code:
if(eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$email_adresse)) { 
return 
"true"
}
else {
return 
"false";

Hab zwar nur ein Bißchen gegoogelt, aber vielleicht konnte ich dir trotzdem helfen! Vielleicht findest du ja jetzt einen Fehler, oder nimmst einfach das Script!

cu Stefan
__________________
Gruß
Stefan

monny1.de
Monny1 @ klamm.de
Monny1 ist offline   Mit Zitat antworten
Alt 23.03.2003, 18:24   #3
TP-Senior
 
Benutzerbild von virtualmarkus
 
Registriert seit: Nov 2002
Ort: Wuppertal
virtualmarkus macht alles soweit korrekt
Cool, es funktioniert. Danke!
__________________
Markus Homepage
virtualmarkus ist offline   Mit Zitat antworten
Alt 23.03.2003, 18:32   #4
Registered User
 
Registriert seit: Feb 2002
Radoo.de macht alles soweit korrekt
.

Geändert von Radoo.de (09.09.2003 um 22:23 Uhr).
Radoo.de ist offline   Mit Zitat antworten
Alt 23.03.2003, 18:33   #5
Registered User
 
Registriert seit: Feb 2002
Radoo.de macht alles soweit korrekt
.

Geändert von Radoo.de (09.09.2003 um 22:23 Uhr).
Radoo.de ist offline   Mit Zitat antworten
Alt 23.03.2003, 18:46   #6
TP-Senior
 
Benutzerbild von virtualmarkus
 
Registriert seit: Nov 2002
Ort: Wuppertal
virtualmarkus macht alles soweit korrekt
ich hab jetzt dein regex übernommen.

ich hab jetzt noch eine variable in die if schleife eingefügt. die variable $icq soll nur zahlen enthalten und es soll auch möglich sein das gar nichts eingegeben wird. allerdings komm ich damit nicht weiter.

if((eregi(^[a-zA-Z0-9-]+(.[_a-zA-Z0-9]+)*@[a-zA-Z0-9-]+.([a-zA-Z]{2,6})$",$email)) && (eregi("^[0-9]",$icq) or $icq==""))
{
// richtige angabe
}
else
{
//meldung bei falscher eingabe
}
__________________
Markus Homepage
virtualmarkus ist offline   Mit Zitat antworten
Alt 23.03.2003, 18:58   #7
Registered User
 
Registriert seit: Feb 2002
Radoo.de macht alles soweit korrekt
.

Geändert von Radoo.de (09.09.2003 um 22:36 Uhr).
Radoo.de ist offline   Mit Zitat antworten
Alt 23.03.2003, 20:11   #8
TP-Senior
 
Benutzerbild von virtualmarkus
 
Registriert seit: Nov 2002
Ort: Wuppertal
virtualmarkus macht alles soweit korrekt
ok, das mit dem icq geht...aber das mit der email nicht. kannste nochmal drüber gucken?

danke

PHP-Code:
<html>
<head>
  <title>G&auml;stebuch</title>
<link rel="stylesheet" href="style.css" >
</head>
<body>

<?
function email_check($email_addresse)
{
     if( 
ereg("^[a-zA-Z0-9-]+(.[_a-zA-Z0-9]+)*@[a-zA-Z0-9-]+.([a-zA-Z]{2,6})$",$email_addresse) )
     {
          return 
"TRUE";
     }
     else
     {
          return 
"FALSE";
     }
}

// Verbindung wird aufgebaut
include ("../verbind.php");

// Falls schon was im Formular stand
if (isset($_REQUEST['submit']))
    {

$error FALSE;
if(
email_check($_REQUEST['email']) == FALSE) {
$error['email'] = TRUE;
}
if(
is_numeric($icq) !== TRUE && $icq!="") { //ganz recht, hier braucht es kein RegEx
$error['icq'] = TRUE;
}

    
$name=$_REQUEST['name'];
    
$email=$_REQUEST['email'];
    
$icq=$_REQUEST['icq'];
    
$web=$_REQUEST['web'];
    
$kommentar=$_REQUEST['kommentar'];
    
$datum=date(d.".".m.".".Y." - ".H.":".i);

// HTML wird verboten, BB Codes
$kommentar str_replace ("[b]","<b>",$kommentar);
$kommentar str_replace ("[/b]","</b>",$kommentar);
$kommentar str_replace ("[i]","<i>",$kommentar);
$kommentar str_replace ("[/i]","</i>",$kommentar);
$kommentar str_replace ("[u]","<u>",$kommentar);
$kommentar str_replace ("[/u]","</u>",$kommentar);
$kommentar str_replace ("<","&lt;",$kommentar);
$kommentar str_replace (">","&gt;",$kommentar);
if(
$error == FALSE)


    
$insert=mysql_query("INSERT INTO eintraege (datum,name, email, icq,web,kommentar) VALUES('$datum','$name','$email','$icq','$web','$kommentar')");
    if (
$insert)
        {
        echo 
"<b>Daten erfolgreich hinzugefügt:</b><br>
        Name: $name<br>
        Email: $email<br>
    ICQ: $icq<br>
    Web: $web<br>
        Kommentar: $kommentar<br>"
;
        echo 
"<a href=\"gb.php\">zur&uuml;ck zur Hauptseite</a>";
        }
    else
        {
        echo 
"Fehler beim hinzufügen der Daten.\n<br>\n";
    echo 
"<a href=\"gb.php\">zur&uuml;ck zur Hauptseite</a>";
        }
 }

elseif(
$error == TRUE)
{
echo 
"Eine deiner Angaben ist ungültig\n<br>Bitte versuche es erneut!<br>\n";
echo 
"<a href=\"gb.php\">zur&uuml;ck zur Hauptseite</a>";
}


// Wenn noch nichts im Formular stand

else{

$select=mysql_query("SELECT * from eintraege ORDER BY id DESC");
if (
$select and mysql_num_rows($select)!=0)
    {
        while (
$row=mysql_fetch_array($select))
        {
$kommentar=ereg_replace("(\r\n|\n|\r)""<br>"$row['kommentar']);

            echo 
"
            
<center>
<table class=\"content\" width=\"50%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\">
  <tr> 
    <td><a href=\"mailto:"
.$row['email']."\">".$row['name']."</a></td>

    <td><div align=\"right\"><p>"
.$row['datum']."</div></p></td>
  </tr>
  <tr> 
    <td colspan=\"2\"><p>"
.$kommentar."</p></td>
  </tr>
  <tr> 
    <td><p>
<img src=\"http://wwp.icq.com/scripts/online.dll?icq="
.$row['icq']."&img=5\" alt=\"green=online    red=offline\" height=\"18\" width=\"18\">".$row['icq']."&nbsp;|&nbsp
<a href=\""
.$row['web']."\" target=\"_blank\">Homepage</a></td>
    <td><div align=\"right\"></div></p></td>
  </tr>
</table>
<br>
</center>"
;

       }
?>

<?
}
?>

<center>
 <form action="<?=$_SERVER['PHP_SELF']?>">
<table>
<tr><td>Name:</td><td><input type="text" name="name"></td></tr>
<tr><td>Email:</td><td><input type="text" name="email"></td></tr>
<tr><td>Icq:</td><td><input type="text" name="icq"></td></tr>
<tr><td>Web:</td><td><input type="text" name="web"></td></tr>
<tr><td>Message:</td><td><textarea name="kommentar" rows="10" cols="50"></textarea></td></tr>

</table>
<input type="submit" value="Abschicken" name="submit">
</form>
<?
}
?>
<div align="right"><p><a href="admin/gb.php">admin</a></p></div>
</body>
</html>
__________________
Markus Homepage
virtualmarkus ist offline   Mit Zitat antworten
Alt 23.03.2003, 20:36   #9
Registered User
 
Registriert seit: Feb 2002
Radoo.de macht alles soweit korrekt
.

Geändert von Radoo.de (09.09.2003 um 22:35 Uhr).
Radoo.de ist offline   Mit Zitat antworten
Alt 23.03.2003, 21:01   #10
TP-Senior
 
Benutzerbild von virtualmarkus
 
Registriert seit: Nov 2002
Ort: Wuppertal
virtualmarkus macht alles soweit korrekt
mmh...das problem mit der email ist aber immer noch nicht gelöst....
__________________
Markus Homepage
virtualmarkus ist offline   Mit Zitat antworten
Alt 23.03.2003, 21:13   #11
Registered User
 
Registriert seit: Feb 2002
Radoo.de macht alles soweit korrekt
.

Geändert von Radoo.de (09.09.2003 um 22:35 Uhr).
Radoo.de ist offline   Mit Zitat antworten
Alt 23.03.2003, 21:15   #12
Registered User
 
Registriert seit: Feb 2002
Radoo.de macht alles soweit korrekt
.

Geändert von Radoo.de (09.09.2003 um 22:35 Uhr).
Radoo.de ist offline   Mit Zitat antworten
Alt 23.03.2003, 21:28   #13
TP-Senior
 
Benutzerbild von virtualmarkus
 
Registriert seit: Nov 2002
Ort: Wuppertal
virtualmarkus macht alles soweit korrekt
also bei mir funktioniert es nicht.
der code ist bei mir nun wiefolgt:

PHP-Code:
<html>
<head>
  <title>G&auml;stebuch</title>
<link rel="stylesheet" href="style.css" >
</head>
<body>

<?
function email_check($email_addresse)
{
     if( 
ereg("^[a-zA-Z0-9-]+(.[_a-zA-Z0-9]+)*@[a-zA-Z0-9-]+.([a-zA-Z]{2,6})$
"
,$email_addresse) )
     {
          return 
TRUE;
     }
     else
     {
          return 
FALSE;
     }
}


// Falls schon was im Formular stand
if (isset($_REQUEST['submit']))
    {

    
$name=$_REQUEST['name'];
    
$email=$_REQUEST['email'];
    
$icq=$_REQUEST['icq'];
    
$web=$_REQUEST['web'];
    
$kommentar=$_REQUEST['kommentar'];
    
$datum=date(d.".".m.".".Y." - ".H.":".i);

    
$error='';
    if(
email_check($email) == FALSE) {
        echo 
$error['email'] = TRUE;
    }
    if(!
is_numeric($icq) OR $icq=="") {
        
$error['icq'] = TRUE;
    }

    
// HTML wird verboten, BB Codes
    
$kommentar str_replace ("[b]","<b>",$kommentar);
    
$kommentar str_replace ("[/b]","</b>",$kommentar);
    
$kommentar str_replace ("[i]","<i>",$kommentar);
    
$kommentar str_replace ("[/i]","</i>",$kommentar);
    
$kommentar str_replace ("[u]","<u>",$kommentar);
    
$kommentar str_replace ("[/u]","</u>",$kommentar);
    
$kommentar str_replace ("<","&lt;",$kommentar);
    
$kommentar str_replace (">","&gt;",$kommentar);


    if( 
is_array($error) )
    {
        echo 
"Eine deiner Angaben ist ungültig\n<br>Bitte versuche es erneut!<br>\n";
        echo 
"<a href=\"gb.php\">zur&uuml;ck zur Hauptseite</a>";
    }

    elseif( empty(
$error) )
    {
        
$insert=mysql_query("   INSERT INTO eintraege (datum, name, email, icq, web, kommentar) 
                             VALUES('$datum','$name','$email','$icq','$web','$kommentar')"
);
        if (
$insert)
        {
            echo 
"<b>Daten erfolgreich hinzugefügt:</b><br>
            Name: $name<br>
            Email: $email<br>
            ICQ: $icq<br>
            Web: $web<br>
            Kommentar: $kommentar<br>"
;
            echo 
"<a href=\"gb.php\">zur&uuml;ck zur Hauptseite</a>";
        }
        else
        {
            echo 
"Fehler beim hinzufügen der Daten.\n<br>\n";
            echo 
"<a href=\"gb.php\">zur&uuml;ck zur Hauptseite</a>";
        }
    }
 }


elseif( 
is_array($error) )

{
echo 
"Eine deiner Angaben ist ungültig\n<br>Bitte versuche es erneut!<br>\n";
echo 
"<a href=\"gb.php\">zur&uuml;ck zur Hauptseite</a>";
}


// Wenn noch nichts im Formular stand

else{

$select=mysql_query("SELECT * from eintraege ORDER BY id DESC");
if (
$select and mysql_num_rows($select)!=0)
    {
        while (
$row=mysql_fetch_array($select))
        {
$kommentar=ereg_replace("(\r\n|\n|\r)""<br>"$row['kommentar']);

            echo 
"
            
<center>
<table class=\"content\" width=\"50%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\">
  <tr> 
    <td><a href=\"mailto:"
.$row['email']."\">".$row['name']."</a></td>

    <td><div align=\"right\"><p>"
.$row['datum']."</div></p></td>
  </tr>
  <tr> 
    <td colspan=\"2\"><p>"
.$kommentar."</p></td>
  </tr>
  <tr> 
    <td><p>
<img src=\"http://wwp.icq.com/scripts/online.dll?icq="
.$row['icq']."&img=5\" alt=\"green=online    red=offline\" height=\"18\" width=\"18\">".$row['icq']."&nbsp;|&nbsp
<a href=\""
.$row['web']."\" target=\"_blank\">Homepage</a></td>
    <td><div align=\"right\"></div></p></td>
  </tr>
</table>
<br>
</center>"
;

       }
?>

<?
}
?>

<center>
 <form action="<?=$_SERVER['PHP_SELF']?>">
<table>
<tr><td>Name:</td><td><i