Caratteri che non si vedono

Volevo sapere se esistono caratteri invisibili, nella pag ho messo

- campo obbligatorio

eppura un tipo riesce a inviare il form con i campi vuoti

inviato 10 anni fa
php
php
6
X 0 X

Come hai realizzato la funzione "campo obbligatorio"?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Come hai realizzato la funzione "campo obbligatorio"?

Ho questo

if (empty($messaggio))

echo "Inserire il Messaggio";

risposto 10 anni fa
php
php
6
X 0 X

Forse il problema è causato dagli spazi. Prova con:

$messaggio = trim($messaggio);

if (empty($messaggio))

...

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Forse il problema è causato dagli spazi. Prova con:

$messaggio = trim($messaggio);

if (empty($messaggio))

...

 :bye:

C'è già,

$messaggio = ucfirst(stripslashes(strip_tags(trim($_POST['messaggio'],"\x00..\x1F"))));

l'utente mi invia il form completamente vuoto, come fa?  :wallbash:

risposto 10 anni fa
php
php
6
X 0 X

prova a cambiare:

$messaggio = ucfirst(stripslashes(strip_tags(trim($_POST['messaggio'],"\x00..\x1F"))));

con

$messaggio = ucfirst(stripslashes(strip_tags(trim($_POST['messaggio']))));

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

prova a cambiare:

$messaggio = ucfirst(stripslashes(strip_tags(trim($_POST['messaggio'],"\x00..\x1F"))));

con

$messaggio = ucfirst(stripslashes(strip_tags(trim($_POST['messaggio']))));

Dici di togliere l'ultima parte?

Però non lo posso provare perchè non conosco il trucco. Che faccio?

risposto 10 anni fa
php
php
6
X 0 X

Secondo me il "trucco" consisteva nell'inserire degli spazi nei campi del form. Prova a vedere se era così e se la soluzione che ti ho proposto funziona.

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Secondo me il "trucco" consisteva nell'inserire degli spazi nei campi del form. Prova a vedere se era così e se la soluzione che ti ho proposto funziona.

Ho provato  con la barra spaziatrice ma esce l'alert

risposto 10 anni fa
php
php
6
X 0 X

hai provato anche:

ALT-255

%20

risposto 10 anni fa
LonelyWolf
X 0 X

hai provato anche:

ALT-255

%20

Si, ma appaiono a video

risposto 10 anni fa
php
php
6
X 0 X
Secondo me il "trucco" consisteva nell'inserire degli spazi nei campi del form. Prova a vedere se era così e se la soluzione che ti ho proposto funziona.

Ho provato  con la barra spaziatrice ma esce l'alert

...a meno che non ci sia un'altro modo per creare spazi bianchi  :-[

risposto 10 anni fa
php
php
6
X 0 X

ma il trim te li cancella comunque!!! quindi forse il problema è un altro...

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
ma il trim te li cancella comunque!!! quindi forse il problema è un altro...

Gianni, ho pensato di postare la pag così puoi vedere

$nome = stripslashes(strip_tags(trim($_POST['nome'],"\x00..\x1F")));

$email = $_POST['email'];

$citta = ucwords(stripslashes(strip_tags(trim($_POST['citta'],"\x00..\x1F"))));

$url = $_POST['url'];

$messaggio = ucfirst(stripslashes(strip_tags(trim($_POST['messaggio'],"\x00..\x1F"))));

$messaggio = wordwrap($messaggio, 60, "<br/>",1);

//strlen = numero max di caratteri inseribili

if(strlen($nome) > 15){

$errore = true;

echo "<br><br><br><br><br><br><br><br><tr><td valign=\"center\"><center><font family=\"Arial\" size=\"5\"> NOME: max 15 caratteri</font></center><br />";

}

if(strlen($email) > 30){

$errore = true;

echo "<br><br><br><br><br><br><br><br><tr><td valign=\"center\"><center><font family=\"Arial\" size=\"5\"> EMAIL: max 30 caratteri</font></center><br />";

}

if(strlen($url) > 80){

$errore = true;

echo "<br><br><br><br><br><br><br><br><tr><td valign=\"center\"><center><font family=\"Arial\" size=\"5\"> URL: max 80 caratteri</font></center><br />";

}

if(strlen($citta) > 15){

$errore = true;

echo "<br><br><br><br><br><br><br><br><tr><td valign=\"center\"><center><font family=\"Arial\" size=\"5\"> CITTA': max 15 caratteri</font></center><br />";

}

if(strlen($messaggio) > 500){

$errore = true;

echo "<br><br><br><br><br><br><br><br><tr><td valign=\"center\"><center><font family=\"Arial\" size=\"5\"> MESSAGGIO: max 500 caratteri</font></center><br />";

}

//Caratteri non ammessi

if(strpos($nome.$citta.$messaggio, "\\") !== false)

$errore .= "<br><br><br><br><br><br><br><br><tr><td valign=\"center\"><center><font family=\"Arial\" size=\"5\">Il carattere \"<font color=\"red\">\</font>\" non è ammesso</font></center><br />";

//parole proibite (vedi config.php)

$stringa1 = $_POST['messaggio'].' '.$nome.' '.$email.' '.$url.' '.$citta;

foreach($parole_proibite as $parola){

if(stristr($stringa1, $parola) !== false){

$errore .= "<br><br><br><br><br><br><br><br><tr><td valign=\"center\"><center><font family=\"Arial\" size=\"5\">La parola \"<font color=\"red\">$parola</font>\" non è ammessa</font></center><br />";

 }

}

//siti proibiti (vedi config.php)

$stringa2 = $_POST['url'].' '.$nome.' '.$email.' '.$citta.' '.$messaggio;

$stringa2 = explode(" ",strtolower($stringa2));

foreach($stringa2 as $sito){

foreach($siti_proibiti as $banned){

if (strpos($sito,$banned))

$errore .= "<br><br><br><br><br><br><br><br><tr><td valign=\"center\"><center><font family=\"Arial\" size=\"5\">Il sito \"<font color=\"red\">$sito</font>\" non è ammesso</font></center><br />";

 }

}

//Valida l'Email

//valida pippo@email.{2,4}//pip.po@email.{2,4}//pip_po@email.{2,4}//pip-po@email.{2,4}

if($email){

if(!ereg("^([#$&a-z0-9]+)(\.[#$&a-z0-9]+)?(-[#$&a-z0-9]+)?(_[#$&a-z0-9]+)?[@][a-z]+(\.[a-z]{2,4})$",$email)){

$errore .= "<br><br><br><br><br><br><br><br><tr><td valign=\"center\"><center><font family=\"Arial\" size=\"5\">Inserire un' Email valida</font></center><br />";

 }

}

//Valida url (Campo non obbligatorio)

//valida https://www.pippo.sito.dominio.{2,4}/forum/home.{2,4}

if ($url){

if (!preg_match("/^((http(s)?:\/\/)|(www\.))+[A-Za-z0-9]+(\.[A-Za-z0-9]+)?(\.[A-Za-z0-9]+)?(\.[a-z]{2,4})(\/[A-Za-z0-9]+)?((\/[A-Za-z0-9]+)(\.[a-z]{2,4}))?$/",$url)){ 

$errore .= "<br><br><br><br><br><br><br><br><tr><td valign=\"center\"><center><font family=\"Arial\" size=\"5\">Inserire un' URL valido</font></center><br />";

 }

}

//Campi obbligatori

if (empty($nome))

$errore .= "<br><br><br><br><br><br><br><br><tr><td valign=\"center\"><center><font family=\"Arial\" size=\"5\">Inserire il Nome</font></center><br />";

else

if (empty($messaggio))

$errore .= "<br><br><br><br><br><br><br><br><tr><td valign=\"center\"><center><font family=\"Arial\" size=\"5\">Inserire il Messaggio</font></center><br />";

if($errore) 

echo $errore;

if($errore):

$tab_ins;

$meta="<META http-equiv=\"REFRESH\" content=\"3; url=http://www.xxx.altervista.org/guestbook/form.php\">";

//Fa mantenere i dati inseriti nel form dopo un'alert

session_start();

$_SESSION['nome'] = $nome;

$_SESSION['email'] = $email;

$_SESSION['url'] = $url;

$_SESSION['citta'] = $citta;

$_SESSION['messaggio'] = $messaggio;

else:

$nome = str_replace("\n","",$nome);

$citta = str_replace("\n","",$citta);

$url = str_replace("\n","",$url);

$url = str_replace("www.", "http://",$url);

$messaggio = str_replace("\n","",$messaggio);

$data=date("d/m/Y");

$orario=date("H.i");

$commento=$nome."|".$email."|".$citta."|".$url."|".$messaggio."|".$data."|".$orario."\n";

if (!(file_exists($file)))

{fopen($file,"w");}

// Scrittura del nuovo messaggio su file

$new_mess=fopen($file,"a+");

fwrite($new_mess,$commento);

fclose($new_mess);

$arr_mess=file($file);

$count=count($arr_mess);

$pagine_totali= ceil($count/$risultati_per_pagina);

$tab_ins= "<br><br><br><br><br><table width=\"400\"height=\"150\" align=\"center\"\" cellpadding=\"5\" cellspacing=\"0\" bordercolor=\"#0000FF\" bgcolor=\"#DDFBDB\" style=\"border:1px solid;\">";

$tab_ins .= "<tr><td valign=\"bottom\"><center><font family=\"Arial\" size=\"4\">GRAZIE ".$nome."</td></tr></center><tr><td valign=\"top\"><center></font><font family=\"Arial\" size=\"4\">IL TUO MESSAGGIO E' STATO INSERITO!</font></center>";

$tab_ins .= "</td></tr></table><br><br><br>";

$meta="<META http-equiv=\"REFRESH\" content=\"3; url=http://www.xxx.altervista.org/guestbook/form.php\">";

if ($meta){

//Distrugge tutti i dati registrati una sessione e il form si svuota

session_start();

$_SESSION['nome'] = $nome;

$_SESSION['email'] = $email;

$_SESSION['url'] = $url;

$_SESSION['citta'] = $citta;

$_SESSION['messaggio'] = $messaggio;

session_destroy();

}

risposto 10 anni fa
php
php
6
X 0 X

Esegui questi due script e poi trai le dovute conseguenze:

<?php
$testo = " ";

$nome = stripslashes(strip_tags(trim($testo,"\x00..\x1F")));

if (empty($nome))
   echo "vuoto";
else
   echo "pieno";
?>
<?php
$testo = " ";

$nome = stripslashes(strip_tags(trim($testo)));

if (empty($nome))
   echo "vuoto";
else
   echo "pieno";
?>

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ho fatto la prova:

con il primo codice riempio il campo "nome" e "messaggio" del form e  passa MA A VIDEO IL CAMPO NOME E' IN BIANCO...vuoi dire che è questo? "\x00..\x1F"

Come ha fatto, non può avermi modificato il codice

col secondo codice esce l'alert.

Gianni spiegami....

risposto 10 anni fa
php
php
6
modificato 10 anni fa
X 0 X

Non ho ben capito cosa mi hai detto, comunque i due esempi che ti ho riportato dimostrano che un campo contenente uno spazio " " viene considerato "pieno" utilizzando nel trim i caratteri "\x00..\x1F" mentre viene considerato vuoto senza quei caratteri.

Quindi inizia a togliere quei caratteri dallo script e vedi se il problema persiste.

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Non ho ben capito cosa mi hai detto, comunque i due esempi che ti ho riportato dimostrano che un campo contenente uno spazio " " viene considerato "pieno" utilizzando nel trim i caratteri "\x00..\x1F" mentre viene considerato vuoto senza quei caratteri.

Quindi inizia a togliere quei caratteri dallo script e vedi se il problema persiste.

Li ho tolti, ma quando c'erano e facevo le prove se schiacciavo solo la barra spaziatrice mi usciva l'alert, non ho ancora capito come faceva lui.

Riguardo a "Non ho ben capito cosa mi hai detto" intendevo che usando il primo codice e scrivendo qualcosa nel campo, il form si inviava lo stesso e a video il campo appariva vuoto proprio come probabilmente faceva l'utente.

Però mi sto ancora chiedendo come faceva ad inviarlo "vuoto" senza che gli uscisse l'alert

 

risposto 10 anni fa
php
php
6
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda