Ciao, per interagire con noi registrati o accedi al forum. Se vuoi rimanere aggiornato

Se cercate un posto dove parlare di tutto ciò che non rientra nelle altre stanze di discussione, questo è il posto giusto!
Avatar utente
Messaggio Da leoGT
#206278 Non so dove sbattere la testa, nessuno mi sa aiutare. Spero in voi çç Sto realizzando un sito, ma ho un problema con una pagina. Praticamente in questa pagina html c'è un form, collegato al file dati.php . Questo deve controllare se tutti i componenti del form e sono tutti compilati, in base al sesso deve aprire una pagina html con sfondo rosa o azzurro (quando premo il tasto invia). Ma non funziona. Precisamente, quando premo invia, mi da errore e non apre nessuna pagina possibile. Dove è l'errore? Spero che qualcuno di voi, conosca il php

<?php

$redirect = "maschio.html";
$redirect1 = "femmina.html";
if ($_GET['nome'] == "") //il controllo devi farlo sulla stringa vuota "" non sullo spazio " "
{
echo "Non hai inserito il nome";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['cognome'] == "")
{
echo "Non Hai inserito il cognome!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['sesso'] == "")
{
echo "Non hai specificato il sesso!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['provincia'] == "")
{
echo "Non hai specificato la provincia!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['provincia'] == "")
{
echo "Non hai specificato la provincia!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['citta'] == "")
{
echo "Non hai specificato la città!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['voto'] == "")
{
echo "Non hai specificato il voto!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['auto'] == "")
{
echo "Non hai specificato la tua auto preferita!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}

else {

if ($sesso == "m")
{header("Location: $redirect");}
else
{header("Location: $redirect2");}
?>
Avatar utente
Messaggio Da nox
#206285 Non ricordo nulla di PHP però prova a fare così:

if ($sesso == "m")
{header("Location: maschio.html");}
else
{header("Location: femmina.html");}
?>


oppure mettendo http://percorso_della_pag_maschio/femmina.html

E' solo un'idea (ribadisco non ricordo nulla, quindi mi sa che questa estate lo ripasso) però generalmente se sbagliavo qualche cosa provavo varie soluzioni, anche le più disperate, e di solito arrivavo al risultato sperato
Avatar utente
Messaggio Da ngc4501
#206293 Se dici che ti da un errore quando vai alla pagina php, presumo ci sia un errore di chiusura di parentesi graffe alla fine dello script, sembra che non sia chiusa bene l'ultima "else"
Prova a modificare le ultime righe così:
Codice: Seleziona tuttoelse { // Inizio ultimo else

if ($sesso == "m")
{header("Location: $redirect");}
else
{header("Location: $redirect2");}

}//Fine  ultimo else
?>


Ad occhio sembra questo che potrebbe interromperti lo script
Avatar utente
Messaggio Da leoGT
#206297
ngc4501 ha scritto:Ad occhio sembra questo che potrebbe interromperti lo script


Ho provato a seguire il tuo consiglio. Ora mi dice sempre "Non Hai inserito il cognome!Torna al questionario...", anche se box sono tutte compilate o se gli errori sono nelle altre celle :(
Avatar utente
Messaggio Da ngc4501
#206298 Ti da quell'errore perchè sta facendo il controllo non sui campi compilati ma cerca un parametro nell'url tipo pagina.php?nome=???
Sostituisci $_GET['nome'] con $_POST['nome'] quindi il codice diventa così:
Codice: Seleziona tuttoif ($_POST['nome'] == "") //il controllo devi farlo sulla stringa vuota "" non sullo spazio " "
{
echo "Non hai inserito il nome";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}

Dovrebbe funzionare
Avatar utente
Messaggio Da leoGT
#206299 Io ho una voglia atroce di buttare tutto all'aria -.- Ora mi dice che non ho inserito il nome .-.
Questo codice è assurdo. Ogni volta che risolvo un errore, ne salta un altro fuori
Avatar utente
Messaggio Da Francesco_96
#206301 Non ricordo bene PHP... prova ad utilizzare empty: http://php.net/manual/en/function.empty.php. Utilizza poi qualche buon editor, tipo Dreamweaver, che ti permette di effettuare anche un semplice dubug.
Ultima modifica di Francesco_96 il mar mag 31, 2011 7:38 pm, modificato 4 volte in totale.
Avatar utente
Messaggio Da ngc4501
#206303 Lol non disperarti..ti capisco a me capita con il lavoro a volte interruzioni di tutto il sito per delle c***te alla fine..c'è sempre una soluzione a tutto
Sei sicuro di averlo il campo nominato "nome" sul form html?
Avatar utente
Messaggio Da leoGT
#206306 Si, ho ricontrollato anche la pagina html.. Niente da fare .-.

Codice: Seleziona tutto<form methop="get" action="dati.php">
    <tr>
     <td height="50"><p> Nome <br>  <input type="text" size="20" maxlength="15" name="nome"> </p></td>
     <td><p> Cognome <br>  <input type="text" size="20" maxlength="15" name="cognome"> </p> </td>
    </tr>
    <tr>
     <td height="50"> <p>Città Residenza <br>  <input type="text" size="20" maxlength="15" name="citta">  </p></td>
     <td> <p>Provincia <br>
      <select name="provincia">
       <option selected> Seleziona la provincia </option>
       <option> Foggia </option>
       <option> Bari </option>
       <option> Bat </option>
       <option> Taranto </option>
       <option> Brindisi </option>
       <option> Lecce </option>
      </select>
     </p></td>
    </tr>
    <tr>
     <td height="50"><p> Sesso <br> <input type="radio" name="sesso" value="m">Maschio <br> <input type="radio" name="sesso" value="f">Femmina </p></td>
     <td><p> Automobile preferita <br> <input type="text" size="20" maxlenght="15" name="auto"> </p></td>
    </tr>
    <tr>
     <td colspan="2" height="50"><p> Che voto merita il nostro sito?       
      <select name="voto">
       <option selected> Scegli una valutazione </option>
       <option> 1 </option>
       <option> 2 </option>
       <option> 3 </option>
       <option> 4 </option>
       <option> 5 </option>
       <option> 6 </option>
       <option> 7 </option>
       <option> 8 </option>
       <option> 9 </option>
       <option> 10 </option>
      </select>
     </p></td>
    </tr>
    <tr>
     <td align="center"><p> <input type="submit" value="   INVIA   "> </p></td>
     <td align="center"> <p><input type="reset" value="AZZERA"> </p></td>
    </tr>
   </form>
  </table> 
Avatar utente
Messaggio Da ngc4501
#206308 C'è un piccolo errore nel form html non hai impostato correttamente in che modo deve ricevere i dati lo script
Cambia la prima riga così:
Codice: Seleziona tutto<form method="POST" action="dati.php">

Forse era per questo che non funzionava
Avatar utente
Messaggio Da leoGT
#206309
ngc4501 ha scritto:C'è un piccolo errore nel form html non hai impostato correttamente in che modo deve ricevere i dati lo script
Cambia la prima riga così:
Codice: Seleziona tutto<form method="POST" action="dati.php">

Forse era per questo che non funzionava

Ancora niente D: Mi dice sempre che manca il nome :?
Avatar utente
Messaggio Da leoGT
#206312 Ho risolto parzialmente. Ho tolto gli elseif, sostituendoli con if
Però c'è un altro problema .-. Quando clicco su maschio o femmina, mi apre sempre la stessa pagina! (invece dovrebbe aprire 2 pagine distinte, in base al sesso)
Codice: Seleziona tutto<?php

$redirect = "maschio.html";
$redirect1 = "femmina.html";
if ($_POST['nome'] == "")
{
echo "Non hai inserito il nome! ";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
if($_POST['cognome'] == "")
{
echo "Non Hai inserito il cognome! ";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
if($_POST['sesso'] == "")
{
echo "Non hai specificato il sesso! ";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
if($_POST['provincia'] == "")
{
echo "Non hai specificato la provincia!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
if($_POST['provincia'] == "")
{
echo "Non hai specificato la provincia! ";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
if($_POST['citta'] == "")
{
echo "Non hai specificato la città! ";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
if($_POST['voto'] == "")
{
echo "Non hai specificato il voto! ";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
if($_POST['auto'] == "")
{
echo "Non hai specificato la tua auto preferita! ";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}

else {

if ($sesso == "m")
{header("Location: $redirect");}
else
{header("Location: $redirect1");}

}
?>


@francesco: Sto dando una lettura, grazie ^^
Avatar utente
Messaggio Da ngc4501
#206313 Ma l'avevi cambiata la riga $_GET['nome'] con $_POST['nome'] ?
Io ho provato e funziona, sono proprio alla postazione di lavoro quindi ho avuto un attimo a disposizione server apache php !

Per quanto riguarda il redirect, la variabile $sesso veniva controllata ma era vuota, non gli avevi assegnato $_POST['sesso'] dal campo
Lo script definitivo diventa così:
Codice: Seleziona tutto<?php

$redirect = "maschio.html";
$redirect1 = "femmina.html";

if ($_POST['nome'] == "") //il controllo devi farlo sulla stringa vuota "" non sullo spazio " "
{
echo "Non hai inserito il nome";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['cognome'] == "")
{
echo "Non Hai inserito il cognome!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['sesso'] == "")
{
echo "Non hai specificato il sesso!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['provincia'] == "")
{
echo "Non hai specificato la provincia!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['provincia'] == "")
{
echo "Non hai specificato la provincia!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['citta'] == "")
{
echo "Non hai specificato la città!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['voto'] == "")
{
echo "Non hai specificato il voto!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}
elseif($_POST['auto'] == "")
{
echo "Non hai specificato la tua auto preferita!";
echo '<a href="guestbook.html">Torna al questionario...</a>';
}

else {

if ($_POST['sesso'] == "m")
{header("Location: $redirect");}
else
{header("Location: $redirect1");}

}
?>