FOK!forum / Digital Corner / [PHP] If-Else statement
sabanwoensdag 22 september 2004 @ 00:26
Ik heb een stuk PHP code. Klik

Op lijn 13 checkt het of alles is ingevult.
Zo ja, ga verder.
Zo niet, laat hij zien op lijn 18 dat niet alles klopt.

Op lijn 26 checkt hij of $login en $md5password overeenkomen en onder soort='2'vallen.
Zo ja, ga verder. Zo niet geef dat aan op lijn 47.

Op lijn 32 checkt of het toevoegen is gelukt.
Zo ja, laat hij lijn 34/41 zien.
Zo niet, laat dat zien op lijn 47.

Tenminste, ik wil dat het zo moet werken, maar dat is niet het geval.
Als ik een goede login/password invul maar wat niet onder soort='2' moet hij een fout geven wat hij niet doet, toevoegen doet hij ook niet.
Sanderwoensdag 22 september 2004 @ 00:32
Is soort een smallint of een integer of wat? Ik krijg nog weleens errors als ik getallen tussen haakjes zet.
sabanwoensdag 22 september 2004 @ 00:34
quote:
Op woensdag 22 september 2004 00:32 schreef Slarioux het volgende:
Is soort een smallint of een integer of wat? Ik krijg nog weleens errors als ik getallen tussen haakjes zet.
Het zit hem in de if/else.
Ik weet nooit waar ik de goede 'else' moet plaatsen etc.
Geen MySQL/DB fout.
Arceewoensdag 22 september 2004 @ 00:35
<?

function show_error() {
include "modheader.inc.php";
echo "
<center>
<font face=\"$font\" size=\"$size\">Er is een fout opgetreden</font>
";
}

include "../connect.inc.php";
include "fonts.inc.php";

$login = $_POST['login'];
$password = $_POST['password'];

$modlogin = $_POST['modlogin'];
$modpassword = $_POST['modpassword'];
$modwoonplaats = $_POST['modwoonplaats'];

if ( $login == "" || $password == "" || $modlogin == "" || $modpassword == "" || $modwoonplaats == "" ) {

include "modheader.inc.php";
echo "
<center>
<font face=\"$font\" size=\"$size\">Je heb niet alle gegevens ingevoerd!<br>Ga <a href=\"javascript:history.back(-1);\">terug</a> en vul <b>alles</b> in!</font>
";

} else {

$md5password = md5($password);
$query = mysql_query( "SELECT login, password, soort FROM moderators WHERE login='$login' AND password='$md5password' AND soort='2'" );

if ( mysql_num_rows($query) > 0 ) {

$tijd = date("YmdHis");
$md5password = md5($modpassword);
$query = "INSERT INTO `moderators` ( `id` , `login` , `password` , `soort` , `tijd` ) VALUES ( '', '$modlogin', '$md5password', '1', '$tijd' )";

if ( mysql_query ( $query ) ) {
include "modheader.inc.php";
echo "
<center>
<font face=\"$font\" size=\"$size\">Ingevoerde gegevens ter controle;<br><br>
Login: <b>$modlogin</b><br>
Wachtwoord: <b>$modpassword</b><br>
Woonplaats: <b>$modwoonplaats</b><br>
</font>
";
} else {

show_error();

}
} else {

show_error();

$query2 = mysql_query( "SELECT login, password, soort FROM moderators WHERE login='$login' AND password='$md5password');

if ( mysql_num_rows($query2) > 0 ) {

echo" <center>
<font face=\"$font\" size=\"$size\">Je zit niet in de goede soort</font>
";

}

?>

[ Bericht 64% gewijzigd door Arcee op 22-09-2004 00:59:58 ]
Lightwoensdag 22 september 2004 @ 00:43
Tip: Inspringen.

Dus:
if (blaat) {
<tab>statement;
<tab>statement;
} else {
<tab>statement;
<tab>if (blaat2) {
<tab><tab>statement;
<tab>}
<tab>if (blaat3) {
<tab><tab>statement;
<tab>}
}

Het is wat onduidelijk, maar op een andere manier kan ik het zo hier niet uitleggen
sabanwoensdag 22 september 2004 @ 00:48
Arcee thanks!
Is het ook nog mogelijk om ergens een echo toe te voegen dat je login/password wel kloppen maar je niet in soort='2' hoort, moet kunnen met een else.

/edit
Inmiddels je 2e edit zie ik nu.
Ik heb die niet gebruikt want dan blijf ik niet meer bij mijn eigen code, ik wil wel alles zelf doen, enkel met problemen wil ik ze mede door jullie kunnen oplossen.
Arceewoensdag 22 september 2004 @ 00:53
if (not $success) {

include "modheader.inc.php";
echo "
<center>
<font face=\"$font\" size=\"$size\">Er is een fout opgetreden</font>
";

$query2 = mysql_query( "SELECT login, password, soort FROM moderators WHERE login='$login' AND password='$md5password');

if ( mysql_num_rows($query2) > 0 ) {

echo" <center>
<font face=\"$font\" size=\"$size\">Je zit niet in de goede soort</font>
";
}

}
www.manowar.bewoensdag 22 september 2004 @ 00:53
inspringen + { op een nieuwe regel + if else woorden op een nieuwe regel
www.manowar.bewoensdag 22 september 2004 @ 00:54
btw entquote je post variabelen ook maar allemaal, of je site wordt gehackt
sabanwoensdag 22 september 2004 @ 00:56
Acree in $query2 heb je geen AND soort='2' ?
En je werkt alsnog met
if (not $success) {
Wat ik niet wil gebruiken omdat ik bij mijn eigen script wil blijven .. ik weet het, ik heb een php-noob die niet alles snel begrijpt ..
www.manowar.bewoensdag 22 september 2004 @ 00:56
http://paste.phpfi.com/30625

kijk eens naar die inspringingen ;-)
als je die code op jouw manier schrijft, begrijpt Einstein er zelfs niets van
sabanwoensdag 22 september 2004 @ 00:56
quote:
Op woensdag 22 september 2004 00:54 schreef www.manowar.be het volgende:
btw entquote je post variabelen ook maar allemaal, of je site wordt gehackt
Wil je ook uitleggen hoe ze dat willen doen .. dmv van zo een klein scriptje is dat niet mogelijk lijkt mij ?
Arceewoensdag 22 september 2004 @ 00:58
quote:
Op woensdag 22 september 2004 00:56 schreef saban het volgende:
Acree in $query2 heb je geen AND soort='2' ?
En je werkt alsnog met
if (not $success) {
Wat ik niet wil gebruiken omdat ik bij mijn eigen script wil blijven .. ik weet het, ik heb een php-noob die niet alles snel begrijpt ..
Ik heb 't weer aangepast. De foutmelding zit er nu 2 keer in en die heb ik bij wijze van netheid in een functie gestopt.

Geen AND soort='2', want op dat punt weet je al dat er iets fout is. Je test daar of de rest wel goed is. Zo ja, dan moet de soort fout zijn en dat is waar je om vroeg.

Ik heb dat stukje ook even aan de hele code toegevoegd (zie mijn 1e post).
www.manowar.bewoensdag 22 september 2004 @ 01:00
$msg = htmlspecialchars($_POST['msg'], ENT_QUOTES);

zoiets
gaat de quotes de ' tekentjes dus omzetten naar minder gevaarlijke html codes #&039; dingen

ben jij die Turk die een site over koken ofzo ging maken?
sabanwoensdag 22 september 2004 @ 01:04
quote:
Op woensdag 22 september 2004 00:58 schreef Arcee het volgende:

[..]

Ik heb 't weer aangepast. De foutmelding zit er nu 2 keer in en die heb ik bij wijze van netheid in een functie gestopt.

Geen AND soort='2', want op dat punt weet je al dat er iets fout is. Je test daar of de rest wel goed is. Zo ja, dan moet de soort fout zijn en dat is waar je om vroeg.

Ik heb dat stukje ook even aan de hele code toegevoegd (zie mijn 1e post).
Thanks!
Damn your good

Mocht je eens vrije tijd hebben en je vervelen, ik zoek nog een php-er voor mn project.

/edit
Hmm, het werkt nog niet correct zie ik.
Ik krijg nog steeds 'Er is een fout opgetreden' wanneer de login/passwd wel klopt maar niet in soort='2' hoort.
sabanwoensdag 22 september 2004 @ 01:13
quote:
Op woensdag 22 september 2004 01:00 schreef www.manowar.be het volgende:
$msg = htmlspecialchars($_POST['msg'], ENT_QUOTES);

zoiets
gaat de quotes de ' tekentjes dus omzetten naar minder gevaarlijke html codes #&039; dingen

ben jij die Turk die een site over koken ofzo ging maken?
Ja, niet over koken, maar turkse recepten komt er inderdaad in voor.
Arceewoensdag 22 september 2004 @ 01:14
quote:
Op woensdag 22 september 2004 01:04 schreef saban het volgende:
/edit
Hmm, het werkt nog niet correct zie ik.
Ik krijg nog steeds 'Er is een fout opgetreden' wanneer de login/passwd wel klopt maar niet in soort='2' hoort.
Komt die login/password-combo wel voor met een andere soort voor?
sabanwoensdag 22 september 2004 @ 01:16
quote:
Op woensdag 22 september 2004 01:14 schreef Arcee het volgende:

[..]

Komt die login/password-combo wel voor met een andere soort voor?
Ja, het is of 1 of 2.

/edit
Ik ga slapen, morgen t/m 13.00 en vanaf 19.00 ben ik er weer.
Arceewoensdag 22 september 2004 @ 01:21
quote:
Op woensdag 22 september 2004 01:16 schreef saban het volgende:
Ja, het is of 1 of 2.
$query2 vervangen door:

$query2 = mysql_query( "SELECT login, password, soort FROM moderators WHERE login='$login' AND password='$md5password' AND soort!='2'" );
sabanwoensdag 22 september 2004 @ 08:43
quote:
Op woensdag 22 september 2004 01:21 schreef Arcee het volgende:

[..]

$query2 vervangen door:

$query2 = mysql_query( "SELECT login, password, soort FROM moderators WHERE login='$login' AND password='$md5password' AND soort!='2'" );
Dan krijg ik;
Er is een fout opgetreden
Je zit niet in de goede soort

Dus het klopt zo als nog niet.
Sanderwoensdag 22 september 2004 @ 08:55
Doe in plaats van:
quote:
$query2 = mysql('bla bla bla ');
Dit:
quote:
$sql2 = 'bla bla';
$query2 = mysql_query($sql2);
Op de pagina's die iets met dat resultaat te maken hebben. kan je de $sql2 echoën en kijken of dat uberhaubt wel goed is .
Arceewoensdag 22 september 2004 @ 18:23
quote:
Op woensdag 22 september 2004 08:43 schreef saban het volgende:
Dan krijg ik;
Er is een fout opgetreden
Je zit niet in de goede soort

Dus het klopt zo als nog niet.
Je wou toch testen wat er gebeurde als status 1 was? In dat geval zou die melding moeten verschijnen. Of is status wel 2 en verschijnt toch die melding?
sabanwoensdag 22 september 2004 @ 22:25
quote:
Op woensdag 22 september 2004 18:23 schreef Arcee het volgende:

[..]

Je wou toch testen wat er gebeurde als status 1 was? In dat geval zou die melding moeten verschijnen. Of is status wel 2 en verschijnt toch die melding?
Je zit niet in de goede soort
Moet er staan als hij niet '2' is, dus inderdaad bij '1'.
Maar er komt ook te staan van 'Er is een fout opgetreden' terwijl die er dan niet hoort.
Als hij zegt dat je niet in de goede soort zit is het al genoeg, maar anyway, thanks.
Arceewoensdag 22 september 2004 @ 22:51
quote:
Op woensdag 22 september 2004 22:25 schreef saban het volgende:
Je zit niet in de goede soort
Moet er staan als hij niet '2' is, dus inderdaad bij '1'.
Maar er komt ook te staan van 'Er is een fout opgetreden' terwijl die er dan niet hoort.
Als hij zegt dat je niet in de goede soort zit is het al genoeg, maar anyway, thanks.
Oh, als dat alles is.

Vanaf de tweede show_error() alles (inclusief die show_error() ) vervangen door:

$query2 = mysql_query( "SELECT login, password, soort FROM moderators WHERE login='$login' AND password='$md5password');

if ( mysql_num_rows($query2) > 0 ) {

echo" <center>
<font face=\"$font\" size=\"$size\">Je zit niet in de goede soort</font>
";
} else {

show_error();

}
}

?>
sabanwoensdag 22 september 2004 @ 22:59
Arcee thx!
De rest van mijn probleempjes post ik wel in die newbie-php topic.

Want zit alweer vast met session_id();

[ Bericht 0% gewijzigd door saban op 22-09-2004 23:43:34 ]
Arceewoensdag 22 september 2004 @ 23:25
Maak er dan nog even Arcee van hier.
sabanwoensdag 22 september 2004 @ 23:43
quote:
Op woensdag 22 september 2004 23:25 schreef Arcee het volgende:
Maak er dan nog even Arcee van hier.
Done