Avatar billede lazlowdk Nybegynder
02. februar 2005 - 16:09 Der er 10 kommentarer

hvat the f**k

Hvad går der galt i denne kode.... jag har stenet over den i laang tid nu men kan ikke finde en løsning... men må nok lige forklare princippet bag den.... folk kommer ind på denne side med en værdi $sang i URL'en..

<?

if(is_array($HTTP_GET_VARS)) {
  $sang = $HTTP_GET_VARS['sang'];
  $tlf = $HTTP_GET_VARS['tlf'];
} elseif (is_array($_GET)) {
  $sang = $_GET['sang'];
  $tlf = $_GET['tlf'];
}

if(!$tlf) {
if(!$sang || $sang < 1 || $sang > 5) {
?>
LINK ERROR
<?
} else {
?>

<form method="post" action="index.php?page=download">
    <input type="text" name="tlf">
    <input type="hidden" name="sang" value="<? echo $sang; ?>">
    <input type="submit" value="Send">
</form>
<?
}} else {
?>
TILLYKKE
<?
}
?>

Da der ikke er nogen $tlf værdi men en $sang værdi der er imellem 1 og 5 vil man få formen smækket på skærmen hvor man indtaster en $tlf værdi... og her går det galt... for når man trykker send i formen så burde man få TILLYKKE på skærmen da man nu har en $tlf værdi men istedet får man en LINK ERROR som om man hverken har en $sang eller $tlf værdi...
hvad går der galt?
Avatar billede flim Nybegynder
02. februar 2005 - 16:13 #1
Tror du skal bruge $tlf = $_POST[tlf] da du sender den med POST og ikke GET
Avatar billede flim Nybegynder
02. februar 2005 - 16:14 #2
Og ellers prøv at skrive din variabler ud for at teste om de indeholder hvad du tror de gør...

Dvs før du hopper ind i din løkke, så skriv ud hvad de indeholder og se om det passer med det du regnede med. Gør det noget nemmere at fejlfinde
Avatar billede lazlowdk Nybegynder
02. februar 2005 - 16:15 #3
nope... hjælper ikke.....
Avatar billede lazlowdk Nybegynder
02. februar 2005 - 16:16 #4
har jeg gjordt... og problemet ar at jeg ikke modtager nogen når jeg har brugt formen...
Avatar billede Slettet bruger
02. februar 2005 - 17:04 #5
Da du i dine variabler du henter fra HTTP VARS angiver den som get, skal du enten bruge method="GET" i din form, eller også skal du sige:

if(!$_POST[tlf]) {
Avatar billede olebole Juniormester
02. februar 2005 - 19:30 #6
<ole>

Både og ...  :)

Du skal altid huske at bruge gåseøjne i array-kald: $_POST["tlf"]. PHP skodder desværre en del på dette punkt, da sproget desværre prøver at rette op på denne kodefejl - men du åbner et sikkerhedshul ved ikke at bruge dem. Eneste undtagelse er, hvis det i forvejen står inde i et par gåseøjne:
  $sql = "INSERT INTO `tabel` SET `phone`='$_POST[tlf]'";

Desuden bør du nok teste på denne måde:
  if (isset($_POST["tlf"]) && $_POST["tlf"]<>"") {
- hvilket giver dig større sikkerhed for, at du får svar på det, du tror, du spørger om. Du sikrer dig:
1. At der eksisterer et felt med navnet 'tlf' i den form, der er blevet posted mod dokumentet
2. At dette felt ikke er tomt

/mvh
</bole>
Avatar billede lazlowdk Nybegynder
03. februar 2005 - 10:12 #7
den er helt fucked... hvs jeg bruger get i min form så kan den slet ikke finde siden.... :S .... og det virker på alle andre sider jeg har lavet...
Avatar billede lazlowdk Nybegynder
03. februar 2005 - 10:13 #8
og nope... intet virker..
Avatar billede olebole Juniormester
03. februar 2005 - 18:36 #9
Jamen, du bruger da netop både post og get. Variablen 'page' skal søges i $_GET["page"] - men resten af variablerne bør ligge i $_POST-arrayet
Avatar billede lazlowdk Nybegynder
03. februar 2005 - 20:14 #10
kan det være det der skaber konflikt?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester