mysql receave url and redirect

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Mar groen

mar groen

06/06/2010 14:17:28
Quote Anchor link
mijn sql db heeft een table die de gameidnaam draagt
en in die table staat url en dan de panel url

wat mij code dus moet doen is de gameid uit de sessie halen vervolgens connecteren naar de sql db en dan de table (de gameid) en dat in de row url en dan naar de url redirecteren

maar ik krijg steeds : http://gmforce.co.cc/Location=$gameid of http://gmforce.co.cc/recourceid #5
??

weet iemand hoe ik dit oplos?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
include "check.php";
include "config.php";

$gameid = $_SESSION['gameid'];

mysql_connect("$host", "$username", "$pass")or die("cannot connect");
mysql_select_db("$db")or die("this game panel has not been activated or does not exist please contact our support for more info");
$sql="SELECT * FROM $gameid WHERE url=''";
$result=mysql_query($sql);

header('Refresh: 10; Location=$gameid');

echo 'Over 10 seconden word je doorgestuurd.';
?>
 
PHP hulp

PHP hulp

26/04/2024 21:12:16
 
Mar groen

mar groen

06/06/2010 14:22:28
Quote Anchor link
ps.
je kan het proberen www.gmforce.co.cc

en dan inloggen met
username : mmuziek
pass : mmuziek
gameid : megaword

Graag niet bumpen; twee berichten van jezelf na elkaar binnen 24 uur plaatsen. Heb je een toevoeging aan je vorige bericht, gebruik dan het 'wijzigen' icoontje.[/modedit]
Gewijzigd op 06/06/2010 19:17:17 door Joren de Wit
 
Noppes Homeland

Noppes Homeland

06/06/2010 14:26:28
Quote Anchor link
1. strings quote je bij voorkeur met ''
2. er ontbreekt het een en ander
-> session start
-> controle en validatie
-> foutafhandeling
3. php-variabelen buiten quotes
4. or die () is struisvogelpolitiek, pas fatsoenlijk foutafhandeling toe
5. ongehoord databasemodel, ga normaliseren
6. als je database tabellen gaat missen, dan moet je vooral op deze manier code implementeren, maw bescherm je tegen SQL injectie

onderstaande code is bijna gelijk aan wat er uitgevoerd wordt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
session_start();
header('Refresh: 10; Location='.(isset($_SESSION['gameid']) && trim($_SESSION['gameid']) != '' ? $_SESSION['gameid'] : '1')));
?>
Gewijzigd op 06/06/2010 14:34:09 door Noppes Homeland
 
- SanThe -

- SanThe -

06/06/2010 14:27:48
Quote Anchor link
$vars buiten de quotes houden.
 
Joren de Wit

Joren de Wit

06/06/2010 14:28:08
Quote Anchor link
Er gaan een aantal dingen nog niet goed:

- Je SQL query selecteert nu records uit de tabel $gameid waar geen url ingevuld is (waarbij de waarde van $gameid uit de sessievariabele komt). Klopt dat?
- Je voert de query vervolgens wel uit, maar doet verder niets met het resultaat. In plaats daarvan stuur je de gebruiker direct door naar de url $gameid, waarvan de waarde eerst nog een tabelnaam voorstelde?

Loop je code nog eens goed na en probeer te begrijpen wat er precies gebeurt. Dan zul je zelf wel zien dat het eigenlijk nergens op slaat :-)

edit: Te laat uiteraard... :-)
Gewijzigd op 06/06/2010 14:29:18 door Joren de Wit
 
Mar groen

mar groen

06/06/2010 18:36:39
Quote Anchor link
1. de sessie is gestart vanuit de login en checking script dus

login>checklogin>dit script

dit script krijgt de value van de vorige script gameid dus.

de table in de sql heeft de game id naam dus stel Gameid = paardelopen
dan heet de table paardelopen.

vervolgens probeer ik het de url van die table te halen die er al ingeprogrameerd is

ik zag dat ik de oude code gaf..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
include "check.php";
include "config.php";

$gameid = $_SESSION['gameid'];

mysql_connect("$host", "$username", "$pass")or die("cannot connect");
mysql_select_db("$db")or die("this game panel has not been activated or does not exist please contact our support for more info");
$sql="SELECT * FROM $gameid WHERE url=''";
$result=mysql_query($sql);

header('Refresh: 10; Location=$result');

echo 'Over 10 seconden word je doorgestuurd.';
?>


dit krijg ik als ik em nu draai

http://gmforce.co.cc/Location=$result
de url van de sql hoort op de plaats te komen van de hele url
dus http://gmforce.co.cc/users/megaword < dit staat onder url in de mysql table
 
Noppes Homeland

Noppes Homeland

06/06/2010 18:44:23
Quote Anchor link
Je gaat gewoon vrolijk verder zonder te lezen wat er gepost is.

Je zit nu overigens met een rewrite probleem, maar het lijkt mij verstandiger om eerst de punten aan te pakken welke genoemd zijn.
Gewijzigd op 06/06/2010 22:04:19 door Noppes Homeland
 
Mar groen

mar groen

06/06/2010 21:05:28
Quote Anchor link
sessie is al gestart dus kan moeilijk nog een keer gestart worden
url is ingevult in de database

je zegt dat er dingen ontbreken en klaagt over mijn fout rapportering

1. strings quote je bij voorkeur met '' < onthoudt ik maar maakt bijna geen verschil
2. er ontbreekt het een en ander
-> session start < is al in een eerder script gebeurd
-> controle en validatie < is ook al in eerdere scripts gebeurd de data die hij ontvangt is al meerdere malen gecontroleerd
-> foutafhandeling < or die. error ..
3. php-variabelen buiten quotes < die snap ik niet
4. or die () is struisvogelpolitiek, pas fatsoenlijk foutafhandeling toe < laat maar zien
5. ongehoord databasemodel, ga normaliseren < die snap ik ook niet
6. als je database tabellen gaat missen, dan moet je vooral op deze manier code implementeren, maw bescherm je tegen SQL injectie < weet niet wat maw is ga jij maar uitleggen hoe ik een database anders maak..
 
Noppes Homeland

Noppes Homeland

06/06/2010 21:30:27
Quote Anchor link
1. bijna geen verschil
-> het gaat ook om het niet onnodig te hoeven escapen
-> overzichtelijkheid
-> leesbaarheid
2. tja daar kom je dan 4 uur te laat mee
3. zie 1
4. fatsoenlijke foutafhandeling is dat je script niet stopt en dat de code die afhankelijk is van de query die fout is gegaan op correcte wijze wordt afgehandeld, door bijvoorbeeld de mysql_error weg te schrijven in een file en een nette meldiing te geven dan wel er voor te zorgen dat de rest van de code door default settings correct wordt doorlopen
5. zoek het internet maar af op de trefwoorden: datbasenormalisatie
6. maw == m.a.w. - met andere woorden -, en ook het begrip SQL Injectie kan je vinden door te zoeken
 
Mar groen

mar groen

07/06/2010 08:26:37
Quote Anchor link
wat is volgens u dan de oplossing op mijn probleem
normaliseren is gewoon handig als je meer overzicht wilt.
en die quotes enzo is puur overzicht..

die fouten afhandelink zou ik niet weten hoe aangezien ik een gedeeltelijke beginner ben en mijn script maak met kleine stukjes code.

dus graag uitleg wat ik nu moet veranderen (voor mn script niet voor overzicht)
en dan graag als het kan een stukje code erbij.
 
Joren de Wit

Joren de Wit

07/06/2010 08:44:14
Quote Anchor link
Mar groen op 07/06/2010 08:26:37:
normaliseren is gewoon handig als je meer overzicht wilt.

Fout! Normaliseren is juist noodzakelijk als je niet tegen problemen aan wilt lopen! Werken met een incorrect datamodel resulteert op een gegeven moment in problemen die niet redelijkerwijs meer op te lossen zijn. Je gaat dan op zoek naar omwegen met hele lappen PHP code, als dat al mogelijk is. Die variabele tabelnamen zijn al 1 voorbeeld waar het fout gaat.

Verder gaat het in je script fout bij de basis. De volgorde om iets uit de database te selecteren is altijd query opstellen > query uitvoeren > resultaat fetchen. De laatste stap ontbreekt in jouw geval nog. Lees bijvoorbeeld eens deze SQL beginnershandleiding om te zien hoe je werkt met een database.
 
Mar groen

mar groen

07/06/2010 10:34:23
Quote Anchor link
mijn data structure is gemaakt op volgorde van gebruik.

ID URL GAMENAME >>>

De id voor datawijzeging
url voor redirect
Gamename voor payment en panel.

en de rest doet er niet toe

ik vraag om uitleg hierbij en hoe ik het oplos ik kan bijna wedden dat het niet aan de DB ligt

dus als het mogelijk is beetje hulp en misshien een stukje code om mij op weg te helpen.
 
Joren de Wit

Joren de Wit

07/06/2010 11:10:38
Quote Anchor link
Een tabel in je database bevat normaal gesproken meerdere records. Hoe bepaal jij welk record en dus welke url opgehaald moet worden?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
="SELECT * FROM $gameid WHERE url=''";
?>


Dit is de query die jij gebruikt. In de WHERE zeg je dat er een record opgehaald moet worden waar de url leeg is. Dat lijkt me onlogisch als je juist een url uit je tabel wilt selecteren. Bevat de 'Gamename' kolom dezelfde waarde als het gameid, dus uit jouw voorbeeld paardelopen? Zo ja, dan zou je daarop moeten selecteren in je WHERE clausule.

Dan tenslotte nog: je vraagt om hulp, maar als je dan goede hulp krijgt wijs je die direct van de hand als niet ter zake zijnde en wil je per se op de foute manier verder geholpen worden. Dat snap ik niet. Er zijn genoeg goede aanwijzingen gegeven, maar daar doe je blijkbaar niets mee. Heb je bijvoorbeeld die SQL beginnershandleiding al doorgenomen? Kortom, misschien is het handig om goede adviezen niet direct in de wind te slaan en eens te kijken wat men nu precies bedoelt en misschien toch die methode gebruiken...
 
Mar groen

mar groen

07/06/2010 11:33:18
Quote Anchor link
sorry als ik verkeert opgevat word ik zal gelijk zeggen waar dit vandaan komt.
ik ben een autist. geen werk zit dus al 3 jaar thuis. irri. dus ik vind het lastig om verwezen te worden naar verschillende 10 paginas lange tutorials. terwijl de oplossing meestal in 1 regel past.

maarja back to topic

dit is mijn code nu aangepast

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
include "check.php";
include "config.php";

$gameid = $_SESSION['gameid'];

mysql_connect("$host", "$username", "$pass")or die("cannot connect");
mysql_select_db("$db")or die("this game panel has not been activated or does not exist please contact our support for more info");
$sql="SELECT url FROM $gameid";
$result=mysql_query($sql);

header('Refresh: 3; Location=$result');

echo 'Over 3 seconden word je doorgestuurd.';
?>



het enige waar ik nog tegenaanloop is de header redirect
die maar Location=$result doorgeeft inplaats van de value $result
Gewijzigd op 07/06/2010 11:34:57 door mar groen
 
Joren de Wit

Joren de Wit

07/06/2010 11:46:31
Quote Anchor link
Zoals eerder al gezegd, $result bevat niet de waarde die jij denkt dat hij bevat. Het is namelijk een resultaatset van de uitgevoerde query, die zul je eerst nog moeten fetchen. Gebruik mysql_fetch_assoc().

Ik raad je toch echt aan om die handleiding eens door te lezen, daar staat dit namelijk allemaal in uitgelegd. Bovendien komt daar het onderwerp foutafhandeling ook aan de orde, iets dat in jouw script nu nog ontbreekt.
 
Mar groen

mar groen

07/06/2010 14:38:04
Quote Anchor link
ik heb de hele script nagelopen en de Error system toegepast
tevens heb ik ook the fetch toegepast en dit is mijn code nu:
ik krijg nog steeds http://gmforce.co.cc/Location=$row

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
include "check.php";
include "config.php";

$gameid = $_SESSION['gameid'];

mysql_connect("$host", "$username", "$pass")or die("cannot connect");
mysql_select_db("$db")or die("this game panel has not been activated or does not exist please contact our support for more info");
$sql="SELECT url FROM $gameid";
if (!$result=mysql_query($sql))
{

trigger_error(mysql_error().'<br />In query: '.$sql);
}

elseif(mysql_num_rows($result) == 0)
{

echo 'Geen resultaten gevonden<br />';
}

else
{
    while($row = mysql_fetch_assoc($result))
    {

        header('Refresh: 3; Location=$row');
        echo $row['url'].'<br />';
        echo 'Over 3 seconden word je doorgestuurd.';
    }
}


?>
 
- SanThe -

- SanThe -

07/06/2010 15:09:43
Quote Anchor link
Zoals Blanche reeds zeer duidelik aan heeft gegeven. Volg de adviezen eens op.

SanThe Nvt op 06/06/2010 14:27:48:
$vars buiten de quotes houden.


Dat daar steeds $row staat komt door de quotes.
 
Mar groen

mar groen

07/06/2010 15:57:13
Quote Anchor link
oww ik geloof dat ik em snap

dat doe ik nu dus dan krijg ik dit

Quote:
header('Refresh: 3; Location='$row);

dan krijg ik:
Parse error: syntax error, unexpected T_VARIABLE in /home/mmuziek/public_html/klanten/gmforce.co.cc/login_success.php on line 22

word een beetje lastig ..
misschien is het beter om de redirect te veranderen naat click here to open your panel..
Gewijzigd op 07/06/2010 18:48:56 door mar groen
 
Mar groen

mar groen

07/06/2010 18:48:11
Quote Anchor link
.
Gewijzigd op 07/06/2010 18:48:42 door mar groen
 
Noppes Homeland

Noppes Homeland

07/06/2010 19:09:49
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
header('Refresh: 10; Location='.$row['......']);
//                           <-|->
?>



Lees nu alsjeblieft eens op php.net wat de functies doen, zo moelijk moet dat toch niet zijn:
http://www.php.net/mysql_fetch_assoc
 
Mar groen

mar groen

07/06/2010 21:21:53
Quote Anchor link
die code heb ik geprobeert werkte niet. dus ja ik heb het al gefixt
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.