abonnement bol.com Unibet Coolblue
  donderdag 19 april 2012 @ 11:51:56 #276
260431 drumminggod
Ik zeg: Doen!
pi_110525594
quote:
0s.gif Op dinsdag 17 april 2012 11:40 schreef cablegunmaster het volgende:

[..]

1. Simpelste oplossing is een redirect :). Dan stuurt hij door naar de volgende pagina en dan mogen ze zo veel F5 drukken als ze willen maar dan herhaalt hij niet.

2. een Check inbouwen dat als de text precies zo al voorkomt dat hij niet meer een Insert uitvoert maar doorgaat met redirecten.
[ code verwijderd ]

[..]

Headers mogen geen output daarvoor hebben dus een reeks html + vervolgens de header kan tot fouten leiden.
[ code verwijderd ]

Prefereer daarom liever Redirect :P
Bij de redirect code krijg ik dit:

Fatal error: Call to undefined function redirect() in D:\xxx\UsbWebserver\UsbWebserver\Root\xxx\gastenboek.php on line 147

De pagina heet gastenboek en de code om line 147 is:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (mysql_num_rows($sql) == 0) {
    
// Als er nog geen reacties geplaatst zijn
    
echo 'We hebben nog geen reacties!';
} else {
    while(
$data mysql_fetch_assoc($sql)) {
        
// Als er wel reacties zijn geplaatst worden deze nu weergegeven
        
echo '<b>Naam:</b> '.htmlspecialchars(stripslashes($data['door'])).'<br />
        <b>Datum:</b> '
.htmlspecialchars(stripslashes($data['datum'])).'<br />
        <b>Bericht:</b><br />'
.ubb($data['bericht']).'<br /><br />
        <b>_________________________________________________________________________________________________________________________________________</b>'
;
    }
}
{
}
redirect("gastenboek.php");
?>
Mijn piek is kwijt
  donderdag 19 april 2012 @ 11:55:23 #277
137776 boem-dikkie
Jedi Mind Baby!
pi_110525720
Je gebruikt een functie die niet gedefinieerd is. Heb je zelf een functie gemaakt die redirect heet? Je kunt mits je geen HTML voor je code hebt staan header('location: gastenboek.php'); gebruiken.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  donderdag 19 april 2012 @ 11:57:17 #278
260431 drumminggod
Ik zeg: Doen!
pi_110525778
quote:
14s.gif Op donderdag 19 april 2012 11:55 schreef boem-dikkie het volgende:
Je gebruikt een functie die niet gedefinieerd is. Heb je zelf een functie gemaakt die redirect heet? Je kunt mits je geen HTML voor je code hebt staan header('location: gastenboek.php'); gebruiken.
natuurlijk! In de header moet het ook staan!
Mijn piek is kwijt
  donderdag 19 april 2012 @ 11:59:34 #279
137776 boem-dikkie
Jedi Mind Baby!
pi_110525863
Ik snap je niet.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  donderdag 19 april 2012 @ 12:01:26 #280
260431 drumminggod
Ik zeg: Doen!
pi_110525920
quote:
7s.gif Op donderdag 19 april 2012 11:59 schreef boem-dikkie het volgende:
Ik snap je niet.
In de header moet je toch de funtie definieren?
Mijn piek is kwijt
  donderdag 19 april 2012 @ 12:06:05 #281
137776 boem-dikkie
Jedi Mind Baby!
pi_110526056
Die functie kun je overal definieren zolang je hem maar include of er naar verwijst in het document waar je de functie aanspreekt.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  donderdag 19 april 2012 @ 13:49:50 #282
25889 Sitethief
Fulltime Flapdrol
pi_110529788
quote:
7s.gif Op donderdag 19 april 2012 11:51 schreef drumminggod het volgende:

[..]

Bij de redirect code krijg ik dit:

Fatal error: Call to undefined function redirect() in D:\xxx\UsbWebserver\UsbWebserver\Root\xxx\gastenboek.php on line 147

De pagina heet gastenboek en de code om line 147 is:
[ code verwijderd ]

redirect() is niet een native functie van PHP, wat er bedoelt werd is http://php.net/manual/en/function.header.php
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  donderdag 19 april 2012 @ 13:58:34 #283
12221 Tijn
Powered by MS Paint
pi_110530191
quote:
0s.gif Op dinsdag 17 april 2012 11:40 schreef cablegunmaster het volgende:

[..]

1. Simpelste oplossing is een redirect :). Dan stuurt hij door naar de volgende pagina en dan mogen ze zo veel F5 drukken als ze willen maar dan herhaalt hij niet.

2. een Check inbouwen dat als de text precies zo al voorkomt dat hij niet meer een Insert uitvoert maar doorgaat met redirecten.
[ code verwijderd ]

[..]

Headers mogen geen output daarvoor hebben dus een reeks html + vervolgens de header kan tot fouten leiden.
[ code verwijderd ]

Prefereer daarom liever Redirect :P
Een noscript-tag in 2012? Really? Verwacht je veel bezoekers met Netscape 2? :D
pi_110532472
quote:
10s.gif Op donderdag 19 april 2012 13:58 schreef Tijn het volgende:

[..]

Een noscript-tag in 2012? Really? Verwacht je veel bezoekers met Netscape 2? :D
failsafe ;).
Redacted
pi_110545769
quote:
10s.gif Op donderdag 19 april 2012 13:58 schreef Tijn het volgende:

[..]

Een noscript-tag in 2012? Really? Verwacht je veel bezoekers met Netscape 2? :D
Gewoon lynx gebruiken :)
pi_110553993
quote:
10s.gif Op donderdag 19 april 2012 13:58 schreef Tijn het volgende:

[..]

Een noscript-tag in 2012? Really? Verwacht je veel bezoekers met Netscape 2? :D
Er bestaat ook nog zoiets als javascript uitschakelen of een javascript-blokker als plugin geinstalleerd hebben. Het is een kleine moeite om zo'n tag met een melding op te nemen, vooral voor webapplicaties die functioneel gezien vertrouwen op javascript.
pi_110555517
Iemand trouwens een kort duidelijk tutorial om van /single.php?id=1 te maken /titel-van-post
  vrijdag 20 april 2012 @ 11:48:58 #288
25889 Sitethief
Fulltime Flapdrol
pi_110555764
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_110556152
alles staat in een mapje: /artikel/

ik heb een .htacccess bestand met dit:

1
2
3
4
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule   ^(.*) index.php?p=$1 [L]

en een index.php met dit:

1
2
3
4
5
6
7
$p = $_GET["p"];

...

$query = "SELECT type,naam,url,id FROM artikelen WHERE naam='$p'";

...etc

En dit werkt gewoon als ik dit doe: /artikel/appels

Maar eigenlijk wil ik die niet in een aparte map hebben, dat /artikel/ zou ook dynamisch moeten zijn.
pi_110556622
mapje hoger plaatsen en zoiets gebruiken?:

1
2
3
4
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule   ^(.*)/(.*) index.php?x=$1&p=$2 [L]
of je moet alles door sturen naar je index.php en het splitsen e.d. daar afhandelen.. (dat is imho een stuk flexibeler en dan zou je e.v.t. meer "onderdelen/mappen" kunnen toevoegen)
  vrijdag 20 april 2012 @ 14:52:08 #291
12221 Tijn
Powered by MS Paint
pi_110558037
quote:
0s.gif Op donderdag 19 april 2012 21:25 schreef Light het volgende:

[..]

Gewoon lynx gebruiken :)
w3m ondersteunt wel Javascript _O_
pi_110559892
quote:
0s.gif Op vrijdag 20 april 2012 12:05 schreef JDx het volgende:
alles staat in een mapje: /artikel/

ik heb een .htacccess bestand met dit:
[ code verwijderd ]

en een index.php met dit:
[ code verwijderd ]

En dit werkt gewoon als ik dit doe: /artikel/appels

Maar eigenlijk wil ik die niet in een aparte map hebben, dat /artikel/ zou ook dynamisch moeten zijn.
Dit is erg gevaarlijke code als je dit zo zou gebruiken.
pi_110560176
Multiviews is dan nog geen eens het probleem, daar heb je nog mooiere oplossingen dan hoe je het nu ophaalt in de php file, maar waar vampier op doelt is het sql-injectie stuk.
pi_110561041
quote:
0s.gif Op vrijdag 20 april 2012 16:10 schreef totalvamp het volgende:

[..]

Dit is erg gevaarlijke code als je dit zo zou gebruiken.
Wat is er gevaarlijk aan dan?
pi_110565667
quote:
0s.gif Op vrijdag 20 april 2012 16:43 schreef JDx het volgende:

[..]

Wat is er gevaarlijk aan dan?
Je escaped de variable $p niet die direct afkomstig is uit de GET array en dus door gebruikers van het script beïnvloedbaar is. Je script is in deze staat vatbaar voor SQL injecties.

Tip: http://php.net/manual/en/function.mysql-real-escape-string.php
pi_110590225
Je moet sowieso nooit gebruikers input vertrouwen. Je moet ze allemaal behandelen als hackers.
  zaterdag 21 april 2012 @ 13:31:29 #297
12221 Tijn
Powered by MS Paint
pi_110591223
quote:
0s.gif Op vrijdag 20 april 2012 16:43 schreef JDx het volgende:

[..]

Wat is er gevaarlijk aan dan?
Dat iedereen kan doen wat 'ie wil met je gehele database.

pi_110591267
Wat vaag, dit heb ik ook gewoon van een tutorial en gebruik ik al jaren op al mijn sites, moet ik dan een post gebruiken?
  zaterdag 21 april 2012 @ 13:35:30 #299
12221 Tijn
Powered by MS Paint
pi_110591340
quote:
0s.gif Op zaterdag 21 april 2012 13:32 schreef JDx het volgende:
Wat vaag, dit heb ik ook gewoon van een tutorial en gebruik ik al jaren op al mijn sites, moet ik dan een post gebruiken?
POST of GET maakt niks uit, het gaat erom dat je de input filtert voordat je het in je query stopt, omdat anders mensen zelf queries kunnen gaan invoeren en daarmee je database kunnen uitlezen en misschien zelfs veranderen.

Bijvoorbeeld zo:

1
2
3
4
5
<?php
'SELECT * FROM `table`
WHERE `string` = "'
.mysql_real_escape_string($_GET['foo']).'"
  AND `number` = '
.intval($_GET['bar']);
?>

Maar beter gebruik je gewoon een setje database functies waardoor je sowieso geen ruwe queries in je code hoeft te zetten.

Bizar trouwens dat je al jaren werkt aan meerdere sites en dit niet weet, want dit is echt reden #1 waardoor websites gehacked worden.

[ Bericht 3% gewijzigd door Tijn op 21-04-2012 13:42:02 ]
  zaterdag 21 april 2012 @ 13:47:24 #300
302853 themole
graaft totaal door.
pi_110591665
quote:
0s.gif Op zaterdag 21 april 2012 13:32 schreef JDx het volgende:
Wat vaag, dit heb ik ook gewoon van een tutorial en gebruik ik al jaren op al mijn sites, moet ik dan een post gebruiken?
Zou het als ik jou was snel oplossen, de onderste site in je signature is al vatbaar daarvoor.

Verander ?id=9 maar eens in ?id='; krijg je meteen een error.
Niet altijd serieus
abonnement bol.com Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')