new.php?id=MySite - Hilfe

10/21/2011 05:50 PvPMan12#1
Hallo,

ich habe ein kleines Problem. Ich habe folgenden
Code:

Code:
<form action="new.php" method="get">
	<input id="myInput" name="id" type="text" />
	<input type="submit" value="Suche">
</form>
Dies funktioniert einwandfrei. Wenn ich nun in dieser
Textbox die ich oben programmiert habe, ein Wort (z.B. MySite) eingebe
und auf Suche gehe, werde ich auf diesen Link umgeleitet:
[Only registered and activated users can see links. Click Here To Register...]
Die Seite ist jetzt natürlich noch leer. Und da würde ich gerne Inhalt
einfügen.

Jetzt zu meiner Frage:
Wie kann ich auf meiner noch leeren new.php Inhalt einfügen, sodass
ich im Textfeld, dass Suchwort MySite eingebe, und dann nur dort
der Inhalt angezeigt wird?
10/21/2011 15:13 Snake124#2
für den fall das die form in der new.php steht:
PHP Code:
<?
$a 
htmlspecialchars(mysql_real_escape_string($_GET['id']));
if(
$a == 'site1'){$b $a;};
if(
$a == 'site2'){$b $a;};
if(
$a != $b){$b '';};

switch(
$b){
    case(
''):
    default:
    
?>
        <form action="new.php" method="get">
        <input id="myInput" name="id" type="text" />
        <input type="submit" value="Suche">
        </form>
    <?
    
break;
    case(
'site1'):
        echo 
'beispieltext';
    break;
    case(
'site2'):
        echo 
'beispieltext 2';
    break;
}
?>
dies wäre der einfachste weg. solang "id" ein gültiges case hat, wird der content angezeigt, ansonsten dein form
du musst beachten das du für das beispiel eine mysql verbindung offen hast, wenn nicht dann entfern einfach das mysql_real_escape string ;)

mfg Aileen
10/21/2011 15:34 Fratyr#3
PHP Code:
<?
$a 
htmlspecialchars(mysql_real_escape_string($_GET['id']));
if(
$a == 'site1'){$b $a;};
if(
$a == 'site2'){$b $a;};
if(
$a != $b){$b '';};
?>
Was sol das den bitte?
Nach einer geschweiften Klammer kommt auserdem kein Semikolon mehr!
Wenn $_GET['id'] nicht gesetzt ist würde E_ALL übrigens "Undefined Variable ·[...]"
als Fehler ausgeben.
PHP Code:
$a = (isset($_GET['id'])) ? htmlspecialchars($_GET['id']) : ''
Das würde deine vier Zeilen ersetzen, und obendrein die Notice(oder Warning
was weiß ich) vermeiden. bei einer so "langsamen" Sprache wie PHP
kannst du dir so einen Krampf nicht leisten! ;)
Der übersichtlichkeit halber verwendet man bei solchen "If's" auch garkeine Klammern,
also
PHP Code:
if ($ich == 'awesome')
   echo 
"richtig!"
Andererseits, wie oben schon erwähnt mit MySQL, was du sicher auch vorhaben solltest:
[Only registered and activated users can see links. Click Here To Register...]
10/21/2011 15:48 PvPMan12#4
Joa danke erstma für die raschen antworten! :)

Habe es nun so gelöst:

Inhalt des Formular's
HTML Code:
<form action="new.php" method="get">
	<input id="myInput" name="id" type="text" />
	<input type="submit" value="Suche">
</form>

Inhalt der new.php
Code:
<?php  
  
$seite = $_GET["[B]id[/B]"];              //Was ihr oben im <input> Tag bei name eingegeben habt
if(!isset($[B]id[/B])) {              //Was ihr oben im <input> Tag bei name eingegeben habt
} 

if($seite=="[B]MySite[/B]") {              //MySite mit dem gewünschten Suchbegriff ersetzen, bei dem der Inhalt angezeigt werden soll.
echo '<b>Klappt ja!</b>';
}
  
?>