• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[PHP] Guestbook

ich hab das mit der Fehlermeldung noch etwas abgeändert. es funzt net. es gibt auch keine fehlermeldung. ich bin ratlos.
hier der code:
PHP:
<html>
<head>
<title>:: FEHLER</title>
<link rel="stylesheet" href="style.css" type="text/css">
<script language="JavaScript">
function ende(){
opener.location.reload();
self.close();
}
</script>
</head>
<body>
<?php
$smileys = array(":)", ";)", ":(", ":P", ":|", ":D", "^^", "8o", "8)");

function countSmiley ($input, $smile){ 
 $anzahl = 0;
 while(strpos($input , $smile) !== false){
  $input = substr($input, (strpos($input , $smile) + 1));
  $i++;
 }
return $anzahl;
}

$_POST["name"];
$_POST["email"];
$_POST["web"];
$_POST["titel"];
$_POST["text"];

//Überprüfung der Eingaben
$fehler = "Fehler:";
if($name == ""){
 $fehler .= "<br>- Name: Ungültiger Wert";
}
if($titel == ""){
 $fehler .= "<br>- Titel: Ungültiger Wert";
}
if($text == ""){
 $fehler .= "<br>- Text: Ungültiger Wert";
}

$count = 0;
foreach ($smileys as $s){
 $count = $count + countSmiley ($input , $s);
}
if(count >= 10){
 $fehler .= "<br>- Es wurden zu viele Smileys eingegeben";
}

if($fehler != "Fehler:"){
 echo "$fehler";
}

//Definieren der Variablen $beitrag zu einem Text
else{
 //Angleichen des Textes
 $name = str_replace("<", "<", $name);
 $name = str_replace(">", ">", $name);
 $email = str_replace("<", "<", $email);
 $email = str_replace(">", ">", $email);
 $web = str_replace("<", "<", $web);
 $web = str_replace(">", ">", $web);
 $titel = str_replace("<", "<", $titel);
 $titel = str_replace(">", ">", $titel);
 $text = str_replace("<", "<", $text);
 $text = str_replace(">", ">", $text);
 $text = stripslashes($text);
 $text = str_replace("\n", "<br>", $text);


  //Die Smileys
  $text = str_replace(":)", "<img src='images/smileys/1.gif' border='0'>", $text);
  $text = str_replace(";)", "<img src='images/smileys/2.gif' border='0'>", $text);
  $text = str_replace(":(", "<img src='images/smileys/3.gif' border='0'>", $text);
  $text = str_replace(":P", "<img src='images/smileys/4.gif' border='0'>", $text);
  $text = str_replace(":|", "<img src='images/smileys/5.gif' border='0'>", $text);
  $text = str_replace(":D", "<img src='images/smileys/6.gif' border='0'>", $text);
  $text = str_replace("^^", "<img src='images/smileys/7.gif' border='0'>", $text);
  $text = str_replace("8o", "<img src='images/smileys/8.gif' border='0'>", $text);
  $text = str_replace("8)", "<img src='images/smileys/9.gif' border='0'>", $text);

 $beitrag = "<center><div class='eintrag'><b>$titel</b>";

 if($email != "" && substr_count($email, "@") == 1 && substr_count($email, ".") >= 1)
  $beitrag .= "<br><a href='mailto://$email'>$name</a>";
 else
  $beitrag .= "<br>$name";

 if($web != "" && $web != "http://" && substr_count($web, ".") >= 1 && substr_count($web, "http://") == 1)
  $beitrag .= "<br><a href='$web' target='_blank'>$web</a>";

 $beitrag .= "<hr noshade>$text</div></center>\n<br>\n";

 //Laden der Beitrags-Datei gbook.txt und anhängen
 $temp = "gbook.txt";
 $datei = fopen($temp,"a");
 fputs ($datei, $beitrag);
 fclose ($datei);

 //Schliessen des Fensters und neuladen des Openers
 echo "<script language='JavaScript'>ende();</script>";
}
?>
</body>
</html>

eine frage noch: wo ist $s definiert?
 
Zuletzt bearbeitet:
$input muss natürlich $text heissen; sorry.
edit::: und count muss $count heissen...

edit::: $s wird in der Foreach Schleife definiert:
Dies bedeutet einfach, dass alle Smileys, die im Array enthalten sind, der Reihe nach durchlaufen und der variable $s zugewiesen werden.
Danach wird für jedes s (also jeden Smiley) die Funktion countSmileys aufgerufen. Diese gibt zurück, wievielmal der entspr. Smiley im String $text vorkommt.
Diese Zahl wird $count zugewiesen.
Somit enthält $count am Schluss die Anzahl aller Smileys.

Alles klar :) ?
 
Zuletzt bearbeitet:
Klar, ich habe auch vergessen, die Anzahl hochzuzählen. Also anstatt
$i++ (in der Funktion) $anzahl++ einsetzen...

Mühsam, so ohne testen zu können drauflosskripten :(
 
weiß sonst noch jemand, wo es was zu verbesern gäbe??
hier nochmal der [link]

edit: ich möchte vielleicht ein zeichenlimit einbauen, was für eine zahle haltet ihr für geeignet?
 
Zuletzt bearbeitet:
Zurück
Oben