Ik combineer preg_match met string escapen. Overbeveiliging.quote:Op vrijdag 6 januari 2012 01:50 schreef KomtTijd... het volgende:
Ik weet wat preg_match is.
Maar als tientallen mensen die jarenlang gestudeerd hebben op SQL injectie een functie maken die dagelijks door duizenden kwaadwillende mensen beproefd wordt, om alle mogelijke manieren van SQL injectie te voorkomen, maar jij denkt dat je het beter kunt met een preg_match, ben je wel redelijk naief.
1 2 3 4 5 6 | <?php $str = "Is your name O'reilly?"; // Outputs: Is your name O\'reilly? echo addslashes($str); ?> |
Dat dus!quote:Op vrijdag 6 januari 2012 10:34 schreef Scorpie het volgende:
Bij SQL queries http://php.net/manual/en/function.mysql-real-escape-string.php
Die zag ik idd voorbij komen.quote:Op vrijdag 6 januari 2012 10:31 schreef Pakspul het volgende:
[ code verwijderd ]
Bron: http://php.net/manual/en/function.addslashes.php
quote:Op vrijdag 6 januari 2012 10:34 schreef Scorpie het volgende:
Bij SQL queries http://php.net/manual/en/function.mysql-real-escape-string.php
quote:
quote:A MySQL connection is required before using mysql_real_escape_string() otherwise an error of level E_WARNING is generated, and FALSE is returned.
1 | trailer='o\'' |
1 | quoted string not properly terminated |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | SQL> SELECT 'Frank''s Oracle site' AS text FROM DUAL; TEXT -------------------- Franks's Oracle site SQL> SELECT 'A ''quoted'' word.' AS text FROM DUAL; TEXT ---------------- A 'quoted' word. SQL> SELECT 'A ''''double quoted'''' word.' AS text FROM DUAL; TEXT ------------------------- A ''double quoted'' word. |
1 2 3 4 | <?php // hopelijk is het zichtbaar dat een enkele quote wordt vervangen door twee enkele quotes. $name = str_replace("'", "''", "Frank's Oracle site"); ?> |
1 | trailer='".$trailer."' |
Oracle heeft Mysql gekocht rememberquote:
En als je " (dubbele quote) naar " veranderd en ' (enkele quote) naar 'quote:Op vrijdag 6 januari 2012 11:20 schreef Cue_ het volgende:
Een str_replace (en wss ook die addslashes) werken niet omdat het bij verwerking in quotes komt te staan
[ code verwijderd ]
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
quote:Op vrijdag 6 januari 2012 21:18 schreef Geflipte-Koelkast het volgende:
Het is me al gelukt. Op de 1 of andere manier het oude script aan de praat gekregen. Alleen nog 1 vraag. Als ik op verzenden klik, wat moet er dan verandert worden in het script, om hem door te sturen naar de 'bedank' pagina?Een header toevoegen naar je bedank pagina nadat de mail succesvol is verzonden.SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
Ik heb wat basic tutorials doorgenomen,quote:Op vrijdag 6 januari 2012 22:16 schreef Catch22- het volgende:
zo werkt het niet. Ik zou even wat basic tutorials php lezen en ook even wat debug-tutorials doornemen.
Maar die code he, daar staat regel voor regel wat er gebeurt...
quote:Op vrijdag 6 januari 2012 21:18 schreef Geflipte-Koelkast het volgende:
Het is me al gelukt. Op de 1 of andere manier het oude script aan de praat gekregen. Alleen nog 1 vraag. Als ik op verzenden klik, wat moet er dan verandert worden in het script, om hem door te sturen naar de 'bedank' pagina?SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Er is een reden dat register_globals niet meer gebruikt moet worden. Dan moet je niet zelf dat gedrag proberen na te bootsen.
1
2
3
4
5
6
7
8
9
10
11
12<?php
// Emular register_globals on
if (!ini_get('register_globals')) {
$superglobales = array($_SERVER, $_ENV, $_FILES, $_COOKIE, $_POST, $_GET);
if (isset($_SESSION)) {
array_unshift($superglobales, $_SESSION);
}
foreach ($superglobales as $superglobal) {
extract($superglobal, EXTR_SKIP);
}
}
?>
1 2 3 4 | A = 2 likes B = 3 likes C = 4 likes D = 1 like |
1 2 3 4 | 1. C 2. B 3. A 4. D |
Wat voor melding geeft het? en heb je die melding door google heen gehaalt?quote:Op vrijdag 6 januari 2012 23:50 schreef Vanillax het volgende:
[..]
Ik heb wat basic tutorials doorgenomen,
En dus de tutorial gevolgd waarvan ik die link gaf maar het werkt dus niet.
En ik snap niet waarom.
Dus ik begin me af te vragen of het niet gewoon aan de host ligt ipv aan mijn php skills, want ik doe gewoon letterlijk wat er in die tutorial staat..
Nee likes staan in mijn eigen database, en wat jij wilt gaat niet lukkenquote:Op zondag 8 januari 2012 20:57 schreef cablegunmaster het volgende:
Easy... een order by in je query's gebruiken de vraag blijft of dit mogelijk is.
Want volgens mij gebruik je hierbij de facebook API? applicatie? ?
Corrigeer me als ik het verkeerd heb.
anders een query maken;
Select * from TABLE order by aantal_likes desc
of hoe je het veld hebt genoemd .
Zie voorbeeld:
http://www.w3schools.com/php/php_mysql_order_by.asp
[..]
Wat voor melding geeft het? en heb je die melding door google heen gehaald?
Hoe haal je de gegevens van A uit de database zijnde van wat erbij hoort? Dus bijvoorbeeld de rest van de pagina? want dan is het een kwestie van een variabele query.quote:Op zondag 8 januari 2012 21:15 schreef dirkjo het volgende:
[..]
Nee likes staan in mijn eigen database, en wat jij wilt gaat niet lukken
Want op die pagina wil ik niet de complete lijst, maar alleen de positie van het ene element (A in dit geval) uit de lijst. Snap je?
Oke stel je dit voor:quote:Op zondag 8 januari 2012 21:32 schreef cablegunmaster het volgende:
[..]
Hoe haal je de gegevens van A uit de database zijnde van wat erbij hoort? Dus bijvoorbeeld de rest van de pagina? want dan is het een kwestie van een variabele query.
"select * from likes where id = ' ".esc($_GET['id'])." ' ";
Met bvb de link index.php?id=50 dan haalt hij de ID eruit van 50 en welke ABCD er bij hoort.
1 2 3 4 | A = 3 likes B = 2 likes C = 4 likes D = 1 like |
Dus je wil dat de site tegen je zegt Dit nieuwsartikel of letter A Staat op nummer 2 van de hele lijst. en de rest negeren? Dan zou ik een order by desc. doen en vervolgens het eruit halen met echo. een Getal++; in de for lus doen (of welke lus) en als het overeen komt welke positie het is dus als de id te voorschijn komt die nodig is dan laat je het pas Echo'en welke positie het is.quote:Op zondag 8 januari 2012 21:42 schreef dirkjo het volgende:
[..]
Oke stel je dit voor:
Je hebt de waardes A, B, C en D zoals ik net al zei. Buiten nog veel meer informatie staat er onder andere in de database bij elke waarde (elke rij dus) het aantal likes dat die heeft gekregen (facebook onafhankelijk).
Als ik een lijst wil maken waarbij de waarde met de meeste likes bovenaan komt te staan kan ik inderdaad ORDER BY likes DESC gebruiken, maar dit wil ik niet.
Ik wil namelijk het volgende:
Elke waarde is ook een pagina, stel je voor A heeft ID 1; dan heb ik een waarde met ID 1. Dan kan ik alle waardes van die row pakken door WHERE ID = 1 te gebruiken, waaronder dus ook de likes.
Maar dat heeft allemaal niks te maken met wat ik wil. Ik wil namelijk op die pagina van 'A' dat je kan zien waar 'A' staat in de lijst (dus de lijst waar de meeste likes bovenaan staan).
Ik wil dat mysql dan aan mij teruggeeft op welke plek A zou staan als ik alle waardes sorteer van meeste naar minste likes.
Dus als voorbeeld:
[ code verwijderd ]
Als ik nu de hele lijst zou plaatsen zou 'A' op nummer twee worden geplaatst, hij heeft tenslotte de op een na meeste likes.
Nu wil ik op de pagina van 'A' die plaatst (positie 2) dus laten zien ZONDER de hele zooi te moeten plaatsen.
Ik hoop hiermee een beetje duidelijk te hebben beschreven wat ik wil?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |