Forum » Server-Side scripting » Like functie?
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privebericht
Ik weet dat er in PHP geen "Like" functie is, in tegenstelling tot SQL.

Nu heb ik zoals mensen weten een overhoor website voor school:
http://corderius.overhoorweb.nl.
Deze gaat binnenkort in bedrijf.

Nu kan je je daar dus overhoren, van toetsen die docenten kunnen aanmaken.

Nu werkt dit systeem prima voor talen (ne, en, du, fr) echter bij de andere vakken (eco, gs, ak, bi) kan je met dit systeem alleen maar meerkeuze doen, omdat je een antwoord uiteraard altijd anders kan formuleren.

Hoe kan ik hier het beste op controleren?

Of is meerkeuze dan toch het makkelijkst?

Alvast bedankt,

Lars Groot
09-09-2010 16:53
Dit topic is 239 keer bekeken door 48 verschillende leden
Reacties op: "Like functie?"
1
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Ik kan maar twee dingen bedenken, maak een AI die bepaald of de antwoorden goed zijn (en win tegelijkertijd een nobel prijs?) of gebruik meerkeuze...

Je kunt preg_match() in plaats van de SQL LIKE() gebruiken, maar dan wens in je succes met heel heel moeilijk doen.
09-09-2010 17:46
-1
Berichten: 1489
avatar
Offline Stuur privébericht
Geef anders een een paar voorbeelden, ik snap wel waar je naar toe wil maar maakt het wat makkelijker.
09-09-2010 18:14
De causeur!
Berichten: 504
avatar
Offline Stuur privébericht
Je kan ook controleren op bepaalde steekwoorden die er hoe dan ook in moeten zitten. Als je bijvoorbeeld een begrip vraagt, zijn er namelijk altijd wel meerdere woorden die je moet gebruiken om het juist uit te leggen.
09-09-2010 18:27
-1
Berichten: 1489
avatar
Offline Stuur privébericht
Nja zoals hij het nu zegt, meerkeuze is toch echt dat je meerdere antwoorden kunt selecteren (denk hierbij aan checkboxes).
09-09-2010 18:53
De causeur!
Berichten: 504
avatar
Offline Stuur privébericht
Ja maar dan maak je begrippen leren wel erg gemakkelijk...
09-09-2010 19:07
-1
Berichten: 1489
avatar
Offline Stuur privébericht
Ho editje:
Je kunt inderdaad wel woorden koppelen, een soort van tag systeem wat later verwerkt word in het antwoord. Alleen dan kun je allemaal bullshit typen en dan een van de 'tag' woorden en dan zal hij hem als goed keuren.
09-09-2010 19:19
Berichten: 1033
avatar
Offline Stuur privébericht
Of gewoon dat iedereen zijn eigen antwoord kan intypen,dat die antwoord dan naar de leerkracht wordt verzonden en hij kan die zelf verbeteren enzo
09-09-2010 19:26
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privébericht
@Starlife,

Ja, maar dat word iets te druk voor de leraar
Bovendien is het de bedoeling om alles geautomatiseerd te doen, en anders heeft de leraar er weer een taak bij

Lars
09-09-2010 19:32
WAN\'T TO LEARN SOMETHING
Berichten: 1564
avatar
Offline Stuur privébericht
Doe het door middel van een woorden match
daar kan de leraar altijd leuke opdrachten mee verzinnen
09-09-2010 19:48
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privébericht
Oke, naja, ik houd het wel bij radio buttons.

Nu even een vraagje tussendoor:
Ik moet straks voor alle leraren een account aanmaken.
Hierbij ga ik dus een e-mail sturen met als bijlage een PDF bestand.
Hierin staat de gebruikersnaam en wachtwoord op de site.

Hiervoor gebruik ik het volgende script:

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
<?php
require("class/fpdf.php");

class 
PDF extends FPDF
{
var 
$B;
var 
$I;
var 
$U;
var 
$HREF;

function 
PDF($orientation='P',$unit='mm',$format='A4')
{
    
//Call parent constructor
    
$this->FPDF($orientation,$unit,$format);
    
//Initialization
    
$this->B=0;
    
$this->I=0;
    
$this->U=0;
    
$this->HREF='';
}

function 
WriteHTML($html)
{
    
//HTML parser
    
$html=str_replace("n",' ',$html);
    
$a=preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE);
    foreach(
$a as $i=>$e)
    {
        if(
$i%2==0)
        {
            
//Text
            
if($this->HREF)
                
$this->PutLink($this->HREF,$e);
            else
                
$this->Write(40,$e);
        }
        else
        {
            
//Tag
            
if($e[0]=='/')
                
$this->CloseTag(strtoupper(substr($e,1)));
            else
            {
                
//Extract attributes
                
$a2=explode(' ',$e);
                
$tag=strtoupper(array_shift($a2));
                
$attr=array();
                foreach(
$a2 as $v)
                {
                    if(
preg_match('/([^=]*)=["']?([^"']*)/',$v,$a3))
                        
$attr[strtoupper($a3[1])]=$a3[2];
                }
                
$this->OpenTag($tag,$attr);
            }
        }
    }
}

function OpenTag(
$tag,$attr)
{
    //Opening tag
    if(
$tag=='B' || $tag=='I' || $tag=='U')
        
$this->SetStyle($tag,true);
    if(
$tag=='A')
        
$this->HREF=$attr['HREF'];
    if(
$tag=='BR')
        
$this->Ln(5);
}

function CloseTag(
$tag)
{
    //Closing tag
    if(
$tag=='B' || $tag=='I' || $tag=='U')
        
$this->SetStyle($tag,false);
    if(
$tag=='A')
        
$this->HREF='';
}

function SetStyle(
$tag,$enable)
{
    //Modify style and select corresponding font
    
$this->$tag+=($enable ? 1 : -1);
    
$style='';
    foreach(array('B','I','U') as 
$s)
    {
        if(
$this->$s>0)
            
$style.=$s;
    }
    
$this->SetFont('',$style);
}

function PutLink(
$URL,$txt)
{
    //Put a hyperlink
    
$this->SetTextColor(0,0,255);
    
$this->SetStyle('U',true);
    
$this->Write(40,$txt,$URL);
    
$this->SetStyle('U',false);
    
$this->SetTextColor(0);
}
}

$html='
U kan met de volgende gegevens inloggen op <a href="
http://corderius.overhoorweb.nl">http://corderius.overhoorweb.nl</a>
<b>Gebruikersnaam:</boostwouderv
<b>Wachtwoord:</b123123

Eenmaal ingelogd kunt u toetsen toevoegen
bewerkensluitenopenen of verwijderen en cijfers
van leerlingen bekijken
.
Tevens kunt u daar uw wachtwoord wijzigen.

Met vriendelijke groet,

<
b>Lars Groot</b>
<
i>Hoofd -  beheerder overhoorweb.nl</i>';

$pdf = new PDF();

$pdf->AddPage();
$link=$pdf->AddLink();
$pdf->SetLink($link);
$pdf->SetFont("Arial","B",29);
$pdf->Cell(40,10, "Welkom bij: Corderius Overhoorweb");
$pdf->SetFont("Arial", "", 12);
$pdf->SetFontSize(12);
$pdf->WriteHTML($html);


// email stuff (change data below)
$to = "grootscripting@live.nl"; 
$from = "info@corderius.overhoorweb.nl"; 
$subject = "Logingegevens Corderius Overhoorweb"; 
$message = "<h1>Welkom bij: Corderius Overhoorweb!</h1>
In het bijgeleverde PDF document vind u alle informatie omtrent inlog gegevens op het overhoorweb.
Het Corderius Overhoorweb is te vinden op:
<a href=\"http://corderius.overhoorweb.nl\">http://corderius.overhoorweb.nl</a>

Met vriendelijke groet,

<b>Lars Groot</b>
<i>Hoofd - beheerder overhoorweb.nl</i>
";

// a random hash will be necessary to send mixed content
$separator = md5(time());

// carriage return type (we use a PHP end of line constant)
$eol = PHP_EOL;

// attachment name
$filename = "logindata.pdf";

// encode data (puts attachment in proper format)
$pdfdoc = $pdf->Output("", "S");
$attachment = chunk_split(base64_encode($pdfdoc));


// main header (multipart mandatory)
$headers  = "From: ".$from.$eol;
$headers .= "MIME-Version: 1.0".$eol; 
$headers .= "Content-Type: multipart/mixed; boundary=\"".$separator."\"".$eol.$eol; 
$headers .= "Content-Transfer-Encoding: 7bit".$eol;
$headers .= "This is a MIME encoded message.".$eol.$eol;

// message
$headers .= "--".$separator.$eol;
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"".$eol;
$headers .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
$headers .= $message.$eol.$eol;

// attachment
$headers .= "--".$separator.$eol;
$headers .= "Content-Type: application/octet-stream; name=\"".$filename."\"".$eol; 
$headers .= "Content-Transfer-Encoding: base64".$eol;
$headers .= "Content-Disposition: attachment".$eol.$eol;
$headers .= $attachment.$eol.$eol;
$headers .= "--".$separator."--";

// send message
mail($to, $subject, "", $headers);

?>

(relevante code is vanaf lijn 103)

Nu stuur ik dus een e-mailtje naar m'n hotmail account: Geen bericht in de mail en de bijlage is 0,0 KB.

Stuur ik die echter naar m'n GMail account, dan kan ik het mailtje en de PDF lezen.

Weet iemand waar dit door komt?

Bedankt alvast,

Lars
09-09-2010 19:53
Reageer op: "Like functie?"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden