Geheimfrage erstellen für HP

thuglife

Mitglied
Hallo erstmal.

Ich hab an so eine Art Sicherheitsvorkehrung gedacht:

meine Family, die auf meine Seite will (http://www.tural-news.com) bekommt davor Fragen gestellt, die sie richtig beantworten müssen oder ankreuzen.
(sowas wie eine umfrage, secret question). Dies sind Fragen, die nur die Familie beantworten kann :D

naja und falls man dies richtig tippt, kommt man auf die Homepage, aber der Link zu der Homepage soll nicht sichtbar sein. Damit meine ich, dass oben wo man den HP link eintippt, nur http://www.tural-news.com steht und nicht http://www.tural-news.com/index.php#blabla





soooooo ein tolles Programm gibts bestimmt oder? :S wenn nein bitte ich um tips damit ich mir sowas bearbeiten kann.

danke
 
Normalerweise erstellt man Webseiten für eine bestimmte Zielgruppe.
Diese hast du ja gut eingeschränkt :-)

Na gut. Also ein Programm dafür kenne ich nicht aber selber schreiben wär auch nicht falsch.

Mach es einfach mit if.

Hier ein Beispiel:

PHP:
<?php

// Fehlermeldungen bei Falscheingabe
if(isset($_POST['submit'])) {
        if( $_POST['frage_a'] != "ANTWORT A"){  $error['frage_a'] = 'Frage A wurde nicht richtig beantwortet!<br>';}  
        if( $_POST['frage_b'] != "ANTWORT B"){  $error['frage_b'] = 'Frage B wurde nicht richtig beantwortet!<br>';} 
        if( $_POST['frage_c'] != "ANTWORT C"){  $error['frage_c'] = 'Frage C wurde nicht richtig beantwortet!<br>';} 
        if( $_POST['frage_d'] != "ANTWORT D"){  $error['frage_d'] = 'Frage D wurde nicht richtig beantwortet!<br>';} 
} if(!$error && $_POST['submit']) {

//Ausgabe wenn alles richtig eingegeben wurde.
echo("Glühstrumpf... Alles richtig eingegeben.");

}
else
{

// Fehler Ausgabe
echo $error['frage_a'];
echo $error['frage_b'];
echo $error['frage_c'];
echo $error['frage_d']; 

// HTML abschnitt zum besseren bearbeiten
// Seite, die angezeigt wird, wenn noch keine Aktion durchgeführt wurde.
?>
<form method="post" action="<?php print $_SERVER['PHP_SELF']; ?>">
  <table border="0">
    <tr>
      <td>Fragen:</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>Frage A: </td>
      <td><input name="frage_a" type="text" id="frage_a" value="<?=$_POST['frage_a']?>" maxlength="40"></td>
    </tr>
    <tr>
      <td>Frage B:</td>
      <td><input name="frage_b" type="text" id="frage_b" value="<?=$_POST['frage_b']?>" maxlength="40"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>Frage C:</td>
      <td><input name="frage_c" type="text" id="frage_c" value="<?=$_POST['frage_c']?>" maxlength="40"></td>
    </tr>
    <tr>
      <td>Frage D:</td>
      <td><input name="frage_d" type="text" id="frage_d" value="<?=$_POST['frage_d']?>" maxlength="40"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><input name="submit" type="submit" id="submit" value="Senden"></td>
      <td>&nbsp;</td>
    </tr>
  </table>
</form> 
<?php
}
?>
 
Achso bevor ich es noch vergesse, die Suchfunktion hätte dir hier auch sehr weitergeholfen.

:suchen:

Comenius hat ein schönes Tutorial dazu geschrieben, welches du dafür gut verwenden kannst.

Link zum Tutorial

Wenn du ahnung von MySQL hast, könntest du das ganze ja ein wenig bearbeiten um dir die Arbeit mit den Fragen etc. zu erleichtern. Mit MySQL könntest du dann weitere Fragen hinzufügen / editieren / löschen ohne großen Aufwand.
 
Ich denke mal nicht, dass du mich damit meintest...
Meins war natürlich nur ein Beispiel, wenn er blos eine Seite aufrufen möchte.

Im endeffekt müsste er gar nicht mit Cookies Arbeiten, wenn er die Seite mit den Fragen als Content Index nutzt.

Ich gebe dazu nochmal ein Beispiel...

Datei 1 index.php

PHP:
$INCLUDE_PASS = 'Irgendein Passwort';

//Weiterer Content...

Datei 2 galerie.php

PHP:
if ($INCLUDE_PASS = 'Irgendein Passwort') {

// Alles was eben in die Galerie rein gehört

} else {
echo "Keine Berechtigung";
};

Wenn man das ganze weiterführt mit jeder Datei, dann is das auch in ordnung... is einfach etwas vereinfacht, damit er es auch so übernehmen kann ohne groß kentnisse von html / php / mysql zu haben.
 
Wenn es um eine Seite geht, ist das in Ordnung, na klar.. Wenn es aber mehrere Seiten werden ( so scheint es wegen der Zusatzfrage ) wäre es nur hinderlich für das Navigieren, ständig das Passwort eingeben zu müssen.

Bezüglich "nur Hauptseite" sehen müsste man die Unterseiten in iFrames anzeigen, welche auch per normalen Linkbuttons erreichbar sind.

mfg chmee
 
es soll halt jedesmal irgendeine von 5 Fragen stellen. und bei richtiger antwort geht es auf einen subordner. Aber das wissen die ja nicht, da oben die adresse immer gleich aussieht. und zwar http://www.tural-news.com. Das hab ich mal hingekriegt aber weiß nicht mehr wie ^^.

die Sicherheit ist nicht sehr wichtig. wer möchte schon eine familienhomepage hacken -.-. Es ist nur so. Die familienmitglieder würden sich nicht sicher fühlen bilder hochzuladen, wenn jeder beliebige Mensch auf die seite könnte.

djbergo dein Ansatz ist ja mal der Hammer. ich versuchs mal zu ändern. Dankeschön
 
Zuletzt bearbeitet:
hallo :D also ich hab den einen code ein wenig umgeschnipselt. und zwar hab ich 5 so scripte erstellt:

<?php

// Fehlermeldungen bei Falscheingabe
if(isset($_POST['submit'])) {
if( $_POST['frage_a'] != "ANTWORT A"){ $error['frage_a'] = 'Frage A wurde nicht richtig beantwortet!<br>';}

} if(!$error && $_POST['submit']) {

//Ausgabe wenn alles richtig eingegeben wurde.
echo("Glühstrumpf... Alles richtig eingegeben.");

}
else
{

// Fehler Ausgabe
echo $error['frage_a'];

// HTML abschnitt zum besseren bearbeiten
// Seite, die angezeigt wird, wenn noch keine Aktion durchgeführt wurde.
?>
<form method="post" action="<?php print $_SERVER['PHP_SELF']; ?>">
<table width="381" border="0">
<tr>
<td width="93">sorular:</td>
<td width="217">harfler kücük yazilmali</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Frage A: </td>
<td><input name="frage_a" type="text" id="frage_a" value="<?=$_POST['frage_a']?>" maxlength="40"></td>
</tr>

<tr>
<td><input name="submit" type="submit" id="submit" value="cevapla"></td>
<td>&nbsp;</td>
</tr>
</table>
</form>
<?php
}
?>



die heißen: soru1.php soru2.php ...

ich will jetzt mit zufälligem include code eines von den php codes öffnen lassen. wenn es richtig beantwortet springts auf die seite.

:D ich hoffe es klappt :D
 
das ist eine Verbesserung des Beispielscript:
PHP:
<?php
session_start ();

// Fehlermeldungen bei Falscheingabe 
if(isset($_POST['submit'])) { 
        if( $_POST['frage_a'] != "ANTWORT A"){  $error['frage_a'] = 'Frage A wurde nicht richtig beantwortet!<br>';}   
        if( $_POST['frage_b'] != "ANTWORT B"){  $error['frage_b'] = 'Frage B wurde nicht richtig beantwortet!<br>';}  
        if( $_POST['frage_c'] != "ANTWORT C"){  $error['frage_c'] = 'Frage C wurde nicht richtig beantwortet!<br>';}  
        if( $_POST['frage_d'] != "ANTWORT D"){  $error['frage_d'] = 'Frage D wurde nicht richtig beantwortet!<br>';}  
} if(!$error && $_POST['submit']) { 
$_session['login'] = "eingeloggt";
//Ausgabe wenn alles richtig eingegeben wurde. 
echo("Glühstrumpf... Alles richtig eingegeben."); 

} 
//hier kommt der Rest von djbergo hin

das kommt in jede ander Datei:

PHP:
<?php
session_start();
if(!isset($_SESSION['login'])) {
  
          //hier kommt dein Seiteninhalt hin
     }
else { 
echo"Du musst dich erst einloggen um den Inhalt zu sehn";
}
?>

Ich hoffe es hilft dir
 
Zuletzt bearbeitet:
Also ich würde die Session ein wenig Zielgenauer schreiben.

Also nicht nur

PHP:
if(!isset($_SESSION['login'])) {
  
          //hier kommt dein Seiteninhalt hin
     }

Sondern

PHP:
if(isset($_SESSION['login'])) {
  
          //hier kommt dein Seiteninhalt hin
     }


Begründung:

Wenn du sagst !isset dann kann man den Inhalt einsehen ohne, dass die Session gestartet ist. Ich denk mal du wolltest des genau andersrum schreiben.

Hier nochmal die Verbesserung von bircke "War denk ich mal nur ein schreibfehler."

PHP:
<?php
session_start ();

// Fehlermeldungen bei Falscheingabe 
if(isset($_POST['submit'])) { 
        if( $_POST['frage_a'] != "ANTWORT A"){  $error['frage_a'] = 'Frage A wurde nicht richtig beantwortet!<br>';}   
        if( $_POST['frage_b'] != "ANTWORT B"){  $error['frage_b'] = 'Frage B wurde nicht richtig beantwortet!<br>';}  
        if( $_POST['frage_c'] != "ANTWORT C"){  $error['frage_c'] = 'Frage C wurde nicht richtig beantwortet!<br>';}  
        if( $_POST['frage_d'] != "ANTWORT D"){  $error['frage_d'] = 'Frage D wurde nicht richtig beantwortet!<br>';}  
} if(!$error && $_POST['submit']) { 
$_session['login'] = "eingeloggt";
//Ausgabe wenn alles richtig eingegeben wurde. 
echo("Glühstrumpf... Alles richtig eingegeben."); 

} 
//hier kommt der Rest von djbergo hin

Und die verbesserte Musterdatei

PHP:
<?php
session_start();
if(isset($_SESSION['login'])) {
  
          //hier kommt dein Seiteninhalt hin
     }
else { 
echo"Du musst dich erst einloggen um den Inhalt zu sehn";
}
?>
 
Zurück