mijn eerst scriptjes
1: Als ik mijn berichtje wil aanpassen krijg ik een fout, maar ik heb geen idee hoe ik dat weg kan krijgen.
2: Het uur klopt niet; wordt niet in de db geschreven want de standaardwaarde wordt getoond.
de database ziet er als volgt uit:
systeem --> tut --> tut_ID, tut_header, tut_main, tut_datetime
die tut_datetime is datetime, not null en de standaardwaarde (0000-00-00 00:00:00) kwam er automatisch bij
tut_edit.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include("connect.inc.php");
$SQL_tut="SELECT * FROM tut WHERE tut_ID=" . $_GET['tut_ID'];
$tut_result=mysql_query($SQL_tut);
$tut=mysql_fetch_array($tut_result);
mysql_close();
//br-tags naar regeluiteinden
$tut['tut_main'] = eregi_replace('<br[[:space:]]*/?[[:space:]]*>',"/n", $tut['tut_main']);
//******************formulier*****************
?>
<html>
<form action=tut_list.php method=post>
<input type="text" name="tut_header" value="<?php echo $tut['tut_header'] ?>" size="50" maxlenth="120"><br>
<input type="text" name="tut_datetime" value="<?php echo $tut['tut_datetime'] ?>" size="19" maxlength="19"><br>
<textarea name="tut_main" rows="6" cols="45"><?php echo $tut['tut_main'] ?></textarea><br>
<input type="hidden" name="action" value="update">
<input type="submit" name="Submit" value="OK">
</form>
</html>
include("connect.inc.php");
$SQL_tut="SELECT * FROM tut WHERE tut_ID=" . $_GET['tut_ID'];
$tut_result=mysql_query($SQL_tut);
$tut=mysql_fetch_array($tut_result);
mysql_close();
//br-tags naar regeluiteinden
$tut['tut_main'] = eregi_replace('<br[[:space:]]*/?[[:space:]]*>',"/n", $tut['tut_main']);
//******************formulier*****************
?>
<html>
<form action=tut_list.php method=post>
<input type="text" name="tut_header" value="<?php echo $tut['tut_header'] ?>" size="50" maxlenth="120"><br>
<input type="text" name="tut_datetime" value="<?php echo $tut['tut_datetime'] ?>" size="19" maxlength="19"><br>
<textarea name="tut_main" rows="6" cols="45"><?php echo $tut['tut_main'] ?></textarea><br>
<input type="hidden" name="action" value="update">
<input type="submit" name="Submit" value="OK">
</form>
</html>
dan het deel van tut_list.php:
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
//*************tut aanpassen*******************
if($action=="update"){
//parameters lezen
$tut_ID=$_POST['tut_ID'];
$tut_main=$_POST['tut_main'];
$tut_header=$_POST['tut_header'];
$tut_datetime=$_POST['datetime'];
//regeleinden naar br
$tut_SQL_update="UPDATE tut SET tut_header='$tut_header',tut_main='$tut_main',tut_datetime=$tut_datetime' WHERE tut_ID='tut_ID'";
$bool=mysql_query($tut_SQL_update);
if($bool==1) echo "<script language=JavaScript>window.alert('Bericht bewerkt')</script>";
if($bool<>1) echo "<script language=JavaScript>window.alert('Er is een fout opgetreden')</script>";
}
//***********nieuwe tut maken*****************
if($action=="insert"){
//parameters lezen
$tut_main=$_POST['tut_main'];
$tut_header=$_POST['tut_header'];
$tut_datetime=$_POST['tut_datetime'];
$tut_SQL_insert="INSERT INTO tut (tut_header,tut_datetime,tut_main) VALUES ('$tut_header','$tut_datetime','$tut_main')";
$bool=mysql_query($tut_SQL_insert);
if($bool==1) echo "<script language=JavaScript>window.alert('Bericht toegevoegd')</script>";
if($bool<>1) echo "<script language=JavaScript>window.alert('Er is een fout opgetreden!')</script>";
?>
}
//*************tut aanpassen*******************
if($action=="update"){
//parameters lezen
$tut_ID=$_POST['tut_ID'];
$tut_main=$_POST['tut_main'];
$tut_header=$_POST['tut_header'];
$tut_datetime=$_POST['datetime'];
//regeleinden naar br
$tut_SQL_update="UPDATE tut SET tut_header='$tut_header',tut_main='$tut_main',tut_datetime=$tut_datetime' WHERE tut_ID='tut_ID'";
$bool=mysql_query($tut_SQL_update);
if($bool==1) echo "<script language=JavaScript>window.alert('Bericht bewerkt')</script>";
if($bool<>1) echo "<script language=JavaScript>window.alert('Er is een fout opgetreden')</script>";
}
//***********nieuwe tut maken*****************
if($action=="insert"){
//parameters lezen
$tut_main=$_POST['tut_main'];
$tut_header=$_POST['tut_header'];
$tut_datetime=$_POST['tut_datetime'];
$tut_SQL_insert="INSERT INTO tut (tut_header,tut_datetime,tut_main) VALUES ('$tut_header','$tut_datetime','$tut_main')";
$bool=mysql_query($tut_SQL_insert);
if($bool==1) echo "<script language=JavaScript>window.alert('Bericht toegevoegd')</script>";
if($bool<>1) echo "<script language=JavaScript>window.alert('Er is een fout opgetreden!')</script>";
?>
}
Gewijzigd op 01/01/1970 01:00:00 door Reinhout
reinhout schreef op 19.05.2007 20:45:
Welke foutmeldingen?Nu heb ik 2 fouten die ik nog wil fixen,
Gewijzigd op 01/01/1970 01:00:00 door reinhout
Maar zo even snel:
In je update query.....
tut_datetime=$tut_datetime' ..... mist een enkele quote.
WHERE tut_ID='tut_ID' ....... moet dat geen $tut_ID zijn
en die tut_ID moet geen $tut_ID zijn tenzij er een fout in mijn boek staat
toch bedankt voor de moeite...
vriendelijke groet,
reinhout
reinhout schreef op 19.05.2007 21:40:
Dat verandert niets.
en die tut_ID moet geen $tut_ID zijn tenzij er een fout in mijn boek staat
toch bedankt voor de moeite...
vriendelijke groet,
reinhout
en die tut_ID moet geen $tut_ID zijn tenzij er een fout in mijn boek staat
toch bedankt voor de moeite...
vriendelijke groet,
reinhout
Dan zal er waarschijnlijk toch een fout staan (het is tenslotte door mensen geschreven)
want hierbij kijk je of 1 wel 1 is, of 2 wel 2 is. Je vergelijkt steeds een waarde met zichzelf.
hier wordt de tut_ID in de url meegegeven; hij loopt de db door tot die 2 waardes overeenkomen en dan wordt die post aangepast
ps: die tut_ID is auto increment (?) dus wordt die bij iedere post 1 cijfer hoger.
edit moet mijn vorige post herzien denk ik; ik krijg Notice: Undefined index: tut_ID in /storage/mijndomein/users/070658/public/sites/www.onlinetutorials.be/admin/tut_list.php on line 84
Notice: Undefined index: datetime in /storage/mijndomein/users/070658/public/sites/www.onlinetutorials.be/admin/tut_list.php on line 87
dit is als ik via een omweg toch de error's zie
Gewijzigd op 01/01/1970 01:00:00 door reinhout
SanThe schreef op 19.05.2007 21:04:
In je update query.....
tut_datetime=$tut_datetime' ..... mist een enkele quote.
WHERE tut_ID='tut_ID' ....... moet dat geen $tut_ID zijn
tut_datetime=$tut_datetime' ..... mist een enkele quote.
WHERE tut_ID='tut_ID' ....... moet dat geen $tut_ID zijn
Dus toch ... ;-)
wat moet ik dan doen nu? :$
reinhout schreef op 19.05.2007 22:11:
hier wordt de tut_ID in de url meegegeven;
Dan moet toch
$tut_ID=$_POST['tut_ID'];
een GET zijn?
$tut_ID=$_GET['tut_ID'];
je wil editten (tut_edit.php) en daar staat een formulier die alles inleest en dan weer verzendt naar tut_list.php
daar wordt gekeken wat er moet veranderen (uit url halen) en dat wordt dan toegepast naargelang action gelijk is aan edit, delete of new
In tut_edit.php krijg je tut_ID uit de url. Je verzendt het formulier naar tut_list.php maar je geeft tut_ID niet meer mee.
if($action=="update"){
$action komt uit het formulier dus dat moet een POST-var zijn.
if($_POST['action']=="update"){
En dan nog mijn eerder genoemde punten in de query.
Zet dit eens bovenin elke pagina.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest van het script
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest van het script
?>
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
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
<?php
//*************tut aanpassen*******************
if($action=="update"){
//parameters lezen
$tut_ID = ( int ) $_POST['tut_ID'];
$tut_main = mysql_escape_string( $_POST['tut_main'] );
$tut_header = mysql_escape_string( $_POST['tut_header'] );
$tut_datetime = mysql_escape_string( $_POST['datetime'] );
//regeleinden naar br
$tut_SQL_update="UPDATE tut SET tut_header='$tut_header',tut_main='$tut_main',tut_datetime=$tut_datetime' WHERE tut_ID='tut_ID'";
$bool=mysql_query($tut_SQL_update);
if($bool==1) echo "<script language=JavaScript>window.alert('Bericht bewerkt')</script>";
if($bool<>1) echo "<script language=JavaScript>window.alert('Er is een fout opgetreden')</script>";
}
//***********nieuwe tut maken*****************
if($action=="insert"){
//parameters lezen
$tut_main= mysql_escape_string( $_POST['tut_main'] );
$tut_header= mysql_escape_string( $_POST['tut_header']);
$tut_datetime= mysql_escape_string( $_POST['tut_datetime']);
$tut_SQL_insert="INSERT INTO tut (tut_header,tut_datetime,tut_main) VALUES ('$tut_header','$tut_datetime','$tut_main')";
$bool=mysql_query($tut_SQL_insert);
if($bool==1) echo "<script language=JavaScript>window.alert('Bericht toegevoegd')</script>";
if($bool<>1) echo "<script language=JavaScript>window.alert('Er is een fout opgetreden!')</script>";
?>
//*************tut aanpassen*******************
if($action=="update"){
//parameters lezen
$tut_ID = ( int ) $_POST['tut_ID'];
$tut_main = mysql_escape_string( $_POST['tut_main'] );
$tut_header = mysql_escape_string( $_POST['tut_header'] );
$tut_datetime = mysql_escape_string( $_POST['datetime'] );
//regeleinden naar br
$tut_SQL_update="UPDATE tut SET tut_header='$tut_header',tut_main='$tut_main',tut_datetime=$tut_datetime' WHERE tut_ID='tut_ID'";
$bool=mysql_query($tut_SQL_update);
if($bool==1) echo "<script language=JavaScript>window.alert('Bericht bewerkt')</script>";
if($bool<>1) echo "<script language=JavaScript>window.alert('Er is een fout opgetreden')</script>";
}
//***********nieuwe tut maken*****************
if($action=="insert"){
//parameters lezen
$tut_main= mysql_escape_string( $_POST['tut_main'] );
$tut_header= mysql_escape_string( $_POST['tut_header']);
$tut_datetime= mysql_escape_string( $_POST['tut_datetime']);
$tut_SQL_insert="INSERT INTO tut (tut_header,tut_datetime,tut_main) VALUES ('$tut_header','$tut_datetime','$tut_main')";
$bool=mysql_query($tut_SQL_insert);
if($bool==1) echo "<script language=JavaScript>window.alert('Bericht toegevoegd')</script>";
if($bool<>1) echo "<script language=JavaScript>window.alert('Er is een fout opgetreden!')</script>";
?>
En met de tijd, kan je beter in de query gelijk NOW() doen in plaats van de varriabele die je er nu hebt staan.
Gewijzigd op 01/01/1970 01:00:00 door Martin Meijer
Welk boek was het?
robin schreef op 20.05.2007 10:17:
In een phpboek wordt toch wel op veiligheid gelet?
Welk boek was het?
Welk boek was het?
PHP5 & MySQL van Jochen Franke & Axel Bornträger
startersboek met cd-rom
het is het nieuwste boek dat onze bib heeft (2005)
Martin Meijer schreef op 20.05.2007 09:36:
Ik zou ook een beetje mee rom je veiligheid van het script letten! Voornamelijk bij de invoer van gegevens!
En met de tijd, kan je beter in de query gelijk NOW() doen in plaats van de varriabele die je er nu hebt staan.
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
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
<?php
//*************tut aanpassen*******************
if($action=="update"){
//parameters lezen
$tut_ID = ( int ) $_POST['tut_ID'];
$tut_main = mysql_escape_string( $_POST['tut_main'] );
$tut_header = mysql_escape_string( $_POST['tut_header'] );
$tut_datetime = mysql_escape_string( $_POST['datetime'] );
//regeleinden naar br
$tut_SQL_update="UPDATE tut SET tut_header='$tut_header',tut_main='$tut_main',tut_datetime=$tut_datetime' WHERE tut_ID='tut_ID'";
$bool=mysql_query($tut_SQL_update);
if($bool==1) echo "<script language=JavaScript>window.alert('Bericht bewerkt')</script>";
if($bool<>1) echo "<script language=JavaScript>window.alert('Er is een fout opgetreden')</script>";
}
//***********nieuwe tut maken*****************
if($action=="insert"){
//parameters lezen
$tut_main= mysql_escape_string( $_POST['tut_main'] );
$tut_header= mysql_escape_string( $_POST['tut_header']);
$tut_datetime= mysql_escape_string( $_POST['tut_datetime']);
$tut_SQL_insert="INSERT INTO tut (tut_header,tut_datetime,tut_main) VALUES ('$tut_header','$tut_datetime','$tut_main')";
$bool=mysql_query($tut_SQL_insert);
if($bool==1) echo "<script language=JavaScript>window.alert('Bericht toegevoegd')</script>";
if($bool<>1) echo "<script language=JavaScript>window.alert('Er is een fout opgetreden!')</script>";
?>
//*************tut aanpassen*******************
if($action=="update"){
//parameters lezen
$tut_ID = ( int ) $_POST['tut_ID'];
$tut_main = mysql_escape_string( $_POST['tut_main'] );
$tut_header = mysql_escape_string( $_POST['tut_header'] );
$tut_datetime = mysql_escape_string( $_POST['datetime'] );
//regeleinden naar br
$tut_SQL_update="UPDATE tut SET tut_header='$tut_header',tut_main='$tut_main',tut_datetime=$tut_datetime' WHERE tut_ID='tut_ID'";
$bool=mysql_query($tut_SQL_update);
if($bool==1) echo "<script language=JavaScript>window.alert('Bericht bewerkt')</script>";
if($bool<>1) echo "<script language=JavaScript>window.alert('Er is een fout opgetreden')</script>";
}
//***********nieuwe tut maken*****************
if($action=="insert"){
//parameters lezen
$tut_main= mysql_escape_string( $_POST['tut_main'] );
$tut_header= mysql_escape_string( $_POST['tut_header']);
$tut_datetime= mysql_escape_string( $_POST['tut_datetime']);
$tut_SQL_insert="INSERT INTO tut (tut_header,tut_datetime,tut_main) VALUES ('$tut_header','$tut_datetime','$tut_main')";
$bool=mysql_query($tut_SQL_insert);
if($bool==1) echo "<script language=JavaScript>window.alert('Bericht toegevoegd')</script>";
if($bool<>1) echo "<script language=JavaScript>window.alert('Er is een fout opgetreden!')</script>";
?>
En met de tijd, kan je beter in de query gelijk NOW() doen in plaats van de varriabele die je er nu hebt staan.
1 ding dat bij mij opkomt: ?????????????
kan je even zeggen wat er nu gebeurt ipv het originele script? Ik begrijp er namelijk niets van (als ik dat wel doe kan ik er lessen uit trekken)
SanThe schreef op 19.05.2007 23:01:
Als dit uit een boek komt dan zitten er behoorlijk wat fouten in.
In tut_edit.php krijg je tut_ID uit de url. Je verzendt het formulier naar tut_list.php maar je geeft tut_ID niet meer mee.
if($action=="update"){
$action komt uit het formulier dus dat moet een POST-var zijn.
if($_POST['action']=="update"){
En dan nog mijn eerder genoemde punten in de query.
Zet dit eens bovenin elke pagina.
In tut_edit.php krijg je tut_ID uit de url. Je verzendt het formulier naar tut_list.php maar je geeft tut_ID niet meer mee.
if($action=="update"){
$action komt uit het formulier dus dat moet een POST-var zijn.
if($_POST['action']=="update"){
En dan nog mijn eerder genoemde punten in de query.
Zet dit eens bovenin elke pagina.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest van het script
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest van het script
?>
In tut_list krijg ik devolgende fouten:
Notice: Undefined variable: action in /storage/mijndomein/users/070658/public/sites/www.onlinetutorials.be/admin/tut_list.php on line 54
Notice: Undefined variable: action in /storage/mijndomein/users/070658/public/sites/www.onlinetutorials.be/admin/tut_list.php on line 69
Notice: Undefined variable: action in /storage/mijndomein/users/070658/public/sites/www.onlinetutorials.be/admin/tut_list.php on line 82
en na tut_edit:
Notice: Undefined index: datetime in /storage/mijndomein/users/070658/public/sites/www.onlinetutorials.be/admin/tut_list.php on line 87
(dat van dat niet meer terug-geven van tut_ID had ik zelf al gevonden (trots dat ik nu ben ^^)
if($action=="update"){
moeten zo worden
if(isset($_POST['action']) and ($_POST['action'] =="update")){
Weet je nu nog hoe ik dat van de tijd kan aanpassen?
tut_ID wordt nu via een verborgen veld meegegeven...
De fout moet ook in tut_insert.php zitten want de eerste keer wordt die datetime ook niet doorgegeven.
tut_insert:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<html>
<form action=tut_list.php method=post>
<a>De titel van de tut:<br>
<input type="text" name="tut_header" value="" size="50" maxlenth="120"><br></a>
<a>De tijd (hoeft niet aangepast te worden):<br>
<input type="text" name="tut_datetime" value="<?php echo date('Y-M-D H:I:S')?>" name="19" aanlengt="19"><br></a>
<a>De inhoud van de tut (voorlopig nog in html):<br>
<textarea name="tut_main" rows="6" cols="45"></textarea><br></a>
<input type="hidden" name="action" value="insert">
<input type="submit" name="Submit" value="OK">
</form>
</html>
<form action=tut_list.php method=post>
<a>De titel van de tut:<br>
<input type="text" name="tut_header" value="" size="50" maxlenth="120"><br></a>
<a>De tijd (hoeft niet aangepast te worden):<br>
<input type="text" name="tut_datetime" value="<?php echo date('Y-M-D H:I:S')?>" name="19" aanlengt="19"><br></a>
<a>De inhoud van de tut (voorlopig nog in html):<br>
<textarea name="tut_main" rows="6" cols="45"></textarea><br></a>
<input type="hidden" name="action" value="insert">
<input type="submit" name="Submit" value="OK">
</form>
</html>
Dit bedoel je waarschijnlijk: echo date('Y-m-d H:i:s');
SanThe: Die moderator onder je naam is je niet gestolen :)
Gewijzigd op 01/01/1970 01:00:00 door reinhout