Zur Navigation

Spruchgenerator

1 Don

Hallo!

Also ich hab da mal seiner Zeit diese Seite gefunden:
http://www.sloganizer.net/

Nun würde ich gerne auf meine Homepage etwas ähnliches, aber mit anderem Inhalt einbauen.
Heisst konkret: Besucher gibt in ein Textfeld seinen Namen ein und sollte auf einen Button klicken, wodurch ein Spruch mit seinem Namen ausgegeben wird.
Kenn mich leider mit php nicht aus, also wäre echt super wenn mir jemand dadbei helfen könnte und mir sagt, wie man das macht.

Vielen Dank im vorraus

21.09.2006 20:54

2 Jörg

Hallo Don,

dazu definierst du ein Array $slogans mit verschiedenen Sprüchen - mithilfe von srand() und rand() kann dann ein Zufallsspruch ausgewählt und an den vom Formular übermittelten Wert ($_REQUIRE['name']) angehängt werden

<?php

$slogans[0] = "blabla";
$slogans[1] = "blubblub";
$slogans[2] = "laberlaber";
$slogans[3] = "undsoweiter";

srand(time());
$random = rand(0, count($slogans) - 1);

echo $_REQUEST['name'] . ' ' . $slogans[$random];

?>

21.09.2006 21:26 | geändert: 21.09.2006 23:52

3 Rudy

echo $_REQUIRE['name'] . ' ' . $slogans[$random];
Du meinst sicher $_REQUEST['name'] :)

21.09.2006 23:03

4 Don

Hi Jörg

Wäre nicht schlecht, wenn die Sprüche nicht mit dem Namen beginnen müssten...
Der Name sollte eigentlich je nach Spruch an die richtige Position
Kann man irgendwie schon im array die position des namens mit einer variable festlegen?

und auch wenn es eine dumme frage ist: wie bau ich das dann im endeffekt in eine seite ein ein?

21.09.2006 23:06

5 Jörg

@ Rudy
ja, natürlich $_REQUEST['name'] :)

Zitat von Don
Wäre nicht schlecht, wenn die Sprüche nicht mit dem Namen beginnen müssten...
Der Name sollte eigentlich je nach Spruch an die richtige Position
Kann man irgendwie schon im array die position des namens mit einer variable festlegen?

Ja, das geht natürlich auch, man muss das ganze nur etwas umstellen:

<?php

$name = $_REQUEST['name'];

$slogans[0] = "blabla $name";
$slogans[1] = "blub $name blub";
$slogans[2] = "$name laberlaber";
$slogans[3] = "$name undsoweiter $name";

srand(time());
$random = rand(0, count($slogans) - 1);

echo $slogans[$random];

?>

und auch wenn es eine dumme frage ist: wie bau ich das dann im endeffekt in eine seite ein ein?

Den oben aufgeführten Code baust du in die Seite ein, auf welche das Formular weiterleitet, an die Stelle, an der der Slogan ausgegeben werden soll. Wenn das Formular z.B. so ausschaut:

<form method="post" action="slogan.php">
<input type="text" name="name" value="" />
<input type="button" name="button" value="Slogan ausgeben" />
</form>

... in eine Seite slogan.php

21.09.2006 23:50 | geändert: 21.09.2006 23:50

6 Rudy

Wäre nicht schlecht, wenn die Sprüche nicht mit dem Namen beginnen müssten...

Das ginge in Erweiterung zu Jörgs Lösungsvorschlag beispielsweise so:

<?php
  
  $slogans[0] = "bla".$_REQUEST['name']."bla";
  $slogans[1] = "blubblub, ".$_REQUEST['name'];
  $slogans[2] = $_REQUEST['name']." bla"
  ....
  
  srand(time());
  $random = rand(0, count($slogans) - 1);

  echo $slogans[$random];

?>
Einbauen kannst Du das am einfachsten direkt in eine .php-Datei, also auch mitten im HTML der Seite einen <?php ?>-Block mit dem Code einfügen. Es geht auch, so es der Server erlaubt, .htm/.html-Dateien als PHP zu behandeln, indem man die Datei .htaccess ändert bzw. eine erstellt:

AddType application/x-httpd-php .html
AddType application/x-httpd-php .htm 

Kann man irgendwie schon im array die position des namens mit einer variable festlegen?

Geht auch:
<?php
  $name = $_REQUEST['name'];  //oder auch nur $_POST['name'], wenn das Formular method="post" hat.

  $slogans[0] = "bla $name bla";
  $slogans[1] = "blubblub, $name";
  $slogans[2] = "$name bla"
  ....
  
?>

21.09.2006 23:58

7 Rudy

hey, diesmal war ich zu langsam ^^

21.09.2006 23:59

8 Don

also hab das ganze jetzt mal ausprobiert...

Funktioniert leider bis jetzt noch nicht...
hab den php code in eine datei slogan.php kopiert und eine html seite mit dem formluar drauf erstellt. doch es wird leider nichts ausgegeben...
http://donkobilieri.do.ohost.de/Test/

woran kann das liegen?

22.09.2006 17:26

9 Jörg

Sorry, hatte den Submit-Button fälschlicherweise mit type="button" gekennzeichnet, für diesen Zweck benötigt man natürlich ein type="submit":

   <form method="post" action="slogan.php">
      <input type="text" name="name" value="" />
      <input type="submit" name="button" value="Slogan ausgeben" />
   </form>

22.09.2006 17:45

10 Don

Jetzt klappts

Vielen vielen Dank für die Hilfe

22.09.2006 17:51