php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-06-2006, 20:55
kasIQ
 Registrierter Benutzer
Links : Onlinestatus : kasIQ ist offline
Registriert seit: Mar 2005
Beiträge: 148
kasIQ ist zur Zeit noch ein unbeschriebenes Blatt
Standard Verschleiern von Daten

Hallo

ich bin geerade dabei ein Multiple Choice Test zu basteln bei dem die
Fragen und Antworten aus einer Db geholt werden.
In dieser wird die richtige Antwort via Tinyint auf 1 die falsche auf 0 gesetzt.

In meinem Formular lese ich nun die Db aus.
Hier wird ebenfalls der radiobutton mit dem value aus der Db gesetzt
PHP-Code:
<input type="radio" value="'.$row['ergebnis'],'"
wenn nun jemand die korrekte Antwort wählt wird ein Zähler um eins erhöht.

das funzt ja auch alles super.

Nun gibt es abwer bestimmt ein paar schlaue, die sich den Quelltext
anschauen und schlimmstensfalls :-) auch verstehen, und können somit die richtige Antwort aus dem Code herauslesen.

gibt es da ne Möglichkeit das irgendwie anders zulösen oder den value="" zu verschleiern?
Mit Zitat antworten
  #2 (permalink)  
Alt 22-06-2006, 21:11
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

wo wird der zähler erhöht?
warum stehen die antworten in der queltext überhaupt?
Ich glaube, dass du Antwort selber kennst.
1)erst werden die Fragen gestellt und formular abgesendet
2)antworten werden Serverseitig ausgewertet und bei richtig, wird Zähler auch Serverseitig erhöht.
__________________
Slava
bituniverse.com
Mit Zitat antworten
  #3 (permalink)  
Alt 22-06-2006, 21:18
Alrik
 Member
Links : Onlinestatus : Alrik ist offline
Registriert seit: Jan 2006
Beiträge: 304
Alrik ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

Speichere zu jeder Antwort, ob 0 oder 1 die richtige Lösung ist und vergleiche darauf, anstatt Wert 1 immer als richtig anzusehen.

Gruß Thomas
Mit Zitat antworten
  #4 (permalink)  
Alt 22-06-2006, 21:56
kasIQ
 Registrierter Benutzer
Links : Onlinestatus : kasIQ ist offline
Registriert seit: Mar 2005
Beiträge: 148
kasIQ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@slava

Das das document serverseitig ausgewertet werden soll dass weiß ich ja auch...aber ich habe da wohl einen Gedankenfehler ..weiß bloss net wo.
PHP-Code:
$ergebnis +=$_POST['wahl'];

<
form action="'.$PHP_SELF.'" method="POST">
<
input type="button" name="wahl" 
value="'.$row['richtige_antwort_1'].'">

<
input type="button" name="wahl" 
value="'.$row['richtige_antwort_2'].'">

<
input type="button" name="wahl" 
value="'.$row['richtige_antwort_3'].'">

</
form
Zur Zeit holt der den datensatz aus de DB und setzt die Varible "wahl" auf den wert der in der db steht. Das ist entweder 0 oder 1 .
Je nachdem welche antwortich als richtig gesetzt habe.
Bei dem erneuten Aufruf des Scripts wird dem $ergebnis der Wert von "wahl" dazuaddiert.

Mein ganzes script funktioniert ja auch ...wie gesagt, was mich stört , ist das die Antwort im Quelltext in form von value="1" und value="0" steht. Das stört mich halt.
Mit Zitat antworten
  #5 (permalink)  
Alt 22-06-2006, 21:57
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

tabelle Frage
id | frage

tabelle Antworten
id| frageid | antwortText | richtig(ja, nein)

und in deinem formular darf nichts auser id von Frage und id von Antwort in der value stehen.
ist formulardaten angekommen
alle antworten zur Frage, b.z.w Fragen aus DB lesen

select Antworten.id as aid, richtig from Antworten, Frage where
Frage.id=$_POST['frageid']
b.z.w where Frage.id in(id von Fragen, die auf der Seite vorkommen)

jetzt muss du ankommenden Antworten mit aus DB geholten werten abgleichen.
wenn deine radios und checkboxen z.b.s "antwort_".$Antwortid heisen,
dann kannst du schon bei lesen deiner sqlabfrage entscheiden, ob user richtig beantwortet hat
grob:
if(isset($_POST["antwort_".$ergebnis['aid']]) && $ergebnis['aid']="ja")
echo "richtig";
für checkboxen würde es hinhauen.
bei falschen antworten muss mann so abfragen
if(isset($_POST["antwort_".$ergebnis['aid']]) && $ergebnis['aid']="nein")
echo "falsch";


__________________
Slava
bituniverse.com

Geändert von Slava (22-06-2006 um 22:08 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 22-06-2006, 22:05
kasIQ
 Registrierter Benutzer
Links : Onlinestatus : kasIQ ist offline
Registriert seit: Mar 2005
Beiträge: 148
kasIQ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du meinst ich soll eine Tabelle Fragen und eine Tabelle antworten machen? mhh,
Zu Zeit habe ich eine Tabelle

Frage 1 (varchar 100)
Antwort 1(varchar50)
Ergebnis 1(tinyint)
Antwort 2(varchar50)
Ergebnis 2(tinyint)
Antwort 3(varchar50)
Ergebnis 3(tinyint)

und hier vergleich ich ....mh ok lass mich über deinen Ansatz
nachdenken

Geändert von kasIQ (22-06-2006 um 22:10 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 22-06-2006, 22:18
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

hm
das ist natürlich nicht sehr gute model, da sie sich nicht mehr erweitern lässt ,und auch standart abfragen von sql haben da auch eine geringe spielraum.
__________________
Slava
bituniverse.com
Mit Zitat antworten
  #8 (permalink)  
Alt 22-06-2006, 22:27
Koala
 PHP Junior
Links : Onlinestatus : Koala ist offline
Registriert seit: Jan 2006
Beiträge: 887
Koala ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Bei dem erneuten Aufruf des Scripts wird dem $ergebnis der Wert von "wahl" dazuaddiert.
speichre das Ergebnis in einer Sessionvariable und speichre es erst am Schluß in der DB und/oder gib es aus.
Mit Zitat antworten
  #9 (permalink)  
Alt 22-06-2006, 23:17
tcpip
 Junior Member
Links : Onlinestatus : tcpip ist offline
Registriert seit: Jun 2006
Beiträge: 217
tcpip ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du kannst als echten value den Rest modulo eine Zahl nehmen.

zB. <input type=radio value=random(15,25)*3+falsch/richtig> .

Dann ist es im Quelltext verschleiert, und für die Auswertung im php: value = value % 3. Wichtig ist, dass der Multiplikator ungerade ist, damit falsche und richtige Werte nicht an der letzten Stelle erkannt werden.

Nun wird ein zahlenbegabter Mensch es beim Faktor 3 noch erkennen, dass (v.a. bei Vielfachauswahl) die Zahlen durch 3 aufgehen oder nicht. Aber z.B. beim Faktor 13 oder 17 merkt das niemand mehr.

Bei vielfachauswahl kannst Du auch 0 und 1 für falsch, und 2 für richtig nehmen. dh die falschen radiobuttons habe nicht einheitlich eine 0. Beim Faktor 13 z.B. kannst du 10 Reste für falsch und 3 für richtig verwenden..

Man kann den Faktor in der Session speichern, oder, ebenfalls verschleiert mit einem master-Faktor, als hidden-feld im Formular. Dann kann der Faktor bei jeder Ausgabe geändert werden. Nochmals mehr Möglichkeiten sind, z.B. die Funktion crypt(), oder eine base64-Codierung, oder eine md5-Verschleierung des zuerst angegebenen Zufallswertes.

Irgendetwas davon könnte passen, nun hast Du eine Auswahl.
Mit Zitat antworten
  #10 (permalink)  
Alt 22-06-2006, 23:57
tcpip
 Junior Member
Links : Onlinestatus : tcpip ist offline
Registriert seit: Jun 2006
Beiträge: 217
tcpip ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Verschleiern von Daten

Zitat:
Original geschrieben von kasIQ
wenn nun jemand die korrekte Antwort wählt wird ein Zähler um eins erhöht.
Ich habe noch eine Frage, nämlich was heisst das genau? bzw. ist das im Formular per Javascript, wird der Zähler angezeigt, oder --?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Plates native PHP template system

Plates ist ein natives PHP-Vorlagensystem, das schnell, einfach zu verwenden und einfach zu erweitern ist.

24.05.2019 Berni | Kategorie: PHP/ Framework
Maqetta Open Source  HTML5-Editor ansehen Maqetta Open Source HTML5-Editor

Einen WYSIWYG-Editor zur visuellen Erstellung von Userinterfaces in HTML5 (Drag-and-Drop)

13.05.2019 Berni | Kategorie: HTML5/ EDITOR
NodeBB

NodeBB ist eine Foren-Software auf NodeJS-Basis

13.05.2019 Berni | Kategorie: PHP/ Forum PHP Software
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:12 Uhr.