• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Funktion srtpos() funktioniert nicht

Status
Für weitere Antworten geschlossen.

Dark D.

Neues Mitglied
Hallo zusammen,

ich hätte es gerne, dass man in einem ein Formularfeld für ein Gästebuch entweder seine e-mail-Adresse oder seine HomePage angeben kann und abhängig davon ungefähr so eine Zeile entsteht:

"Beispiel([email protected]) schrieb am Beispiel um Beispiel:"

Wenn der User eine HomePage angegeben hat, soll aus ´$_POST['www']´
´<a href="http://$_POST['www']">´ werden, andernfalls soll
´<a href="mailto:$_POST['www']">´ draus werden.

E-mail-Adressen sollen aber, bevor das Formular verarbeitet wird noch ein mal geprüft werden:
PHP:
if (strpos($_POST['www'], '@') != 1) {
     $muster = "/^[a-zA-Z0-9-_.]+@[a-zA-z0-9-_.]+\.[a-z]{2,4}$/";
       if (preg_match($muster, $_POST['www']) == 0) {
            $fehler = true;
            $fehlertext .= "Die e-mail-Adresse ist ung&uuml;ltig!<br />";
       }
}
Aber jedes mal, wenn man eine WebSeite angibt wird die $fehlertext durch
PHP:
if ($fehler == true) {
     echo $fehlertext;
}
ausgegeben.


Ist strpos() falsch und wenn ja, welche Funktion soll ich denn dann nehmen?
Hier ist noch der Link zu der Seite: Dark D.´s HomePage

mfG,
Markus
 
ich versteh' nicht, weswegen du da so einen aufwand draus machst...

PHP:
//der überprüfte wert aus $_POST['www'] wird in die datenbank geschrieben
$sql = "INSERT INTO table VALUES('".$_POST['www']."')";
//und abschicken

//ausgabe
while($row = mysql_fetch_array($verbindungskennung))
   {
   echo '<a href="'.$row['www'].'" target="_blank">webseite</a><p>';
   }

Nils aka XraYSoLo
 
PHP:
$www = (empty($_POST['www'])) ? "" : $_POST['www'];
$prefix = "http://";
if(preg_match('/^[a-zA-Z0-9-_.]+@[a-zA-z0-9-_.]+\.[a-z]{2,4}$/',$www)) {
  $prefix = "mailto:";
}
echo $prefix.$www;
 
Danke für die schnellen antworten!;Jump
Der Ansatz von Frank war genau das, was ich gesucht habe, DANKE!
 
So, jetzt klappt dank Frank das www-Feld und schon gibt es ein neues Problem:
PHP:
    $eintrag = "insert into gbuch() values ('', '$name', '$www', '$datum', '$zeit', '$comm')";
    include ("zugriff.php");
     if (mysql_query($eintrag)) {
           echo "Dateneingabe erfolgreich -- eventuell ist ein reload nötig, um den Eintrag zu sehen";
     }
     else {
            echo "Dateneingabe nicht erfolgreich -- versuchen Sie es noch einmal.";
     }
    mysql_close();
Egal, wie oft ich es versuche, es gibt immer nur aus:
"Dateneingabe nicht erfolgreich -- versuchen Sie es noch einmal."
 
das hier

PHP:
<?php
$eintrag = "insert into gbuch() values ('', '$name', '$www', '$datum', '$zeit', '$comm')";
?>

kann nicht gehen.
sollte erstmal in

PHP:
<?php
$eintrag = "insert into gbuch() values ('', '".$_POST['name']."', '".$_POST['www']."', '".$_POST['datum']."', '".$_POST['zeit']."', '".$_POST['comm']."')";
?>

umgeändert werden.

--> register_globals

Nils aka XraYSoLo
 
Dass heißt, ich kann aus stinknormalen Variablen POST-Variablen machen, einfach durch
"$variable = $_POST['variable']"???
 
Schon wieder ein funktioniert es nicht :-(.
PHP:
<?php    
if (preg_match($muster, $_POST['www'])) {
    $www = "<a href=\"mailto:".$_POST['www']."\">$_POST[www]</a>";
}
elseif (!preg_match($muster, $_POST['www']) && eregi('http://',   $_POST['www'])) {
         $www = "<a href=\"".$_POST['www']."\" target=\"_new\">$_POST[www]</a>";
}
else {
      $www = "<a href=\"http://".$_POST['www']."\" target=\"_new\">$_POST[www]</a>";
}
?>
In der Klammer wird nur die e-mail-Adresse bzw. die HomePage angezeigt, nicht der Link dazu.
Tut mir wirklich Leid, dass ich hier so oft nachfragen muss.

EDIT: Hat sich erledigt, Dank an euch alle!
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben