Script stopt
Iemand een idee hoe ik dat kan oplossen?
Je mag niet zittend het intikken. Je moet het plat op je buik intikken.
Karl Karl op 27/02/2011 20:41:20:
Je mag niet zittend het intikken. Je moet het plat op je buik intikken.
daar was ik al bang voor , maar als iemand anders nu iets in tikt in mijn formulier? Ik wil diegene niet gaan vertellen voor welke leestekens ze een \ moeten zetten
als het naar de database moet gebruik dan mysql_real_escape_string
En zet 'magic quotes' uit.
Dat is afhankelijk van het internet. Als je een draadloos netwerk hebt en ADSL kan het nodig zijn om op de kop in de wc te gaan zitten tijdens het typen.
@Ivo,
Als je nu eerst je foutmelding geeft en een stukje van je code. Dan kunnen we kijken wat het daadwerkelijke probleem.
@PHP Jasper, addslashes is vaak niet een goede oplossing.
PHP Jasper op 27/02/2011 20:41:05:
Gebruik nooit of te nimmer addslashes!
Hoe stomme idioot ben je als dat zelfs op de pagina staat waar je naar toe verwijst...
dit werkt bij mij gewoon:
Gewijzigd op 27/02/2011 20:50:00 door Jasper DS
@ karl, ik had het net gezien, excuses!
TJVB tvb op 27/02/2011 20:45:55:
@Karl,
Dat is afhankelijk van het internet. Als je een draadloos netwerk hebt en ADSL kan het nodig zijn om op de kop in de wc te gaan zitten tijdens het typen.
(...)
Dat is afhankelijk van het internet. Als je een draadloos netwerk hebt en ADSL kan het nodig zijn om op de kop in de wc te gaan zitten tijdens het typen.
(...)
Oh, ja, helemaal vergeten.
PHP Jasper op 27/02/2011 20:47:51:
Ik snap het probleem niet,
dit werkt bij mij gewoon:
(...)
dit werkt bij mij gewoon:
(...)
Als je het probleem niet snapt moet je niet met antwoorden aankomen die per definitie verkeerd zijn.
Sander de Vos op 27/02/2011 20:48:26:
We blijven wel in het idioten wereldje hé. Dit is ook zo fout als het maar kan!
Karl Karl op 27/02/2011 20:49:13:
Oh, ja, helemaal vergeten.
Als je het probleem niet snapt moet je niet met antwoorden aankomen die per definitie verkeerd zijn.
TJVB tvb op 27/02/2011 20:45:55:
@Karl,
Dat is afhankelijk van het internet. Als je een draadloos netwerk hebt en ADSL kan het nodig zijn om op de kop in de wc te gaan zitten tijdens het typen.
(...)
Dat is afhankelijk van het internet. Als je een draadloos netwerk hebt en ADSL kan het nodig zijn om op de kop in de wc te gaan zitten tijdens het typen.
(...)
Oh, ja, helemaal vergeten.
PHP Jasper op 27/02/2011 20:47:51:
Ik snap het probleem niet,
dit werkt bij mij gewoon:
(...)
dit werkt bij mij gewoon:
(...)
Als je het probleem niet snapt moet je niet met antwoorden aankomen die per definitie verkeerd zijn.
Ja of je blijft on-topic en komt met een antwoord dat wél een toegevoegde waarde heeft?
Edit: Karl, kom zelf met een oplossing of voorbeeld dan. Het enige wat jij nu doet is negatief commentaar geven om anderen die het wél proberen.
Gewijzigd op 27/02/2011 20:51:46 door Sander de Vos
Sander, jouw oplossing is alleen voor dat teken. Daarnaast pas je dan de data aan. Dat wil je vaak niet. Maar als we niet te horen krijgen waar die het op wil slaan, waarom het fout gaat etc. kunnen we niet gericht helpen.
De TS moet zijn situatie beter uitleggen.
Code (php)
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
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
<?php
require_once ( "config.php" ) ;
if ( isset ( $_POST['submit'] ) )
{
if ( !isset ( $_POST['naam'] ) || strlen ( $_POST['naam'] ) <= 1 )
echo "<b>Je hebt geen naam ingevuld.</b>";
elseif ( !isset ( $_POST['bericht'] ) || strlen ( $_POST['bericht'] ) <= 1 )
echo "<b>Je hebt geen bericht ingevuld.</b>";
else
{
mysql_query ( "INSERT INTO ".$config['site']['mysql_tabel']."
(
datum,
naam,
tijd,
bericht
)
VALUES
(
'".$_POST['datum']."',
'".$_POST['naam']."',
'".$_POST['tijd']."',
'".$_POST['bericht']."'
)" ) or die ( mysql_error ( ) ) ;
}
}
else{}
?>
require_once ( "config.php" ) ;
if ( isset ( $_POST['submit'] ) )
{
if ( !isset ( $_POST['naam'] ) || strlen ( $_POST['naam'] ) <= 1 )
echo "<b>Je hebt geen naam ingevuld.</b>";
elseif ( !isset ( $_POST['bericht'] ) || strlen ( $_POST['bericht'] ) <= 1 )
echo "<b>Je hebt geen bericht ingevuld.</b>";
else
{
mysql_query ( "INSERT INTO ".$config['site']['mysql_tabel']."
(
datum,
naam,
tijd,
bericht
)
VALUES
(
'".$_POST['datum']."',
'".$_POST['naam']."',
'".$_POST['tijd']."',
'".$_POST['bericht']."'
)" ) or die ( mysql_error ( ) ) ;
}
}
else{}
?>
Gewijzigd op 27/02/2011 20:54:47 door Ivo Sanders
Dat is al beter ;)
Gebruik mysql_real_escape_string bij al je input's.
Gebruik geen die, maar maak een nette foutafhandeling.
Gewijzigd op 27/02/2011 20:55:43 door Sander de Vos
- gebruik de juiste quotes
- juiste foutafhandeling, geen or die()!!
- script is lek -> sql-injectie -> gebruik mysql_real_escape_string()
Gewijzigd op 27/02/2011 20:56:47 door Jasper DS
Ik ben beginner, dus ik heb geen idee waar je het over hebt.
- Zie operators, die strlen heeft in principe niet zoveel zin. Kijk ook naar trim.
- Foutafhandeling ontbreekt, zie wat elke mysql functie (zoals mysql_query) teruggeeft, gebruik dat in een if structuur.
- De fout komt doordat jij gewoon data in je database douwt. Gebruik mysql_real_escape_string.
- 'or die' is geen foutafhandeling.
- Toon nooit de php / sql fout aan de gebruiker. Deze melding kan misbruikt worden.