Problém s PHP.

Programovacie jazyky, rady, poradňa...
modify
Amateur
Amateur
Príspevky: 27
Registrovaný: 20 okt 2005, 20:18

Problém s PHP.

Príspevok od používateľa modify »

Na stránke svet-financii.sk mám niekoľko podstránok s formulármi kde používam captcha.
Pokiaľ zle opíšem captcha alebo ju nenapíšem dobre a dám odoslať tak mi vypíše, chybu a mal by stránku načíta znova.
Napr:
formulár na stránke contact.html - zly kod (načíta znova contact.html)
formulár na stránke career2.html - zly kod (načíta znova career2.html)
formulár na stránke career3.html - zly kod (načíta znova career3.html)
formulár na stránke enquiry.html - zly kod (načíta znova enquiry.html)

Ale problém je, že ak nezadám alebo zle opíšem captcha (napr. na contact.html) tak mi ju znova nenačíta ale načíta enquiry.html (kde mi aj správne vypíše hlášku o chybne zadanom kóde).

Jednotlivé formuláre mám nazvané takto:

Kód: Vybrať všetko

<form id="contact" name="form1" method="post" action="output.php">
<form id="career2" name="form1" method="post" action="output2.php">
<form id="career3" name="form1" method="post" action="output3.php">
<form id="dotaznik" name="form1" method="post" action="output4.php">
Každý output.php volá funkciu check.php

Kód: Vybrať všetko

<?php
// DO NOT EDIT
session_start();
error_reporting(E_ALL ^ E_NOTICE);
require_once("config.php");
if(isset($_GET['pfw_security_code']))
{
$code = $_GET['pfw_security_code'];
}
else
{
$code = $_POST['pfw_security_code'];
}
if(!$CaseSenstive)
{
  $code = strtolower($code);
}
if(md5($code)==$_SESSION['pfw_text']) $comp = 1;

if($comp!=1)
{
   switch($error_display_mode)
   {
     case 0:
    die("<p align='center'><font face='Arial' size='3' color='#FF0000'>$error</font></p>");
    break;

    case 1:
    header("location: $error_page");
    break;

    case 2:

    $translation = implode('',@file($form));
    $translation = str_replace("<!-- error alert goes here -->","<p align='center'><font face='Arial' size='3' color='#FF0000'>$error</font></p>",$translation);
    header("Cache-control: public");
    die($translation);
     break;

   }

}
if($redirect)
{
  header("location: $success_page");
}
?>


Súbor config.php je takýto:

Kód: Vybrať všetko

<?php
//this file includes the settings of form captcha
$error = 'nesprávny bezpečnostný kód'  ;
$error_display_mode = 2 ;
$error_page=  '' ;
$font =  4  ;
$hight = 40  ;
$width =  120  ;
$text_length = 3  ;
$border =  0  ;

//Make sure you change this to refelct the proper contact form name.

if($id ='contact') $form = 'contact.html';
if($id ='career2') $form = 'career2.html';
if($id ='career3') $form = 'career3.html';
if($id ='dotaznik') $form = 'enquiry.html';
$CaseSenstive = false  ;
$user = 'max'  ;
$pass =  'dde2790ce930e3d425305c36afd4e69c' ;
$redirect = false ;
$success_page = ''  ;
?>
Ako mám spraviť, aby mi načítavalo tú podstránku, ktorú má. Ďakujem
(skúšal som to v config.php cez if ale aj tak mi to nejde a už som z toho jeleň).
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

nepozeral som skript ale zazrel som tam nieco co asi nie je OK.

Kód: Vybrať všetko

if($id ='contact') $form = 'contact.html';
if($id ='career2') $form = 'career2.html';
if($id ='career3') $form = 'career3.html';
if($id ='dotaznik') $form = 'enquiry.html'; 
v php sa na porovnavanie pouziva == alebo este lepsie ===
vivaSlovakia
Guru wannabe
Guru wannabe
Príspevky: 2119
Registrovaný: 29 júl 2006, 10:30

Príspevok od používateľa vivaSlovakia »

mastermind napísal:nepozeral som skript ale zazrel som tam nieco co asi nie je OK.

Kód: Vybrať všetko

if($id ='contact') $form = 'contact.html';
if($id ='career2') $form = 'career2.html';
if($id ='career3') $form = 'career3.html';
if($id ='dotaznik') $form = 'enquiry.html'; 
v php sa na porovnavanie pouziva == alebo este lepsie ===
to === znamena identicke... ale identicke v com ? okrem hodnoty este coho ?..
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

fruxo napísal:to === znamena identicke... ale identicke v com ? okrem hodnoty este coho ?..
php nema pri premennej napevno prideleny skalarny typ. tzn ze sa dynamicky urcuje ci ej to string, int, float atd
najlahsie to clovek pochopi na tomto
8=="8" true
8==="8" false
Napísať odpoveď